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 (kernel Linux 4.8.0-22-générique) pour démarrer le système avec succès de manière à pouvoir l’utiliser de nouveau. Démarrer à 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 de nombreuses procédures 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 active. (Windows démarre toujours, cependant). Les solutions que j’ai mises en œuvre la première fois (voir ci-dessous) ne font aucune 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 je choisis, 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 , je ne linux /vmlinuz-4.8.0-22-generic root=UUID... ro_quiet splash $vt_handoff donc 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 de démarrage avant la mise à niveau: Ajout de l’ 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. Mode de récupération 1: ajoute les arguments du kernel ro recovery nomodeset
    • Beaucoup de résultats montrant que les services démarrent
    • Le dernier message est le [OK] Started Light Display Manager. (ie le service lightdm )
    • L’écran devient noir ici et ne répond plus.
    • Seul le message d’erreur affiché est ci-dessous.
  4. Mode de récupération 2: Mêmes arguments de récupération que le n ° 3, mais avec acpi_osi="Linux" pci=nomsi ajouté manuellement
    • Fondamentalement le même résultat que # 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 bloque pas cet échec. Le processus de démarrage se poursuit après le démarrage du service LightDM, mais avant que vous ne voyiez réellement la bannière d’accueil.

De plus, j’essayerais la commande systemctl , mais:

  1. les systèmes bloqués n’acceptent pas les commandes, et
  2. J’avais en fait 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’attendais (tout au plus) à ce que l’interface utilisateur et l’interface graphique ne s’affichent pas. Dans ce cas, le terminal pour vous 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 kernel 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 kernel pci=nomsi au problème de solution de contournement avec cet ordinateur portable
    • Sans cette option, le kernel continuerait à consigner un message à l’infini et consumrait moins d’espace disponible dans la partition. Cette option a résolu le problème.
  3. Désactiver le démarrage sécurisé 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é, est un module de kernel non approuvé.
    • Dans un environnement Secure Boot, les modules non signés du kernel ne peuvent pas se charger / travailler comme prévu, et la construction / l’installation de pilotes NVIDIA laisse apparaître l’écran de connexion, mais chaque tentative de connexion échouera avant que vous n’ayiez access à votre bureau (il retombe directement 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 qu’auparavant. Je n’ai aucune explication à cela.

J’avais également utilisé pci=off sur un ancien ordinateur portable HP pour contourner les problèmes de démarrage, 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] ...... [ kernel-time] INFO: task systemd:1 blocked for more than 120 seconds. [ kernel-time] Tainted: GL 4.8.0-22-generic #24-Ubuntu ... [ kernel-time] INFO: rcu_sched self-detected stall on CPU [ kernel-time] NMI watchdog: ...... 

L’ajout de acpi_osi="Linux" pci=nomsi à la commande USB en direct produit une sortie légèrement différente. La ligne d’erreur ajoutée concernant 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 locking progressif (sur les ordinateurs portables HP) et je pouvais toujours les remonter jusqu’aux options de virtualisation VT-d et CPU qui étaient désactivées dans le BIOS, ce qui résoudrait rapidement le 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 malgré tout exécuter des machines virtuelles, par exemple une boîte virtuelle.)

J’ai lu d’autres réponses sur le site, certaines suggérant de désactiver les états du processeur C, mais cela ne fonctionnait pas non plus pour moi.


Paramètres du BIOS pertinents

Voici les parameters qui ont été pertinents avant, par onglet, ainsi que 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 (par exemple, la désactivation de l’hyper-threading, les états c, etc.), sans succès.

Onglet Avancé

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

Onglet de démarrage

  1. Amorçage rapide: activé
  2. Mode de démarrage sélectionné: UEFI

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

  1. Démarrage sécurisé: désactivé
  2. Mode de démarrage sécurisé: Standard

Notes de bas de page

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

J’ai pu résoudre le problème peu de temps après la publication de la question, même si je voulais être sûr avant d’essayer de poster ma réponse. Notez qu’aucune modification supplémentaire des parameters BIOS / UEFI n’était nécessaire, à part 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 kernel: nomodeset acpi_osi= pour autoriser le démarrage
    • L’utilisation de acpi_osi="Linux" ne fonctionnait pas au début; il devait être vide comme indiqué ci-dessus¹
    • Vous pouvez modifier 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 du live USB.
    • Dans mon cas, je suis allé pour une réinstallation²
  3. Après la réinstallation, j’ai changé les arguments du kernel pour revenir à pci=nomsi acpi_osi="Linux"

Je ne suis pas sûr de la raison nomodeset laquelle nomodeset ³ est nécessaire pour que le système démarre au début , mais pas vraiment après , ce qui explique probablement pourquoi j’avais oublié que j’avais déjà fait cela en juillet lorsque j’ai résolu le problème 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 depuis le terminal
    • Changer vim pour votre éditeur préféré (par exemple, nano )
  2. Editez cette ligne comme suit et enregistrez les modifications
    • Par défaut: GRUB_CMDLINE_LINUX=""
    • Édité: 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.
    • Rappelez-vous de ne pas éditer directement /boot/grub/grub.cfg

Si vous vous pci=nomsi argument pci=nomsi , cela empêche le kernel de remplir votre disque (par exemple, /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 modifiez pas acpi_osi= back en 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 ré-affichée. Vous pouvez l’identifier car votre mot de passe est correct (c’est-à-dire qu’aucun message d’erreur ne correspond à une non-concordance de mot de passe) et, si vous appuyez sur Ctrl + Alt + F1 dans un terminal, vous pouvez vous connecter à partir de là.
  2. Si vous avez votre répertoire /home dans sa propre partition (comme vous devriez le faire à 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 même sharepoint assembly (c. /home d. /home ), mais sans le formater. J’ai également ressaisi les mêmes identifiants de compte 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 dans /etc/passwd . Vous devrez peut-être sudo adduser ... pour qu’ils s’affichent correctement.
  3. Voir Que fait nomodeset ?

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éfinir les états de la CPU C : Désactivé et 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 ).

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