web-dev-qa-db-fra.com

Pilotes MacBook Pro 7,1 + Ubuntu 16.04 LTS + nVidia

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.

succès

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.

1
Joshua Drolte

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.

Screenshot

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.

1
Joshua Drolte

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:

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/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

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

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

0
francisv