MacBook Pro 7,1 + Ubuntu 16.04 LTS + драйверы nVidia

После следования руководству, которое я нашел здесь , я обнаружил, что, хотя мое оборудование такое же, как у его автора, я не смог воспроизвести те же результаты. После создания сценария GRUB для регистрации регистров PCI во время загрузки, создания исполняемого файла и обновления файлов конфигурации GRUB (т. Е. После выполнения шага 3 ) я ввожу:

sudo setpci -s "00:17.0" 3e.b

В соответствии с шагом 4 выводится 00 вместо ожидаемого 08

Однако, когда я вхожу

sudo setpci -s "04:00.0" 04.b

, возвращается ожидаемое значение 07, как указано в руководстве.

Что еще я должен сделать, чтобы убедиться, что я могу использовать драйверы nVidia в моей настройке?

Я не совсем понимаю руководство, но у меня такое же оборудование и следуют тем же инструкциям.

У меня MacBook Pro с двойной загрузкой (7,1) с OS X и Ubuntu 16.04 LTS.

rEFInd (версия 0.10.3-1) - мой загрузчик.

== РЕДАКТИРОВАТЬ ==

После ввода

dmesg | grep -i efi

я получаю следующее:

[    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

Это больше мои выводится при следовании указанному руководству.

[+1135] 2. Найдите правильные идентификаторы шины 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. Создайте скрипт GRUB для установки регистров PCI-E во время загрузки

sudo nano /etc/grub.d/01_enable_vga.conf

Затем введите следующее:

cat << EOF
setpci -s "00:17.0" 3e.b=8
setpci -s "04:00.0" 04.b=7
EOF

Ctrl + X

Y для Да, чтобы сохранить файл конфигурации.

Затем выполните

sudo chmod 755 /etc/grub.d/01_enable_vga.conf
sudo update-grub

Обе эти команды выполняются нормально.

[одна тысяча сто шестьдесят два] 4. Перезагрузитесь и проверьте

После перезагрузки я запускаю:

sudo setpci -s "00:17.0" 3e.b

И получаю 00 вместо ожидаемого 08.

Я также запускаю:

sudo setpci -s "04:00.0" 04.b

, который возвращает ожидаемое значение 07, так же, как и руководство.

Дайте мне знать, если я смогу предоставить более подробную информацию, чтобы помочь мне решить эту проблему.

== UPDATE ==

Я ранее (то есть, прежде чем пытаться следовать руководству) удалил папку «ubuntu» (и, следовательно, соответствующие настройки grub), которая установлена в разделе EFI при установке Ubuntu, чтобы REFInd отображался при запуске. Я думал, что они конкурируют, так как тогда я запускал MacBook, и он автоматически загружался в Ubuntu, не показывая меню rEFInd.

После удаления rEFInd, переустановки Ubuntu и установки меню Grub, как показано здесь , я выполнил действия, описанные в руководстве по драйверам Nvidia. На этот раз я получил правильный вывод.

Успех

Однако, теперь при выборе «Унаследованная двоичная версия драйвера NVIDIA 304.131 от nvidia-304 (проприетарная)» из меню «Дополнительные драйверы» графического интерфейса пользователя и внесении изменений в него нет. не переключайте выбор из настройки Nouveau.

Думая, что это был сбой в графическом интерфейсе, я все равно некоторое время перезагружался, но без косточек - драйвер Nouveau все еще используется после запуска.

Я хочу быть осторожным, продолжая, какие командные строки мне следует вводить отсюда?

(Примечание: дополнительное разочарование заключается в том, что после этого процесса переустановки мой WiFi теперь не работает должным образом, несмотря на наличие соответствующих драйверов Это не было проблемой раньше, но я разберусь с этим после того, как смогу разрешить драйверы Nvidia. Возможно, проблемы Wi-Fi для 16.04 и Broadcom 432b связаны с чем-то и с загрузчиками?)

Спасибо за помощь.

1
задан 15.07.2016, 08:29

3 ответа

После удаления повторно находят, переустанавливая Ubuntu так, чтобы папка "человечности" появилась в разделе EFI (например, открытие 'Terminal' на OS X, работая sudo mountesp и затем просмотрев раздел EFI в Средстве поиска), установив меню Grub (как детализировано здесь ) и после эти инструкции в исходном руководстве , я смог получить ожидаемые выводы 08 и 07 прежде, чем попытаться установить собственные драйверы Nvidia.

При первой попытке установить собственные драйверы Nvidia с помощью "Дополнительного программного обеспечения" GUI они не установили бы, и на перезагрузку использовался драйвер Nouveau с открытым исходным кодом.

Однако то, когда на странице входа в систему я получил доступ к TTY1 (т.е. FN + Control + alt + F1), вошло в систему, работало sudo apt-get purge nvidia* и перезагрузило. После того как я вошел в Ubuntu, я открыл "Terminal" и работал sudo apt-get install nvidia-340, затем sudo apt-get update, сопровождаемый sudo apt-get dist-upgrade, и затем перезагрузил.

Это привело к успешному запуску Ubuntu 16.04 LTS на моем MacBook Pro (7,1) в конфигурации двойной загрузки (OS X 10.11.4 El Capitan) использующий Личинку как мой загрузчик.

Screenshot

Спасибо руководствам, связанным здесь и @mikewhatever для помощи мне решить эту проблему. Надо надеяться, это поможет другим, которые могут встретиться с подобными проблемами.

1
ответ дан 29.09.2019, 16:05

Необходимо установить токен spoof_osx_version в refind.conf. Из документации rEFInd http://www.rodsbooks.com/refind/configfile.html :

На некоторых компьютерах Mac этот параметр заставляет rEFInd сообщить микропрограммному обеспечению, что указана версия OS X запускается, даже когда выбрана другая ОС. В результате микропрограмма может по-разному инициализировать аппаратное обеспечение, что может иметь положительные (или вредные) результаты. Если видеовыход вашего Mac не работает нормально, эта опция может помочь. С другой стороны, известно, что клавиатуры и мыши иногда перестают функционировать, если используется эта опция, поэтому вам не следует использовать ее без необходимости. Этот параметр не влияет на оборудование сторонних производителей. По умолчанию эта функция не используется.

У меня есть Macbook Pro 7,1 с двойной загрузкой macOS Sierra и Ubuntu 16.04, поэтому я установил:

spoof_osx_version = 10.12

Если вам интересно, как редактировать refind.conf файл, пожалуйста, обратитесь к Где я могу найти файл конфигурации refind.conf? .

0
ответ дан 29.09.2019, 16:05

Я наконец решил проблему, когда setpci не изменяет значение моста PCI-E.

, Если Вы не можете установить значение PCI-E brigde регистр с помощью setpci команду для получения драйверов Nvidia GeForce, работающих над машиной Apple MacBook, пробуют эти шаги:

1. Найдите свои идентификаторы шины 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]

