web-dev-qa-db-fra.com

Ubuntu 16.10 ne parvient pas à démarrer dans l'ordinateur portable MSI GP72

J'ai fondamentalement besoin d'aide pour savoir comment obtenir Ubuntu 16.10 AMD64 (noyau Linux 4.8.0-22-générique) pour amorcer le système avec succès, de manière à pouvoir l'utiliser de nouveau. Amorcer à 16.04 LTS est également une solution acceptable.

Vous trouverez ci-dessous des parties contenant des informations supplémentaires sur le système, les éléments que j'ai essayés et les résultats obtenus. Merci d'avance pour toute aide que vous pouvez fournir. Détails à venir: O!

Résumé

J'ai acheté cet ordinateur portable MSI en juillet de cette année et, après un lot de dépannage , j'ai pu installer Ubuntu 16.04 LTS AMD64 sur celui-ci et l'utiliser sans problème. (Je l'ai en tant que système à double démarrage, avec Windows 10 de l'autre côté.)

J'ai mis à jour de 16.04 -> 16.10 il y a quelques jours et je ne parviens plus à démarrer l'ordinateur portable. Pire encore, je ne parviens même pas à faire démarrer le même 16.04 LTS que j'avais à l'origine à partir d'une clé USB. (Windows démarre toujours, cependant). Les solutions que j'ai mises en œuvre la première fois (voir ci-dessous) ne sont pas et font une différence cette fois-ci et je ne comprends pas pourquoi c'est soudainement le cas.

Notez que le processus de mise à niveau a semblé se terminer normalement. J'ai posé plusieurs questions similaires ici pour les versions précédentes d'Ubuntu (par exemple, 14.04), mais elles n'ont pas fonctionné ou ne sont pas applicables à ma situation. J'ai déjà passé plusieurs jours à ce sujet ...


Comportement actuel et messages d'erreur

Cela dépend de l'option de démarrage que j'ai choisie, mais voici le récapitulatif de la tentative de démarrage de l'installation 16.10 actuelle mise à niveau (commandes de démarrage incluses):

