最近、Macbook Air(2010年後半)をUbuntu 16.04でデュアルブートOS 10.10に設定しました。もちろん、独自のNVIDIAドライバーを使用しているときにブラックスクリーンの問題が発生しました。アンドレアスの修正 ここ を試しました。ステップ4でリブートして確認するときにブリッジデバイスのPCI-Eレジスタの正しい結果が得られないことを除いて、すべてが泳いでいるようです。これがステップ2で得られるものです。
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]
説明に従って、grubスクリプト/ etc/grub.d/01_enable_vga.confを作成しました。
cat << EOF
setpci -s "00:17.0" 3e.b=8
setpci -s "02:00.0" 04.b=7
EOF
...また、パーミッションを変更し、grubを更新しました...
~> Sudo chmod 755 /etc/grub.d/01_enable_vga.conf
~> Sudo update-grub
...しかし、マシンを再起動して確認すると、ブリッジデバイスの値が正しくありません。
~> Sudo setpci -s "00:17.0" 3e.b
00
~> Sudo setpci -s "02:00.0" 04.b
07
NVIDIAドライバーをインストールする前にこのセットを正しく取得するためにできることについての提案はありますか?間違ったブリッジデバイスを変更していますか?これを行うためのより良い方法はありますか?
前もって感謝します!
SetpciがPCI-Eブリッジの値を変更しない場合、私はついに問題を解決しました。
Apple MacBookマシンでnVidia GeForceドライバーを機能させるためにsetpciコマンドを使用して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つのことに気づきました。ディストリビューション(私の場合は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/ubuntu/x86_64-efi /に存在する必要があります
X86_64-efiフォルダーを作成します。
/ boot/EFI /のUbuntuフォルダーは、OSインストールプロセスでの名前の付け方によってマシンによって異なる場合があります。貼り付けないでください。正しいパスに置き換えてください。
Sudo mkdir /boot/EFI/ubuntu/x86_64-efi
Setpciモジュールファイルをgrub2フォルダーにコピーします
Sudo cp /usr/lib/grub/x86_64-efi/setpci.* /boot/EFI/ubuntu/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/ubuntu/grub.cfgを更新します
Ubuntu Linux
Sudo update-grub
このコマンドは、他のディストリビューションでのみ実行します(update-grub後のUbuntuでは必要ありません):
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
マシンを再起動し、動作しているかどうかを確認します。 IDを再度自分のものに置き換えます。端末には、最終的に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
私は同じ問題を抱えていて、グーグルのためにここに来ました。あなたと私は、ファイル/etc/grub.d/01_enable_vga.confに混乱していたようです。
ファイルにcatコマンドを含めたいが、catで作成したくない(ネストされたcatで作成できる)。だからこれを試してください:
Sudo bash -c "cat > /etc/grub.d/01_enable_vga.conf" << END
cat << EOF
setpci -s "00:17.0" 3e.b=8
setpci -s "02:00.0" 04.b=7
EOF
END
私はここで答えを得ました: MacBook Pro 7,1 + Ubuntu 16.04 LTS + nVidia drivers