web-dev-qa-db-ja.com

ClevoN871EJ1ラップトップでNVidiaGPUを使用する

私はここにClevoN871EJ1(Schenker Media 17)ラップトップを持っているので、かなり頭痛がします。 Ubuntu 18.10、Debian Stretch、Debian Buster(Testing)をインストールしようとしましたが、インストール中またはインストール後に「CPUスタック」カーネルメッセージが表示されてすべてロックされました。コマンドラインでlspciを呼び出すと、すぐにマシンがロックされ、簡単に再現できました。 pci=noacpiカーネルパラメーターを指定することでこれを解決することができ、NVidia GPUを除いてすべてが正常に機能するようになりました。これが私の質問です(関連する場合の最初のロックの問題について説明しました)。

ラップトップには2つのGPUがあります。

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
01:00.0 VGA compatible controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] (rev a1)

マシンのファームウェア(UEFIのみ、レガシーモードなし)には構成オプションがほとんどないため、専用GPUを選択する方法はありません。ですから、この恐ろしいNVidiaOptimusのものがここで使用されていると思います。

Intel GPUは、ビデオアクセラレーションと3Dアクセラレーションで問題なく動作するため、問題ありません。しかし、そこでこのGTX1050を使用しないのは残念です。

そこで、bumblebeeと独自のnvidiaドライバー(Debianパッケージnvidia-driverバージョン390.87-6、カーネル4.19.12-1)をインストールし、nouveauドライバーが適切にブラックリストに登録されていることを確認しましたが、機能しません。 :

$ optirun glxinfo
[29571.477699] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver

[29571.477772] [ERROR]Aborting because fallback start is disabled.

カーネルログに次のように表示されます。

[29571.206327] nvidia: module license 'NVIDIA' taints kernel.
[29571.206329] Disabling lock debugging due to kernel taint
[29571.224868] nvidia-nvlink: Nvlink Core is being initialized, major device number 240
[29571.225080] nvidia 0000:01:00.0: can't find IRQ for PCI INT A; please try using pci=biosirq
[29571.225082] NVRM: Can't find an IRQ for your NVIDIA card!
[29571.225083] NVRM: Please check your BIOS settings.
[29571.225083] NVRM: [Plug & Play OS] should be set to NO
[29571.225083] NVRM: [Assign IRQ to VGA] should be set to YES 
[29571.225085] nvidia: probe of 0000:01:00.0 failed with error -1
[29571.225095] NVRM: The NVIDIA probe routine failed for 1 device(s).
[29571.225095] NVRM: None of the NVIDIA graphics adapters were initialized!
[29571.266406] nvidia-nvlink: Unregistered the Nvlink Core, major device number 240

出力のヒントに従ってpci=biosirqを設定すると、起動中にマシンが再びロックされます。ファームウェアには「プラグアンドプレイOS」または「IRQをVGAに割り当てる」オプションもありません(UEFIのみ、レガシーモードなし)。

では、NVidia GPUを機能させるために他に何を試みることができますか?

1
kayahr

私自身の質問に答えるために、私はついにここで解決策を見つけました:

したがって、実際の問題は、電源がオフになっているNVidia GPUに遭遇すると、Xサーバーとlspciがシステムをフリーズすることです。カーネルオプションpci=noacpiを設定すると、NVidia GPUへのアクセスが完全に遮断されてこの問題が誤って回避されたと思います(ドライバーをロードできません)。

修正は/etc/bumblebee/bumblebee.confを変更することです:

  • PMMethodnoneに設定します
  • AlwaysUnloadKernelDrivertrueに設定します

この後、pci=noacpiカーネルオプションを削除してシステムが正しく起動し、lspciがフリーズしなくなり、optirunでNVidiaGPUを使用できるようになりました。

1
kayahr