web-dev-qa-db-ja.com

Dell TB16ドッキングステーションの取り外し/切断後のウェイクアップ時のDell XPS 9370ブランク画面(Ubuntu 18.04および16.04)

新しい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が更新されず、「古い」構成がまだ使用されていると思われます。他に更新する方法はありますか?または、以前の投稿スクリプトを何らかの方法で調整するには?

他のすべてが完璧に機能し、ラップトップが大好きです。ドックからプラグを抜くたびにシステムを再起動する必要があるため、この問題だけが少しイライラします。

どんな助けも大歓迎です、ありがとう!

4
urko99

解決しました。$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)。

1
urko99