startx は nvidia ドライバーで黒い画面を表示します

startx は nvidia ドライバーで黒い画面を表示します

いくつかの情報:

distro: lubuntu 20.04
default dm - sddm
gpu - integrated intel, and Nvidia GTX 1650 mobile
nvidia drivers - nvidia-470

提供されているデフォルトのディスプレイ マネージャーを使用すると、sddmシステムは完全に正常に動作し、i3 openboxすべての wm が動作します。

しかし、使用するとすぐにstartx /usr/bin/i3黒い画面が表示され、同じ結果が作成されました。 また、別のもの.xinitrcも使用しましたが、結果は同じでした。wmopenboxopenbox-session

sddmサービスを停止してstartx再度試しても結果は同じで、カーソルのない黒い画面が表示されます。別のサービスに切り替えてtty使用すると、両方が実行中であるhtopことがわかります。xorgi3

xorg ログを確認しましたが、エラーは報告されていません。 結果は次のとおりprime-select queryですnvidia。 を使用しprime-select intel、再起動すると動作しますstartx。 そのため、 を使用するときに何かを構成する必要があると思いますnvidia

startx黒い画面が表示されないようにするにはどうすればいいでしょうか?

ありがとう。さらに情報を追加する必要がある場合はお知らせください。追加します。

htop preview of sddm

├─ /usr/bin/sddm
│  ├─ /usr/lib/x86_64-linux-gnu/sddm/sddm-helper --socket /tmp/sddm-auth1a548eff-e892-4543-89ec-705e1c6138a1 --id 1 --start i3 --user totoro
│  │  └─ i3
│  │     └─ /usr/bin/ssh-agent i3
│  ├─ /usr/lib/xorg/Xorg -nolisten tcp -auth /var/run/sddm/{36771d4e-9416-4be0-bfae-49c50dc60bc3} -background none -noreset -displayfd 17 -seat seat0 vt1
│  │  ├─ /usr/lib/xorg/Xorg -nolisten tcp -auth /var/run/sddm/{36771d4e-9416-4be0-bfae-49c50dc60bc3} -background none -noreset -displayfd 17 -seat seat0 vt1
│  │  ├─ /usr/lib/xorg/Xorg -nolisten tcp -auth /var/run/sddm/{36771d4e-9416-4be0-bfae-49c50dc60bc3} -background none -noreset -displayfd 17 -seat seat0 vt1
│  │  ├─ /usr/lib/xorg/Xorg -nolisten tcp -auth /var/run/sddm/{36771d4e-9416-4be0-bfae-49c50dc60bc3} -background none -noreset -displayfd 17 -seat seat0 vt1
│  │  ├─ /usr/lib/xorg/Xorg -nolisten tcp -auth /var/run/sddm/{36771d4e-9416-4be0-bfae-49c50dc60bc3} -background none -noreset -displayfd 17 -seat seat0 vt1
│  │  └─ /usr/lib/xorg/Xorg -nolisten tcp -auth /var/run/sddm/{36771d4e-9416-4be0-bfae-49c50dc60bc3} -background none -noreset -displayfd 17 -seat seat0 vt1
│  └─ /usr/bin/sddm

htop preview of startx

├─ /bin/login -p --
│  └─ -zsh
│     └─ /bin/sh /usr/bin/startx
│        └─ xinit /home/totoro/.xinitrc -- /etc/X11/xinit/xserverrc :1 vt2 -keeptty -auth /tmp/serverauth.czCRUMFwtc
│           ├─ /usr/bin/openbox --startup /usr/lib/x86_64-linux-gnu/openbox-autostart OPENBOX
│           └─ /usr/lib/xorg/Xorg -nolisten tcp :1 vt2 -keeptty -auth /tmp/serverauth.czCRUMFwtc
│              ├─ /usr/lib/xorg/Xorg -nolisten tcp :1 vt2 -keeptty -auth /tmp/serverauth.czCRUMFwtc
│              ├─ /usr/lib/xorg/Xorg -nolisten tcp :1 vt2 -keeptty -auth /tmp/serverauth.czCRUMFwtc
│              ├─ /usr/lib/xorg/Xorg -nolisten tcp :1 vt2 -keeptty -auth /tmp/serverauth.czCRUMFwtc
│              ├─ /usr/lib/xorg/Xorg -nolisten tcp :1 vt2 -keeptty -auth /tmp/serverauth.czCRUMFwtc
│              └─ /usr/lib/xorg/Xorg -nolisten tcp :1 vt2 -keeptty -auth /tmp/serverauth.czCRUMFwtc

答え1

を使用しているため、動作させるにnvidia-primeは にいくつかの行を追加する必要があります。ディスプレイ マネージャーでも同じことを行いますが、そのスクリプトがどこにあるかわかりません。.xinitrcsddm

これらの行を先頭に追加します.xinitrc

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

ソース -NVIDIA Optimus ArchWiki

さらに良いのは、

DRIVER="$(prime-select query)"
if [ "$DRIVER" = 'nvidia' ]; then
    xrandr --setprovideroutputsource modesetting NVIDIA-0
    xrandr --auto
fi

関連情報