MacBook Pro, EFI и Nvidia идентификаторы setpci

Я только что установил 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
2
задан 13 April 2017 в 15:24

3 ответа

Вы могли бы попытаться не комментировать spoof_osx_version опция в refind.conf. Это могло бы получать видео, работающее на Вашу систему, но я не могу обещать, что это будет работать. См. комментарии в refind.conf или в документация перенаходки для получения дополнительной информации о том, как эта опция работает.

Примечание, что эта опция могла бы работать по-другому в зависимости от того, как Вы запускаете Linux - то есть, через режим BIOS GRUB, режим EFI, GRUB, запуская ядро непосредственно, и т.д. Кроме того, отмечает, что GRUB изменяется, Вы составляете работу завещания, только если Вы загружаете Linux через GRUB. Не ясно, делаете ли Вы это. Посмотрите Методы раздела Booting Linux документации перенаходки для получения дополнительной информации о различных способах запустить Linux от перенаходки.

0
ответ дан 14 April 2017 в 01:24

Сравнивая Ваш 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.

Вследствие того, что я не владею теми конкретными аппаратными средствами, я не уверен, являются ли они правильными настройками.

0
ответ дан 14 April 2017 в 01:24
  • 1
    Это - то, что терминал отправил мне: './genymotion-2.8.1_x64.bin удар:./genymotion-2.8.1_x64.bin: Никакой такой файл или каталог' – Theodore Tremblot 30 March 2017 в 08:39

Я наконец решил проблему, когда 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/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

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
ответ дан 14 April 2017 в 01:24
  • 1
    Огромное спасибо за ответ на мой вопрос. Я сделал то, что Вы сказали мне делать и когда я вошел './genymotion-2.8.1_x64.bin', это все еще не сказало такого файла или каталога. Когда я попробовал Вашу опцию B, ничего не произошло (я don' t знают если that' s, что должно было произойти). – Theodore Tremblot 30 March 2017 в 08:38

Другие вопросы по тегам:

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