Я только что установил Linux на свой MacBookPro 2010 (тройная загрузка с использованием refind) и получил печально известный черный экран после установки драйверов nvidia.
Я попытался применить решение, упомянутое здесь: https://askubuntu.com/a/613573/488420 , но безуспешно.
Интересно, правильно ли я получил идентификаторы для setpci. Кто-нибудь может подтвердить?
Я вставляю под вывод lshw и мой файл /etc/grub.d/01_enable_vga.conf.
Спасибо!
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
Вы могли бы попытаться не комментировать spoof_osx_version
опция в refind.conf
. Это могло бы получать видео, работающее на Вашу систему, но я не могу обещать, что это будет работать. См. комментарии в refind.conf
или в документация перенаходки для получения дополнительной информации о том, как эта опция работает.
Примечание, что эта опция могла бы работать по-другому в зависимости от того, как Вы запускаете Linux - то есть, через режим BIOS GRUB, режим EFI, GRUB, запуская ядро непосредственно, и т.д. Кроме того, отмечает, что GRUB изменяется, Вы составляете работу завещания, только если Вы загружаете Linux через GRUB. Не ясно, делаете ли Вы это. Посмотрите Методы раздела Booting Linux документации перенаходки для получения дополнительной информации о различных способах запустить Linux от перенаходки.
Сравнивая Ваш lshw
вывод с моим исходным подходом, кажется, что Вы используете другой MacBook Pro - Ваш более свеж и имеет интегрированный тот и одна дискретная видеокарта (NVIDIA GT 330M). Я сомневаюсь, что мое решение для Macbook Pro 7,1 (середина 2010, только с NVIDIA 320M) применимо для Ваших аппаратных средств.
На самом деле, я подозреваю, что первопричина Вашего черного экрана состоит в том, что дискретный NVIDIA 330 GT отключен во время EFI начальная загрузка Linux. Следовательно, необходимо явно включить дискретную карту NVIDIA с помощью другого сценария GRUB. Начальные указатели о том, как достигнуть этого, были бы https://discussions.apple.com/message/19065782#19065782 и https://help.ubuntu.com/community/UEFIBooting.
Вследствие того, что я не владею теми конкретными аппаратными средствами, я не уверен, являются ли они правильными настройками.
Я наконец решил проблему, когда 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/centos/x86_64-efi /
, Создают x86_64-efi папку
sudo mkdir /boot/EFI/centos/x86_64-efi
, Копия setpci файлы модуля в grub2 папку
sudo cp /usr/lib/grub/x86_64-efi/setpci.* /boot/EFI/centos/x86_64-efi
Создает 01_enable_vga.conf файл.
файл должен содержать эти строки кода:
не забывают замену 00:17.0 для моста PCI и 02:00.0 для дисплея [GPU] с Вашими значениями.
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
Затем полномочия восстановления
sudo chmod 755 /etc/grub.d/01_enable_vga.conf
и обновление/boot/efi/EFI/centos/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