私が見つけたガイドに従った後 here 私のハードウェアはその作者と同じですが、同じ結果を再現できないことがわかりました。 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ドライバーを利用できるようにするには、他に何をすればよいですか?
ガイドを完全に理解していませんが、同じハードウェアを使用しており、同じ指示に従いました。
OS XとUbuntu 16.04 LTSを搭載したデュアルブートMacBook Pro(7,1)を使用しています。
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
これらは、上記のガイドに従うときの私の出力です。
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。ブート中にPCI-Eレジスタを設定するためのGRUBスクリプトを作成します
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のインストール中にEFIパーティションにインストールされた「ubuntu」フォルダー(したがって、対応するgrub設定)を削除して、起動時にrEFIndが表示されるようにしました。当時はMacBookを起動し、rEFIndメニューを表示せずにUbuntuを自動的に起動するので、この2つが競合すると考えていました。
REFIndをアンインストールし、Ubuntuを再インストールし、Grubメニューを次のように設定した後 here Nvidia Driverガイドの手順を実行しました。今回は正しい出力が得られました。
ただし、GUIの「Additional Drivers」メニューから「NVIDIAレガシーバイナリドライバーバージョン304.131 from nvidia-304(proprietary)」を選択して変更を適用すると、Nouveau設定から選択が切り替わりません。
それはGUIの不具合だと思って、しばらく待ってからとにかく再起動しましたが、サイコロはありません-起動後もNouveauドライバーはまだ使用されています。
続行する際に注意したいので、ここからどのコマンドラインを入力する必要がありますか?
(注:追加のフラストレーションは、適切なドライバーが使用されているにもかかわらず、この再インストールプロセス後にWiFiが正常に動作しなくなることです。これは以前は問題ではありませんでしたが、Nvidiaドライバーを解決できた後に対処します。 16.04とBroadcom 432bの問題は、ブートローダーの問題とも関連していますか?)
ここまで助けてくれてありがとう。
REFIndをアンインストールした後、Ubuntuを再インストールしてEFIパーティションに「ubuntu」フォルダーが表示されるようにします(たとえば、OS Xで「ターミナル」を開き、Sudo mountesp
を実行し、FinderでEFIパーティションを表示します)、Grubメニューを設定します(詳細 ここ )および 元のガイドの指示 に従って、インストールを試みる前に08
および07
の予想される出力を取得できました。独自のnVidiaドライバー。
「追加ソフトウェア」GUIを使用して独自のnVidiaドライバーを最初にインストールしようとすると、インストールされず、再起動時にオープンソースのNouveauドライバーが使用されていました。
ただし、ログインページでTTY1(つまり、FN + Control + alt + F1
)にアクセスし、ログインして、Sudo apt-get purge nvidia*
を実行し、再起動しました。 Ubuntuに再度ログインしたら、「ターミナル」を開いてSudo apt-get install nvidia-340
、次にSudo apt-get update
、続いてSudo apt-get dist-upgrade
を実行し、再起動しました。
これにより、MacBook Pro(7,1)でUbuntu Grubをブートローダーとして使用するデュアルブート構成(OS X 10.11.4 El Capitan)でUbuntu 16.04 LTSが正常に起動しました。
この問題に対処するために、ここにリンクされているガイドと@mikewhateverに感謝します。これが、同様の問題に遭遇する可能性のある他の人を助けることを願っています。
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/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
ファイルには次のコード行が含まれている必要があります。
PCIブリッジの場合は00:17.0を、ディスプレイ[GPU]の場合は02:00.0を値に置き換えてください。
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
spoof_osx_version
にトークンrefind.conf
を設定する必要があります。 rEFIndドキュメントから http://www.rodsbooks.com/refind/configfile.html :
一部のMacでは、このオプションにより、rEFIndは、別のOSが選択されている場合でも、指定されたバージョンのOS Xが起動されていることをファームウェアに通知します。その効果は、ファームウェアがハードウェアを異なる方法で初期化し、有益な(または有害な)結果をもたらす可能性があることです。 Macのビデオ出力が正常に機能しない場合、このオプションが役立つ場合があります。一方、キーボードとマウスは、このオプションを使用すると機能が停止することがあるため、不必要に使用しないでください。このオプションは、アップル以外のハードウェアには影響しません。デフォルトでは、この機能は使用されません。
MacOS SierraとUbuntu 16.04のデュアルブートを備えたMacbook Pro 7,1があるので、次のように設定します。
spoof_osx_version = 10.12
refind.conf
ファイルの編集方法について疑問がある場合は、 refind.conf構成ファイルはどこにありますか? を参照してください。