web-dev-qa-db-ja.com

MacBook Pro、EFIおよびNvidia setpci ID

2010 MacBookProにLinuxをインストールし(refindを使用したトリプルブート)、nvidiaドライバーをインストールした後、悪名高い黒い画面が表示されます。

ここで解決策を適用しようとしました: https://askubuntu.com/a/613573/48842 成功しませんでした。

SetpciのIDを正しく取得できたのだろうか。誰でも確認できますか?

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
Joe

SetpciがPCI-Eブリッジの値を変更しない場合、私はついに問題を解決しました。

Apple MacBookマシンでnVidia GeForceドライバーを機能させるためにsetpciコマンドを使用してPCI-Eブリッジレジスタの値を設定できない場合は、次の手順を試してください。

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 BridgeのIDと、displayのフォーマットが必要です。 XX:XX.X

IDは異なる場合があります。

この例では、PCI-EブリッジのIDは00:17.0および02:00.0[GPU]を表示します。

2. GRUBスクリプトを作成します

スクリプトは、上記の投稿とは少し異なります。

私は2つのことに気づきました。ディストリビューション(私の場合はCentos)インストールプロセスを使用してインストールされたGrub2には、setpcigrubモジュールが含まれていません。これが、grubがブート中にレジスタを変更しない理由です。次に、レジスタを変更するコマンドを実行する前に、setpciモジュールをgrubにロードする必要があります。

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ファイルを作成します。

ファイルには次のコード行が含まれている必要があります。

PCIブリッジの場合は00:17.0を、ディスプレイ[GPU]の場合は02:00.0を値に置き換えてください。

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

このコマンドは、他のディストリビューションでのみ実行します(update-grub後のUbuntuでは必要ありません):

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

3.システムを再起動し、レジスタを確認します

マシンを再起動し、動作しているかどうかを確認します。 IDを再度自分のものに置き換えます。端末には、最終的に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
ylwghst

lshwの出力を元のアプローチと比較すると、別のMacbook Proを使用しているようです。最新のもので、1枚の統合グラフィックカードと1枚のディスクリートグラフィックカード(NVIDIA GT 330M)があります。 Macbook Pro 7,1(2010年半ば、NVIDIA 320Mのみ)向けの私のソリューションがお使いのハードウェアに適用できるとは思えません。

実際、黒い画面の根本的な原因は、EFI Linuxの起動中に個別のNVIDIA 330 GTが無効になっているためと思われます。したがって、異なるGRUBスクリプトを使用して、個別のNVIDIAカードを明示的に有効にする必要があります。これを達成する方法に関する最初のポインタは、 https://discussions.Apple.com/message/19065782#19065782 および https://help.ubuntu.com/community/UEFIBooting

私はその特定のハードウェアを所有していないという事実により、これらが正しい設定であるかどうかはわかりません。

0
Andreas

spoof_osx_versionrefind.confオプションのコメントを外してみてください。このmightは、システムでビデオが動作するようになりますが、動作することを約束することはできません。このオプションの動作の詳細については、refind.confまたは rEFIndドキュメント のコメントを参照してください。

このオプションは、Linuxの起動方法(BIOSモードGRUB、EFIモードGRUB、カーネルの直接起動など)によって異なる動作をする可能性があることに注意してください。また、GRUB GRUB経由でLinuxをブートしている場合にのみ、「作成中」が機能します。あなたがそれをやっているかどうかは明らかではありません。 rEFIndからLinuxを起動するさまざまな方法の詳細については、rEFIndドキュメントの Linuxの起動方法 セクションを参照してください。

0
Rod Smith