ショートバージョン
Ubuntu 20.04では、内部モニターと外部モニターを同時に機能させることができません。既定のドライバーでのみ内部を持つことができますOR手動でインストールされたNVIDIAドライバーでのみ外部。ヘルプ!
私のシステムはASUS TUF A15ゲーミングラップトップ(FA506)です。 AMD®Ryzen™7 4800Hプロセッサーとグラフィックスを統合し、NVIDIA RTX 2060を搭載しています。
nouveau.modeset=0
を設定する必要がありますnvidia-driver-440
をインストールしてnvidia-xconfig
を実行すると、nvidiaカードは機能しますが、外部ディスプレイ(usbcポート上のディスプレイポート)のみが検出され、内部ディスプレイは機能しません/etc/X11/xorg.conf
を削除して再起動するだけで内部ディスプレイに戻ることができますが、外部ディスプレイとNVIDIAドライバーが使用されていませんnvidia-xconfig
を再度実行して再起動することで、NVIDIAに戻すことができますロングバージョン
Ubuntu 20.04の新規インストール(プロプライエタリソフトウェアのインストールを有効にした後)の後、ラップトップはテキストでバックスクリーンにブートします
[ 7.779369] ucsi_acpi USBC000:00: PPM init failed (-110)
ctrl + alt + F2
で仮想端末に切り替えてログインできます。ログイン後、画面に1分以上スパムが送信され、次のメッセージが表示されます。
[ 80.199703] nouveau 0000:01:00.0 fifo: SCHED_ERROR 08 []
に続く
[ 80.206302] nouveau 0000:01:00.0 DRM: failed to idle channel 0 [DRM]
この後、ターミナルにアクセスできます。インターネットのアドバイスに基づいて、/etc/default/grub
のa行を次のように変更して、LinuxのGrubエントリを変更できます。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
に
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.modeset=0"
と実行
Sudo update-grub
再起動後、gdmログイン画面が表示され、グラフィカルセッションにログインできますが、外部に接続すると検出されません。 DisplayPort-USBCを介して接続する外部モニターの有無にかかわらず、xrandr
の出力はHDMI
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1920 x 1080, current 1920 x 1080, maximum 1920 x 1080
default connected primary 1920x1080+0+0 0mm x 0mm
1920x1080 77.00*
Nvidiaドライバーがインストールされていないため、最初にSudo apt update
とSudo apt dist-upgrade
を使用してシステムを更新し、再起動します。ソフトウェアとアップデートの「追加ドライバー」タブをチェックしましたが、「追加ドライバーはありません」と表示されています。 ubuntu-drivers devices
を実行しても何も表示されません。
次善の策は、aptを介してnvidiaドライバーをインストールすることです。
Sudo apt install nvidia-driver-440
再起動後、モニターの状態は変更されていませんが、内部モニターのみです。 xrandr
出力は同じですが、Nvidiaドライバーがインストールされています。 nvidia-smi
は以下を示します:
Thu May 28 09:42:22 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64 Driver Version: 440.64 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce RTX 2060 Off | 00000000:01:00.0 Off | N/A |
| N/A 46C P0 9W / N/A | 0MiB / 5934MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
nvidia-settings
は小さな空のウィンドウを示します。起動はターミナルプリントからです:
ERROR: Unable to load info from any available system
(nvidia-settings:2986): GLib-GObject-CRITICAL **: 09:45:58.786: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
** Message: 09:45:58.789: PRIME: No offloading required. Abort
** Message: 09:45:58.789: PRIME: is it supported? no
次に、Sudo nvidia-xconfig
を実行して/etc/X11/xorg.conf
を生成します。再起動後、外部モニターIS機能している外部(ディスプレイポート)モニターに通常のgdmログイン画面が表示され、グラフィカルセッションにログインできます。残念ながら、内部モニターは検出されなくなり、 ASUSのロゴが表示されます。nvidia-settings
ダイアログには、期待するすべてのオプションが含まれています(ターミナルから起動すると、以前と同じ出力が表示されます)。
kanehekili
の要求に応じて、xrandr -q
の出力は次のようになります。
Screen 0: minimum 8 x 8, current 2560 x 1440, maximum 32767 x 32767
DP-0 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
2560x1440 60.00*+ 144.00 120.00 84.98
1920x1080 60.00 59.94 50.00
1680x1050 59.95
1440x900 59.89
1440x576 50.00
1440x480 59.94
1280x1024 75.02 60.02
1280x960 60.00
1280x720 60.00 59.94 50.00
1152x864 75.00
1024x768 75.03 70.07 60.00
800x600 75.00 72.19 60.32 56.25
720x576 50.00
720x480 59.94
640x480 75.00 72.81 59.94 59.93
DP-1 disconnected (normal left inverted right x axis y axis)
lspci -vv
の完全な出力は こちら です。ただし、グラフィックデバイスのエントリは次のとおりです。
01:00.0 VGA compatible controller: NVIDIA Corporation TU106 [GeForce RTX 2060] (rev a1) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. Device 1e21
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 94
Region 0: Memory at fb000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at b0000000 (64-bit, prefetchable) [size=256M]
Region 3: Memory at c0000000 (64-bit, prefetchable) [size=32M]
Region 5: I/O ports at f000 [size=128]
Expansion ROM at fc000000 [virtual] [disabled] [size=512K]
Capabilities: <access denied>
Kernel driver in use: nvidia
Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
06:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Renoir (rev c6) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. Renoir
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 255
Region 0: Memory at d0000000 (64-bit, prefetchable) [size=256M]
Region 2: Memory at e0000000 (64-bit, prefetchable) [size=2M]
Region 4: I/O ports at c000 [disabled] [size=256]
Region 5: Memory at fc500000 (32-bit, non-prefetchable) [size=512K]
Capabilities: <access denied>
Kernel modules: amdgpu
これを理解してください
私のインターネット検索から、このAMD/NVIDIAハイブリッドグラフィック構成と戦っているのは私だけではありません。聖杯は2つのグラフィックスカードをシームレスに統合して、可能な場合はバッテリーを節約し、必要に応じて個別のグラフィックスを使用しますが、両方のモニターが動作している状態で、永続的なパワーグズリングNVIDIAに満足します!
私の研究から、問題の核心は、nvidiaカードがディスプレイポートにハードワイヤードされており、統合されたグラフィックが内部モニターに接続されていることです。理想的には、nvidiaは統合されたグラフィックスにコピーできるバッファーにレンダリングできますが、詳細がわからず、これを構成する方法もわかりません。
注:一部のインターネットアドバイスでは、nvidiaドライバーをインストールする前にnvidia ppaを追加することを推奨しています。
Sudo add-apt-repository ppa:graphics-drivers/ppa
Sudo apt-get update
私は過去にこれを試しましたが、違いはありません。そのppaのnvidia-driver-440パッケージとubuntuリポジトリは同じバージョン440.82+really.440.64-0ubuntu6
であり、[追加のドライバー]タブに変更はありません。
また、注意:セキュアブートが無効になっています
編集:この投稿 Ubuntu 20.04は2番目のモニターを認識しません
nvidia-driver-435
のインストールを提案しますが、私の場合、これで問題が解決しません。
自分自身の質問に対して部分的な回答がありますが、それでもヘルプが必要です。
このreddit投稿を読んだ後 5.4であるUbuntu 20.04のカーネルバージョンが最新のAMD APUを適切にサポートしていないことが疑われました。これをテストするために、 こちら の手順を使用して、最新のカーネル5.6.15をインストールしました。新しいカーネルがインストールされたので、統合グラフィックスで実行しているときに、HDMIポートを外部モニターに使用できます。これは、xorg.conf Sudo rm /etc/X11/xorg.conf
を削除して再起動することです。しかし、nvidiaカードを使用する場合、私はまだ(usbc上の)ディスプレイポートしか使用できません。 NVIDIAを内部ディスプレイで使用できるようにしたいのですが。
Ubuntu 20.04に同梱されているLinuxカーネルでルノワールの実験的なサポートを使用して、AMDグラフィックスを管理しました。
amdgpu.exp_hw_support=1
を/etc/default/grub
に追加する必要があります。
これを行うには、編集するファイルをrootとして開きます。たとえば、次のように実行します。
Sudo edit /etc/default/grub
そして、GRUB_CMDLINE_LINUX_DEFAULT=
で始まる行に、二重引用符で囲まれたパラメーターのリストに、amdgpu.exp_hw_support=1
を追加します。たとえば、以前の内容に応じて、編集後の行は次のようになります。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.exp_hw_support=1"
ファイルを保存して終了し、次のコマンドを実行して変更を有効にします。
Sudo update-grub
そして再起動します。今、ヌーボードライバーをブラックリストに載せてください。これを行うには、例を使用して/etc/modprobe.d/
に新しい構成ファイルを作成します
Sudo nano /etc/modprobe.d/blacklist-nouveau.conf
次のエントリを追加します。
blacklist nouveau
options nouveau modeset=0
変更を保存して終了します(nanoを使用している場合はctrl + x)。次にinitramfsを更新します
Sudo update-initramsfs -u
リブート。これは、内部ディスプレイと外部ディスプレイの両方をサポートします。
まだnvidiaグラフィックはありません。このマシン(Ryzen 7 4800HおよびRTX 2060を搭載したAsusTUF)でswitchabme AMD/Nvidiaグラフィックスを使用する方法を知っておくとよいでしょう。
編集:内部/外部モニター(HDMI)でのNVidiaカードのアクティブ化
統合グラフィックスのみ(amdgpuドライバー)を使用することに満足している場合は、これ以上読み進めないでください。 NVidiaグラフィックに変更するには、続行してください。
ターミナルで、NVidiaドライバの以前のインストールをすべて削除することから始めます。
Sudo apt-get remove --purge '^nvidia-.*'
Sudo apt-get install ubuntu-desktop
Sudo rm /etc/X11/xorg.conf (if present)
システムを再起動します。次に、NVidiaドライバを再インストールします
Sudo apt-get install nvidia-driver-440
Amdgpuおよびnvidiaドライバー用のX11構成ファイルを編集します。これらは/usr/share/X11/sorg.conf.d/
にあります。まず、amdgpuのconfファイルを変更します。
Sudo nano /usr/share/X11/xorg.conf.d/10-amdgpu.conf
ファイルの内容を次のように変更します。
Section "OutputClass"
Identifier "AMDgpu"
MatchDriver "amdgpu"
Driver "amdgpu"
Option "PrimaryGPU" "no"
EndSection
次に、NVidiaのconfファイルを変更します。
Sudo nano /usr/share/X11/xorg.conf.d/10-nvidia.conf
次のエントリでファイルを編集します
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
Option "PrimaryGPU" "yes"
ModulePath "/usr/lib/x86_64-linux-gnu/nvidia/xorg"
EndSection
システムを再起動します。この解決策は私にとってうまくいきました。これで、HDMIを使用した内部/外部両方のモニター構成用のNvidiaドライバーが動作するシステムができました(テスト用のディスプレイポートまたはUSB-Cはありません)。
Amdgpuに戻すには、「PrimaryGPU」エントリのフラグを「yes」から「no」に適宜切り替えます。このソリューションは最適ではないため、より堅牢なスワッピングソリューション(例:nvidiaオンデマンド)を引き続き探します。余談ですが、カーネルを更新しても適切に機能させることができませんでした(5.5.19および5.6.19を試しました)。新しいカーネルバージョンでこのラップトップに役立ついくつかの興味深い機能がありますが。 Nvidiaモジュールが私のインストールで正しくインストールされませんでした(おそらく、システムの他の部分との統合をコンパイルすると、より堅牢になる可能性があります)。