web-dev-qa-db-fra.com

ID de setpci MacBook Pro, EFI et Nvidia

Je viens d'installer Linux sur mon MacBookPro 2010 (triple démarrage à l'aide de refind) et d'obtenir le fameux écran noir après l'installation des pilotes nvidia.

J'ai essayé d'appliquer la solution décrite ici: https://askubuntu.com/a/613573/48842 sans succès.

Je me demande si j'ai bien identifié les identifiants pour setpci. Tout le monde peut confirmer?

Je colle en dessous de la sortie d'affichage lshw et de mon fichier /etc/grub.d/01_enable_vga.conf.

Merci!

mint@mint-MacBookPro ~ $ Sudo lshw -businfo -class bridge -class display
información del Bus  Dispositivo  Clase       Descripción
===========================================================
pci@0000:00:00.0                   bridge      Core Processor DRAM Controller
pci@0000:00:01.0                   bridge      Core Processor PCI Express x16 Root Port
pci@0000:01:00.0                   display     GT216M [GeForce GT 330M]
pci@0000:00:02.0                   display     Core Processor Integrated Graphics Controller
pci@0000:00:1c.0                   bridge      5 Series/3400 Series Chipset PCI Express Root Port 1
pci@0000:00:1c.1                   bridge      5 Series/3400 Series Chipset PCI Express Root Port 2
pci@0000:00:1c.2                   bridge      5 Series/3400 Series Chipset PCI Express Root Port 3
pci@0000:00:1c.3                   bridge      5 Series/3400 Series Chipset PCI Express Root Port 4
pci@0000:00:1e.0                   bridge      82801 Mobile PCI Bridge
pci@0000:00:1f.0                   bridge      Mobile 5 Series Chipset LPC Interface Controller
pci@0000:ff:00.0                   bridge      Core Processor QuickPath Architecture Generic Non-core Registers
pci@0000:ff:00.1                   bridge      Core Processor QuickPath Architecture System Address Decoder
pci@0000:ff:02.0                   bridge      Core Processor QPI Link 0
pci@0000:ff:02.1                   bridge      Core Processor QPI Physical 0
pci@0000:ff:02.2                   bridge      Core Processor Reserved
pci@0000:ff:02.3                   bridge      Core Processor Reserved

mint@mint-MacBookPro ~  Sudo cat /etc/grub.d/01_enable_vga.conf
cat << EOF
setpci -s "00:01.0" 3e.b=8
setpci -s "01:00.0" 04.b=7
EOF
2
Joe

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:

1. Trouvez vos identifiants de bus PCI-E

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].

2. Créez un script GRUB

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/centos/x86_64-efi /

Créer un dossier x86_64-efi

Sudo mkdir /boot/EFI/centos/x86_64-efi

Copier les fichiers du module setpci dans le dossier grub2

Sudo cp /usr/lib/grub/x86_64-efi/setpci.* /boot/EFI/centos/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/centos/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

3. Redémarrez votre système et vérifiez les registres

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

4. Installer les pilotes nVidia

Capture d'écran: http://imgur.com/a/YiBXi

1
ylwghst

En comparant votre sortie lshw avec mon approche originale, il semble que vous utilisiez un Macbook Pro différent - votre version est plus récente et comporte une carte graphique intégrée et une carte graphique distincte (NVIDIA GT 330M). Je doute que ma solution pour Macbook Pro 7.1 (mi-2010, avec uniquement NVIDIA 320M) s’applique à votre matériel.

En fait, je soupçonne que la cause fondamentale de votre écran noir est que le NVIDIA 330 GT discret est désactivé pendant le démarrage EFI Linux. Par conséquent, vous devriez plutôt explicitement activer la carte NVIDIA discrète à l’aide d’un script _ différentGRUB. Les indications initiales sur la manière d'atteindre cet objectif seraient https://discussions.Apple.com/message/19065782#19065782 et https://help.ubuntu.com/community/UEFIBooting .

En raison du fait que je ne possède pas ce matériel particulier, je ne suis pas sûr que ce soient les bons paramètres.

0
Andreas

Vous pouvez essayer de supprimer les commentaires de l'option spoof_osx_version dans refind.conf. Ceci pourrait faire fonctionner la vidéo pour votre système, mais je ne peux pas vous promettre que cela fonctionnera. Voir les commentaires dans refind.conf ou dans la documentation rEFInd pour plus de détails sur le fonctionnement de cette option.

Notez que cette option peut fonctionner différemment en fonction de la manière dont vous lancez Linux: via GRUB en mode BIOS, GRUB en mode EFI, lancement direct du noyau, etc. Notez également que le GRUB Cela ne fonctionnera que si vous démarrez Linux via GRUB. Ce n'est pas clair si vous faites cela. Veuillez consulter la section Méthodes de démarrage de Linux de la documentation de rEFInd pour en savoir plus sur les différentes façons de lancer Linux à partir de rEFInd.

0
Rod Smith