После следования руководству, которое я нашел здесь , я обнаружил, что, хотя мое оборудование такое же, как у его автора, я не смог воспроизвести те же результаты. После создания сценария 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 связаны с чем-то и с загрузчиками?)
Спасибо за помощь.
После удаления повторно находят, переустанавливая 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) использующий Личинку как мой загрузчик.
Спасибо руководствам, связанным здесь и @mikewhatever для помощи мне решить эту проблему. Надо надеяться, это поможет другим, которые могут встретиться с подобными проблемами.
Необходимо установить токен spoof_osx_version
в refind.conf
. Из документации rEFInd http://www.rodsbooks.com/refind/configfile.html :
На некоторых компьютерах Mac этот параметр заставляет rEFInd сообщить микропрограммному обеспечению, что указана версия OS X запускается, даже когда выбрана другая ОС. В результате микропрограмма может по-разному инициализировать аппаратное обеспечение, что может иметь положительные (или вредные) результаты. Если видеовыход вашего Mac не работает нормально, эта опция может помочь. С другой стороны, известно, что клавиатуры и мыши иногда перестают функционировать, если используется эта опция, поэтому вам не следует использовать ее без необходимости. Этот параметр не влияет на оборудование сторонних производителей. По умолчанию эта функция не используется.
blockquote>У меня есть Macbook Pro 7,1 с двойной загрузкой macOS Sierra и Ubuntu 16.04, поэтому я установил:
spoof_osx_version = 10.12
Если вам интересно, как редактировать
refind.conf
файл, пожалуйста, обратитесь к Где я могу найти файл конфигурации refind.conf? .
Я наконец решил проблему, когда setpci не изменяет значение моста PCI-E.
, Если Вы не можете установить значение PCI-E brigde регистр с помощью setpci команду для получения драйверов Nvidia GeForce, работающих над машиной Apple MacBook, пробуют эти шаги:
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].
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
Перезагружают Вашу машину и проверку, если она работает. Замените идентификатор Вашим снова. Ваш терминал должен наконец показать 08 (мост PCI-E) и 07 (GPU).
sudo setpci -s "00:17.0" 3e.b
08
sudo setpci -s "02:00.0" 04.b
07
Снимок экрана: http://imgur.com/a/YiBXi