J'ai récemment configuré mon Macbook Air (fin 2010) sur l'OS 10.10 avec amorçage double avec Ubuntu 16.04 et, bien entendu, j'ai rencontré le problème de l'écran noir lors de l'utilisation des pilotes propriétaires NVIDIA. Je viens d'essayer la solution d'Andreas ici . Tout semble aller pour le mieux, sauf que lorsque j'arrive à l'étape 4 pour redémarrer et vérifier, je n'obtiens pas le résultat correct pour le registre PCI-E du périphérique en pont. Voici ce que je reçois à l'étape 2:
Bus info Device Class Description
=======================================================
pci@0000:00:00.0 bridge MCP89 Host Bridge
pci@0000:00:03.0 bridge MCP89 LPC Bridge
pci@0000:00:15.0 bridge NVIDIA Corporation
pci@0000:00:17.0 bridge MCP89 PCI Express Bridge
pci@0000:02:00.0 display MCP89 [GeForce 320M]
J'ai créé le script grub /etc/grub.d/01_enable_vga.conf comme décrit ci-après:
cat << EOF
setpci -s "00:17.0" 3e.b=8
setpci -s "02:00.0" 04.b=7
EOF
... et aussi changé les permissions et mis à jour grub ...
~> Sudo chmod 755 /etc/grub.d/01_enable_vga.conf
~> Sudo update-grub
... mais lorsque je redémarre l'ordinateur et vérifie, la valeur du périphérique de pont est incorrecte:
~> Sudo setpci -s "00:17.0" 3e.b
00
~> Sudo setpci -s "02:00.0" 04.b
07
Des suggestions sur ce que je peux faire pour obtenir cet ensemble correctement avant d'installer les pilotes NVIDIA? Est-ce que je change le mauvais périphérique de pont? Y a-t-il une meilleure manière de faire cela?
Merci d'avance!
J'ai finalement résolu le problème lorsque setpci ne modifiait pas la valeur du pont PCI-E.
Si vous ne parvenez pas à définir la valeur des registres Brigde PCI-E à l’aide de la commande setpci afin d’obtenir les pilotes nVidia GeForce fonctionnant sur votre ordinateur MacBook Apple, procédez comme suit:
lshw -businfo -class bridge -class display
[root@kernelLinux]# lshw -businfo -class bridge -class display
Bus info Device Class Description
========================================================
pci@0000:00:00.0 bridge MCP89 Host Bridge
pci@0000:00:03.0 bridge MCP89 LPC Bridge
pci@0000:00:15.0 bridge NVIDIA Corporation
pci@0000:00:17.0 bridge MCP89 PCI Express Bridge
pci@0000:02:00.0 display MCP89 [GeForce 320M]
Vous aurez besoin des identifiants de PCI Express Bridge et de votre affichage au format XX: XX.X
Votre identifiant peut être différent.
Dans cet exemple, nos identifiants sont 00: 17.0 pour PCI-E brige et 02: 00.0 pour l'affichage [GPU].
Notre script sera légèrement différent de celui mentionné ci-dessus.
J'ai remarqué deux choses. Le processus d’installation de Grub2 à l’aide de distro (le mien est Centos) ne contient pas le module setpci . C'est la raison pour laquelle grub ne change pas de registre au démarrage. Ensuite, il est nécessaire de charger le module setpci dans grub avant de lancer des commandes pour changer de registre.
Télécharger les modules grub2-efi
Ubuntu Linux
Sudo apt-get install grub-efi-AMD64-bin
Fedora Linux
Sudo dnf install grub2-efi-modules
CentOS Linux
Sudo yum install grub2-efi-modules
Les modules seront installés dans/usr/lib/grub/x86_64-efi /, mais les fichiers du module setpci doivent être présents dans/boot/efi/EFI/ubuntu/x86_64-efi /.
Créez un dossier x86_64-efi.
Le dossier Ubuntu dans/boot/EFI/peut être différent sur votre ordinateur, cela dépend de la façon dont vous l'avez nommé lors du processus d'installation du système d'exploitation. Ne le collez pas. Remplacez-le par le chemin correct.
Sudo mkdir /boot/EFI/ubuntu/x86_64-efi
Copier les fichiers du module setpci dans le dossier grub2
Sudo cp /usr/lib/grub/x86_64-efi/setpci.* /boot/EFI/ubuntu/x86_64-efi
Créez le fichier 01_enable_vga.conf.
Le fichier doit contenir ces lignes de code:
N'oubliez pas de remplacer 00: 17.0 pour le pont PCI et 02: 00.0 pour l'affichage [GPU] par vos valeurs.
Sudo nano /etc/grub.d/01_enable_vga.conf
cat << EOF
insmod setpci
setpci -s "00:17.0" 3e.b=8
setpci -s "02:00.0" 04.b=7
EOF
Puis réparer les autorisations
Sudo chmod 755 /etc/grub.d/01_enable_vga.conf
et mettez à jour le fichier /boot/efi/EFI/ubuntu/grub.cfg
Ubuntu Linux
Sudo update-grub
Ne faites cette commande que sur d'autres distributions (pas nécessaire sur Ubuntu après update-grub):
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
Redémarrez votre ordinateur et vérifiez s'il fonctionne. Remplacez les identifiants par le vôtre. Votre terminal devrait enfin afficher 08 (pont PCI-E) et 07 (GPU).
Sudo setpci -s "00:17.0" 3e.b
08
Sudo setpci -s "02:00.0" 04.b
07
Capture d'écran: http://imgur.com/a/YiBXi
J'ai eu le même problème et je suis arrivé ici à cause de Google. Il semble que le fichier /etc/grub.d/01_enable_vga.conf vous confonde.
Vous voulez que le fichier contienne la commande cat, vous ne voulez pas le créer avec cat (eh bien, vous pouvez le créer avec cat imbriqué). Alors essayez ceci:
Sudo bash -c "cat > /etc/grub.d/01_enable_vga.conf" << END
cat << EOF
setpci -s "00:17.0" 3e.b=8
setpci -s "02:00.0" 04.b=7
EOF
END
J'ai la réponse ici: Pilotes MacBook Pro 7,1 + Ubuntu 16.04 LTS + nVidia