Après avoir suivi le guide, j’ai trouvé ici j’ai constaté que bien que mon matériel soit identique à celui de son auteur, je ne pouvais pas reproduire les mêmes résultats. Après avoir créé le script GRUB pour enregistrer les registres PCI au démarrage, rendre le fichier exécutable et mettre à jour les fichiers de configuration GRUB (après avoir suivi Étape 3 ) J'entre:
Sudo setpci -s "00:17.0" 3e.b
Selon l’étape 4, il génère 00
au lieu du 08
attendu
Cependant, quand j'entre
Sudo setpci -s "04:00.0" 04.b
il retourne la valeur attendue de 07
comme dans le guide.
Que dois-je faire d'autre pour m'assurer que je peux utiliser les pilotes nVidia sur ma configuration?
Je ne comprends pas bien le guide, mais je dispose du même matériel et j'ai suivi les mêmes instructions.
J'ai un MacBook Pro à double démarrage (7,1) avec OS X et Ubuntu 16.04 LTS.
rEFInd (version 0.10.3-1) est mon chargeur de démarrage.
== ÉDITER ==
Après avoir entré
dmesg | grep -i efi
Je reçois ce qui suit:
[ 0.000000] Command line: \boot\vmlinuz-4.4.0-22-generic.efi.signed ro root=UUID=d5117e29-6aa7-46cb-ab22-616c19309a3c initrd=boot\initrd.img-4.4.0-22-generic
[ 0.000000] efi: EFI v1.10 by Apple
[ 0.000000] efi: ACPI=0xbf96a000 ACPI 2.0=0xbf96a014 SMBIOS=0xbf71a000
[ 0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns
[ 0.000000] Kernel command line: \boot\vmlinuz-4.4.0-22-generic.efi.signed ro root=UUID=d5117e29-6aa7-46cb-ab22-616c19309a3c initrd=boot\initrd.img-4.4.0-22-generic
[ 0.953332] efifb: probing for efifb
[ 0.953363] efifb: framebuffer at 0xc0010000, mapped to 0xffffc90002800000, using 6400k, total 6400k
[ 0.953370] efifb: mode is 1280x800x32, linelength=8192, pages=1
[ 0.953374] efifb: scrolling: redraw
[ 0.953378] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[ 0.961402] fb0: EFI VGA frame buffer device
[ 2.227701] EFI Variables Facility v0.08 2004-May-17
[ 2.853971] [Firmware Bug]: ACPI(IGPU) defines _DOD but not _DOS
[ 2.952253] fb: switching to nouveaufb from EFI VGA
Ce sont plus de mes sorties en suivant ledit guide.
2. Trouver les bons identifiants de bus PCI-E
Sudo 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:0e.0 bridge NVIDIA Corporation pci@0000:00:15.0 bridge NVIDIA Corporation pci@0000:00:16.0 bridge NVIDIA Corporation pci@0000:00:17.0 bridge MCP89 PCI Express Bridge pci@0000:04:00.0 display MCP89 [GeForce 320M]
3. Créez un script GRUB pour configurer les registres PCI-E lors du démarrage
Sudo nano /etc/grub.d/01_enable_vga.conf
Puis entrez les informations suivantes:
cat << EOF
setpci -s "00:17.0" 3e.b=8
setpci -s "04:00.0" 04.b=7
EOF
Ctrl + X
Oui pour Oui pour sauvegarder le fichier de configuration.
Puis courir
Sudo chmod 755 /etc/grub.d/01_enable_vga.conf
Sudo update-grub
Ces deux commandes s'exécutent bien.
4. Redémarrez et vérifiez
Au redémarrage, je lance:
Sudo setpci -s "00:17.0" 3e.b
Et obtenez 00
au lieu du 08
attendu.
Je cours aussi:
Sudo setpci -s "04:00.0" 04.b
qui renvoie le 07
attendu, tout comme le guide.
Faites-moi savoir si je peux fournir plus de détails pour m'aider à résoudre ce problème.
== UPDATE ==
J'avais précédemment (c'est-à-dire avant d'essayer de suivre le guide) supprimé le dossier "ubuntu" (et donc ses paramètres de grub correspondants) installé sur la partition EFI lors de l'installation d'Ubuntu afin de permettre à reEFInd de s'afficher au démarrage. Je pensais que les deux étaient en compétition depuis lors, je démarrais le MacBook qui démarrerait automatiquement sous Ubuntu sans afficher le menu rEFInd.
Après la désinstallation de rEFInd, la réinstallation d’Ubuntu et la définition du menu Grub comme indiqué ici , j’ai exécuté les étapes décrites dans le guide des pilotes Nvidia. J'ai eu la sortie correcte cette fois.
Toutefois, à présent, lorsque vous sélectionnez "la version du pilote binaire NVIDIA legacy 304.131 de nvidia-304 (propriétaire)" dans le menu "Pilotes supplémentaires" de l'interface graphique et que vous appliquez les modifications, la sélection ne sera pas modifiée en dehors du paramètre Nouveau.
Pensant que c’était un problème d’interface graphique, j’attendais un peu, puis je redémarrais quand même, mais pas de dés - le pilote Nouveau est toujours utilisé après le démarrage.
Je veux être prudent en procédant alors quelles lignes de commande devrais-je entrer à partir d'ici?
(Remarque: une frustration supplémentaire vient du fait qu'après mon processus de réinstallation, mon réseau WiFi ne fonctionne plus correctement, malgré l'utilisation de pilotes appropriés. Ce n'était pas un problème auparavant, mais je traiterai de cela une fois que je pourrai résoudre les pilotes Nvidia. Les problèmes de 16.04 et de Broadcom 432b sont également liés aux chargeurs de démarrage?)
Merci pour l'aide jusqu'à présent.
Après avoir désinstallé rEFInd, réinstallez Ubuntu de sorte que le dossier "ubuntu" apparaisse dans la partition EFI (par exemple, ouvrez Terminal sur OS X, exécutez Sudo mountesp
, puis affichez la partition EFI dans le Finder), définissez le menu Grub ( comme détaillé ici ) et en suivant le instructions du guide d'origine j'ai pu obtenir les résultats attendus de 08
et 07
avant d'essayer de l'installer les pilotes propriétaires nVidia.
Lors de la première tentative d'installation des pilotes propriétaires nVidia via l'interface graphique "Logiciels supplémentaires", ils ne l'installaient pas et, lors du redémarrage, le pilote Open Source Nouveau était utilisé.
Cependant, lorsque, sur la page de connexion, j’ai accédé à TTY1 (c’est-à-dire FN + Control + alt + F1
), je me suis connecté, j’ai exécuté Sudo apt-get purge nvidia*
, puis j’ai redémarré. Une fois connecté à Ubuntu, j'ai ouvert "Terminal" et lancé Sudo apt-get install nvidia-340
, puis Sudo apt-get update
, suivi de Sudo apt-get dist-upgrade
, puis redémarré.
Cela a permis le démarrage réussi d'Ubuntu 16.04 LTS sur mon MacBook Pro (7,1) dans une configuration à double amorçage (OS X 10.11.4 El Capitan) utilisant Grub comme chargeur de démarrage.
Merci aux guides liés ici et à @mewewever de m'avoir aidé à résoudre ce problème. J'espère que cela aidera d'autres personnes susceptibles de rencontrer des problèmes similaires.
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 de PCI-E brigde register à l'aide de la commande setpci afin que les pilotes nVidia GeForce fonctionnent 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/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/EFI/ubuntu/x86_64-efi
Créez le fichier 01_enable_vga.conf.
Sudo nano /etc/grub.d/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.
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
Vous devez définir le jeton spoof_osx_version
dans refind.conf
. De la documentation rEFInd http://www.rodsbooks.com/refind/configfile.html :
Sur certains Mac, avec cette option, rEFInd indique au micrologiciel que la version spécifiée de OS X est en cours de lancement, même lorsqu'un autre système d'exploitation est sélectionné. L'effet est que le microprogramme peut initialiser le matériel différemment, ce qui peut avoir des résultats bénéfiques (ou néfastes). Si la sortie vidéo de votre Mac ne fonctionne pas normalement, cette option peut être utile. D'autre part, il est connu que les claviers et les souris cessent parfois de fonctionner si cette option est utilisée, vous ne devez donc pas l'utiliser inutilement. Cette option n'a aucun effet sur le matériel non Apple. La valeur par défaut est de ne pas utiliser cette fonctionnalité.
J'ai un Macbook Pro 7,1 avec un double démarrage de macOS Sierra et Ubuntu 16.04, alors je règle:
spoof_osx_version = 10.12
Si vous vous demandez comment éditer le fichier refind.conf
, veuillez vous référer à Où puis-je trouver le fichier de configuration de refind.conf? .