La commande de base est linux /vmlinuz-4.8.0-22-generic root=UUID... ro_quiet splash $vt_handoff, donc je ne listerai que les différences entre les options de lisibilité.

  1. Option de démarrage par défaut: Commande comme indiqué ci-dessus (avec UUID complet, bien sûr).
    • Le système se bloque immédiatement après l'affichage du logo Ubuntu.
    • Appuyer sur une touche pour afficher la console avant le blocage indique qu'aucun message n'y est jamais écrit.
  2. Commande d'amorçage préalable à la mise à niveau: == Ajoute les arguments acpi_osi="Linux" pci=nomsi.
    • Même comportement que ci-dessus
    • Ces arguments faisaient partie de la solution pour que cela fonctionne en juillet avec une installation de 16.04.
  3. Recovery Mode 1: Ceci ajoute les arguments du noyau ro recovery nomodeset
    • Beaucoup de résultats montrant que les services démarrent
    • Le dernier message est le [OK] Started Light Display Manager. (c'est-à-dire le service lightdm)
    • L'écran devient noir ici et ne répond plus.
    • Seul le message d'erreur affiché est ci-dessous.
  4. Recovery Mode 2: Mêmes arguments de récupération que le n ° 3, mais avec acpi_osi="Linux" pci=nomsi ajouté manuellement
    • Fondamentalement même résultat que n ° 3

La seule erreur que je vois dans les options de connexion 3 et 4 est la suivante:

[FAILED] Failed to start NVIDIA Persistence Daemon.
See 'systemctl status nvidia-percistenced.service' for details

Le processus de démarrage ne ne se bloque pas en raison de cet échec. Le processus de démarrage se poursuit jusqu'à ce que le service LightDM ait démarré, mais avant que vous ne voyiez réellement la bannière d'accueil.

De plus, j'essaierais la commande systemctl, mais:

  1. les systèmes bloqués n'acceptent pas les commandes, et
  2. En fait, j'avais purgé le package/pilotes nvidia-367 lors d'une tentative de récupération précédente (apt-get purge nvidia\*) au profit d'une version plus récente de la page officielle.

Dans tous les cas, même si le pilote était le problème (par exemple, ne peut pas être chargé en tant que LKM), je m'attendrais (tout au plus) à ce que l'interface utilisateur et l'interface graphique s'affichent et non . Dans ce cas, j'aurais le terminal pour me connecter et le résoudre. Cependant, je ne peux pas aller aussi loin.

Tentatives de dépannage antérieures et résultats

Depuis que j'ai déjà vu (et résolu) certaines de ces erreurs, j'ai passé les derniers jours à essayer de passer en revue les étapes et à résoudre le problème avant de poster ici. Malheureusement, ce qui a déjà fonctionné pour des problèmes de même apparence (AFAIK) n’aide en rien.

Solution initialement réussie (ne fonctionne pas cette fois-ci)

Lorsque j’ai fait face à mon problème en juillet, c’est ce que j’ai fait qui m’a aidé à résoudre les problèmes de démarrage et de connexion que j’avais:

  1. Ajoutez l’argument du noyau acpi_osi="Linux" à la solution de contournement des bogues de la table ACPI
    • Celles-ci sont généralement créées par le BIOS pour les systèmes Windows et peuvent causer des problèmes sous Linux.
  2. Ajoutez l'argument de noyau pci=nomsi au problème de solution de contournement avec cet ordinateur portable
    • Sans cette option, le noyau continuerait à consigner un message ad-infinitum et consommerait moins d'espace disponible dans la partition. Cette option a résolu ce problème.
  3. Désactiver Secure Boot pour autoriser la connexion après l’installation du pilote
    • En gros, je ne peux pas utiliser le pilote Nouveau pour un projet sur lequel je travaille. Je dois utiliser le pilote NVIDIA, qui n'est pas signé (il est créé localement lors de l'installation) et, dans le monde du démarrage sécurisé, il s'agit d'un module de noyau non approuvé.
    • Dans un environnement Secure Boot, les modules du noyau non signés ne peuvent pas se charger/fonctionner normalement, et la construction/installation de pilotes NVIDIA laisse apparaître l'écran de connexion, mais chaque tentative de connexion échouez avant d’arriver sur votre bureau (il retombe dans l’écran de connexion).
    • Vous devez désactiver Secure Boot pour dépasser ce point (ou trouver un moyen pour Microsoft de signer votre pilote personnalisé (bonne chance), ou le faire vous-même (bonne chance encore) ...

J'ai essayé ces choses cette fois-ci pour ma réinstallation de 16.10, mais je n'ai pas vu les mêmes résultats. Le mystère est que je ne peux même pas obtenir le 16.04, qui a fonctionné en juillet, pour se comporter de la même manière que maintenant. Je n'ai aucune explication à cela.

J'avais également utilisé pci=off sur un ancien ordinateur portable HP pour contourner les problèmes d'initialisation, mais essayer avec le MSI ne m'a conduit nulle part.

Le démarrage à partir de Live USB échoue

À l'heure actuelle, essayer de démarrer 16.04 LTS ou 16.10 à partir d'une clé USB en direct, avec les options par défaut¹, est bloqué avec les messages suivants dans la console:

...
lvm2-monitor.service
tmp.mount
systemd-tmpfiles-setup.service
resolvconf.service
[ kernel-time] nouveau 0000:01:00.0: pci: failed to adjust lnkctl speed
[ kernel-time] iwlwifi 0000:02:00.0: Unsuported splx structure
[ kernel-time] NMI watchdog: BUG: soft lockup - CPU#4 stuck for 22s! [plymouthd:314]
[ kernel-time] NMI watchdog: BUG: soft lockup - CPU#4 stuck for 23s! [plymouthd:314]
[ kernel-time] ...<same message>...
[ kernel-time] INFO: task systemd:1 blocked for more than 120 seconds.
[ kernel-time]       Tainted: G             L 4.8.0-22-generic #24-Ubuntu
...
[ kernel-time] INFO: rcu_sched self-detected stall on CPU
[ kernel-time] NMI watchdog: ...<same message>...

L'ajout du acpi_osi="Linux" pci=nomsi à la commande USB en direct produit une sortie légèrement différente, avec la ligne d'erreur ajoutée à propos de pci_enable_msi failed - -22

...
lvm2-monitor.service
tmp.mount
systemd-tmpfiles-setup.service
systemd-update-utmp.service
[ kernel-time] nouveau 0000:01:00.0: pci: failed to adjust lnkctl speed
[ kernel-time] pci_enable_msi failed - -22
[ kernel-time] iwlwifi 0000:02:00.0: Unsuported splx structure
[ kernel-time] NMI watchdog: BUG: soft lockup - CPU#4 stuck for 23s! [plymouthd:314]
[ kernel-time] INFO: rcu_sched self-detected stall on CPU

J'ai déjà vu les messages de verrouillage logiciel auparavant (sur les ordinateurs portables HP) et je pouvais toujours les retracer vers les options de virtualisation VT-d et CPU étant désactivées dans le BIOS, et leur activation résoudrait rapidement ce problème. Bien que je ne me souvienne pas immédiatement si j'avais ces stalles CPU en juillet, si je l'avais fait, je les aurais résolues de la même manière. (Vous avez toujours besoin de la virtualisation si vous souhaitez quand même exécuter des machines virtuelles, par exemple une boîte virtuelle.)

J'ai lu d'autres réponses sur le site, dont certaines suggéraient de désactiver les états du processeur C, mais cela ne fonctionnait pas .


Paramètres du BIOS pertinents

Voici les paramètres qui ont été pertinents avant, par onglet, et leurs valeurs actuelles , qui fonctionnaient avant la mise à niveau de 16.04 -> 16.10. Notez que j'ai déjà essayé différentes combinaisons activées/désactivées parmi certaines des options (par exemple, la désactivation de l'hyper-threading, les états c, etc.), sans succès.

Onglet Avancé

  1. Technologie de virtualisation Intel: Activé
  2. VT-d: activé
  3. Hyper-threading: activé
  4. CPU C déclare: activé

