web-dev-qa-db-ja.com

MacBook Pro 7,1 + Ubuntu 16.04 LTS + nVidiaドライバー

私が見つけたガイドに従った後 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の問題は、ブートローダーの問題とも関連していますか?)

ここまで助けてくれてありがとう。

1
Joshua Drolte

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が正常に起動しました。

Screenshot

この問題に対処するために、ここにリンクされているガイドと@mikewhateverに感謝します。これが、同様の問題に遭遇する可能性のある他の人を助けることを願っています。

1
Joshua Drolte

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/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

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

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構成ファイルはどこにありますか? を参照してください。

0
francisv