, Вам будет нужен идентификатор Мост PCI Express и Ваш дисплей в формате XX:XX.X

, Ваш идентификатор может отличаться.

В этом примере наш идентификатор 00:17.0 для PCI-E brige и 02:00.0 для дисплея [GPU].

2. Создайте сценарий

GRUB, Наш сценарий будет немного отличаться, чем в упомянутом выше сообщении.

я заметил двух вещей. Grub2, установленный с помощью дистрибутива (мой - Centos) процесс установки, не содержит модуль личинки setpci. Это - причина, почему личинка не изменяет регистры в то время как начальная загрузка. Затем необходимо загрузить setpci модуль в личинку, прежде чем мы выполним команды для изменения регистров.

модули grub2-efi-modules

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

Загрузки будут установлены в/usr/lib/grub/x86_64-efi/, но setpci файлы модуля должны присутствовать в/boot/efi/EFI/ubuntu/x86_64-efi /

, Создают x86_64-efi папку.

папка Ubuntu в/boot/EFI/может отличаться на Вашей машине, зависит, как Вы назвали его в процессе установки ОС, не вставляйте его. Замените его корректным путем.

sudo mkdir /boot/efi/EFI/ubuntu/x86_64-efi

Копия setpci файлы модуля в grub2 папку

sudo cp /usr/lib/grub/x86_64-efi/setpci.* /boot/efi/EFI/ubuntu/x86_64-efi

Создают 01_enable_vga.conf файл.

sudo nano /etc/grub.d/01_enable_vga.conf

файл должен содержать эти строки кода:

не забывают замену 00:17.0 для моста PCI и 02:00.0 для дисплея [GPU] с Вашими значениями.

cat << EOF
insmod setpci
setpci -s "00:17.0" 3e.b=8
setpci -s "02:00.0" 04.b=7
EOF

Затем полномочия восстановления

sudo chmod 755 /etc/grub.d/01_enable_vga.conf

и обновление/boot/efi/EFI/ubuntu/grub.cfg

Ubuntu Linux

sudo update-grub

Делают эту команду только на других дистрибутивах (не необходимый на Ubuntu после личинки обновления):

grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

3. Перезагрузите свою систему, и контрольные регистры

Перезагружают Вашу машину и проверку, если она работает. Замените идентификатор Вашим снова. Ваш терминал должен наконец показать 08 (мост PCI-E) и 07 (GPU).

sudo setpci -s "00:17.0" 3e.b
08

sudo setpci -s "02:00.0" 04.b
07

4. Установите драйверы Nvidia

Снимок экрана: http://imgur.com/a/YiBXi

1
ответ дан 29.09.2019, 16:05
  • 1
    Целый процесс идентичен на любом дистрибутиве с загрузчиком grub2 efi. Я только должен исследовать, какой пакет в репозиториях человечности содержит grub2-efi-modules. – VMAtm 05.08.2017, 20:18
  • 2
    Я обновил его. Я хотел бы автоматизировать его и создать сценарий для целой вещи в будущем. – Nithin Chandran 05.08.2017, 20:41

Теги

Похожие вопросы