Onglet de démarrage

  1. Fast Boot: Activé
  2. Mode de démarrage sélectionné: UEFI

Onglet Sécurité -> Menu de démarrage sécurisé

  1. Secure Boot: désactivé
  2. Mode d'amorçage sécurisé: Standard

Notes de bas de page

  1. Commande de démarrage par défaut dans Live USB: linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash ---
4
code_dredd

J'ai pu résoudre le problème peu de temps après la publication de la question, mais je voulais en être sûr avant d'essayer de poster ma réponse. Notez que non modifications supplémentaires des paramètres BIOS/UEFI étaient nécessaires - en dehors de ce que j'avais déjà spécifié dans l'OP.


Mes étapes pour réparer

Le processus était essentiellement le suivant:

  1. Ajoutez les arguments du noyau: nomodeset acpi_osi= pour permettre au démarrage de continuer
    • Utiliser acpi_osi="Linux" n'a pas fonctionné au début; il devait être vide comme indiqué ci-dessus¹
    • Vous pouvez éditer les commandes de démarrage en appuyant sur e dans le menu GRUB
  2. Cela permet un démarrage réussi de 16.10 à partir de la clé USB live.
    • Dans mon cas, je suis allé pour une réinstallation²
  3. Après la réinstallation, j’ai redéfini les arguments du noyau sur pci=nomsi acpi_osi="Linux"

Je ne sais pas pourquoi nomodeset³ est nécessaire pour que le système démarre au début , mais pas vraiment nécessaire après le fait , C’est probablement la raison pour laquelle j’ai oublié que j’avais probablement fait cela en juillet, lors du dépannage de mon installation initiale de 16.04 LTS. Quoi qu'il en soit, j'espère que cela aidera toute autre personne susceptible de rencontrer des problèmes similaires.


Faire des changements permanents

Actuellement, vous devez éditer la commande de démarrage à chaque fois, et cela vieillit rapidement. Pour mettre à jour la commande de démarrage de manière permanente , procédez comme suit:

  1. Ouvrez /etc/default/grub pour le modifier, en tant que root
    • Sudo vim /etc/default/grub du terminal
    • Modifiez vim pour votre éditeur favori (par exemple, nano).
  2. Modifiez cette ligne comme suit et enregistrez les modifications
    • Par défaut: GRUB_CMDLINE_LINUX=""
    • Modifié: GRUB_CMDLINE_LINUX="pci=nomsi acpi_osi=\"Linux\""
  3. Exécutez la commande Sudo update-grub2 pour générer un fichier /boot/grub/grub.cfg mis à jour .
    • N'oubliez pas de pas éditer /boot/grub/grub.cfg directement

Si vous vous interrogez sur l'argument pci=nomsi, cela empêche le noyau de remplir votre lecteur (c'est-à-dire /var/log/syslog) avec de nombreux messages fictifs. Cela semble spécifique à l'ordinateur portable MSI, car mon ordinateur de bureau et un ancien ordinateur portable HP n'avaient pas besoin de cette solution de contournement.


Notes de bas de page

  1. Si vous ne remplacez pas acpi_osi= par acpi_osi="Linux" et que vous avez installé le package de pilotes nvidia, les tentatives de connexion échoueront et vous verrez la page d'accueil à nouveau affichée. Vous pouvez l’identifier parce que votre mot de passe est correct (c’est-à-dire qu’aucun message d’erreur concernant l’incompatibilité des mots de passe) ne s’affiche. Ctrl + Alt + F1 dans un terminal, vous pouvez vous connecter avec succès à partir de là.
  2. Si vous avez votre répertoire /home dans sa propre partition (comme il se doit, à mon humble avis), assurez-vous simplement de marquer la partition pour l’utiliser avec le même système de fichiers (par exemple ext4) et le point de montage (c.-à-d. /home), mais sans le formater. J'ai également ressaisi les mêmes informations d'identification lors de l'installation. Notez que les anciens comptes seront toujours dans votre répertoire /home, mais risquent de ne pas s'afficher si vous utilisez Paramètres >> Utilisateurs, car ceux-ci sont lus à partir de /etc/passwd. Vous aurez peut-être besoin de Sudo adduser ... pour les faire apparaître correctement.
  3. Voir Que fait nomodeset?
5
code_dredd

J'ai le même ordinateur portable, GP72-6qf .. Ubuntu tourne maintenant.

  1. Assurez-vous de disposer des dernières mises à jour du bios et du micrologiciel. il y a eu une nouvelle sortie en octobre.
  2. Définissez états C de la CP: Désactivé & démarrage rapide: Désactivé
  3. Editez le fichier /etc/default/grub et changez

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    

    à

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi= acpi_backlight=none acpi=ht pci=nomsi"
    

    Puis lancez Sudo update-grub

  4. Mettez à jour Ubuntu (Sudo apt update && Sudo apt upgrade).

2
user608037

Dans mon cas, j'avais des problèmes pour faire fonctionner les pilotes Nvidia sous Ubuntu 16.04

Mon correctif:

add-apt-repository ppa:xorg-edgers/ppa
apt-get update
apt-get install nvidia-375
reboot
0
Eduardo