新しいDell XPS 9730(Intel UHD Graphics 620)とDell TB16ドッキングステーションを購入しましたが、すべてが完全に機能します休止状態のときにTB16ドッキングステーションから切断すると-スリープ解除すると、ラップトップの電源が入りますが、ビルトイン画面は暗いままです。
ドックに接続すると、ラップトップの蓋が常に閉じられ、2台の外部Dellモニターに出力が表示されます(1920x1200および1920x1080)。ただし、ポートから切断された場合、出力はもちろん内蔵ディスプレイにのみ表示されます。 出力ソースを変更せずに休止状態からシステムをウェイクアップすると、すべて正常に動作します。プラグを抜いた後にラップトップを再起動しても、すべてが正常に機能します。 16.04と18.04で同じ動作をします。
Xrandr仕様(xrandr -q
): 画像へのリンク
/lib/systemd/system-sleep/update-displays
のような休止状態のポストスクリプトで少し遊んでいました。
#!/bin/sh
# Reset monitors in case laptop was detached
set -e
echo "Checking enabled monitors"
if [ "$2" = "hibernate" ] || [ "$2" = "hybrid-sleep" ]; then
case "$1" in
post)
if [xrandr -q|grep DP-1-2|egrep -v disconnected] && [xrandr -q|grep DP-2-2|egrep -v disconnected]; then
echo "Enabling built-in monitor"
xrandr --output eDP-1 --auto
fi
;;
esac
fi
しかし、成功せずに...スクリプトに間違いがあるかもしれませんか? ウェイクアップ時にxrandrが更新されず、「古い」構成がまだ使用されていると思われます。他に更新する方法はありますか?または、以前の投稿スクリプトを何らかの方法で調整するには?
他のすべてが完璧に機能し、ラップトップが大好きです。ドックからプラグを抜くたびにシステムを再起動する必要があるため、この問題だけが少しイライラします。
どんな助けも大歓迎です、ありがとう!
解決しました。$2
パラメーター(hibernateまたはhybrid-sleep)のイベントフィルターが間違っていました。また、他の誰かが便利だと思う場合に備えて、スクリプトを単純化しました。
#!/bin/sh
# Reset xrandr at wakeup in case any display setup change was made
case "$2" in
hibernate|suspend)
case "$1" in
post)
xrandr --auto
echo "System waking up from -$2- at $(date '+%d/%m/%Y %H:%M:%S')" >> /tmp/update-displays.txt
;;
esac
;;
esac
Ubuntu 18.04では、/lib/systemd/system-sleep
を入力します。つまり、/lib/systemd/system-sleep/update-displays
を入力し、正しい許可を設定します(私の場合は755)。