私はnvidia optimusとミニドッキングステーションシリーズ3を備えたlenovo thinkpadを持っています。
ドッキングしている間、可能であれば自動的に外部モニターに切り替わり、ドッキングを解除すると自動的にthinkpad lcdに切り替わります。
暗号化されたディスク(dm-crypt)のパスワードを入力する必要があるため、これはブートステージでも機能するはずです。
私は以下を試しましたが、うまくいきません:
次の行を含むファイル/etc/acpi/thinkpad-undock.sh
(+ chmod a+x thinkpad-undock.sh
)を作成しました。
#!/bin/sh
xrandr --output LVDS-1 --auto --output DP-5.8 --off
そしてまた /etc/acpi/thinkpad-dock.sh
#!/bin/sh
prime-select nvidia # ensures that nvidia card is selected
xrandr --output LVDS-1 --off --output DP-5.8 --auto
そして再びchmod a+x thinkpad-dock.sh
。
両方のスクリプトの実行は手動で機能します。
イベントを処理するために2つのファイルを作成しました。
thinkpad-dock-lenovo
event=ibm/hotkey LEN0068:00 00000080 00004010
action=/etc/acpi/thinkpad-dock.sh
そしてまた thinkpad-undock-lenovo
event=ibm/hotkey LEN0068:00 00000080 00004011
action=/etc/acpi/thinkpad-undock.sh
次に、acpiデーモンをでリロードしました/etc/init.d/acpid reload
。ただし、ラップトップをドッキングまたはドッキング解除しても、何も起こりません。
上記のイベント番号を取得するには、acpi_listen
ラップトップを実行してからドッキングおよびドッキング解除します。
それを機能させる方法についてのアイデアはありますか?
たぶん、問題はkdeなどのデスクトップ環境で解決されますが、私はxmonadを使用していますが、上記のように、デスクトップ環境とは関係なく、ブートステージでも機能するはずです。
カーネルバージョン4.4.0-22でubuntu 16.04を実行しています。
以下のようにudevルールも追加しようとしましたが、うまくいきませんでした:
ENV{EVENT}=="undock", KERNEL=="dock.0", SUBSYSTEM=="platform", RUN+="disper -s"
ENV{EVENT}=="dock", KERNEL=="dock.0", SUBSYSTEM=="platform", RUN+="disper -s"
dock
ラップトップがドッキングされているかどうかに関係なく、ファイルの値が常に0であることに気づきました。