web-dev-qa-db-ja.com

スリープモード後にWacomタブレットを取り外す

Lenovoタブレットをスリープモードから復帰させた後(点灯/消灯)、タブレットの機能が動作しなくなります。エラーメッセージは「タブレットシリアルワコムタブレット(Lenovo X201)が削除されました」です(スクリーンショット: http://dl.dropbox.com/u/2471034/MOS-ASH1.jpeg )。入力デバイスのシステム設定では、「タブレットデバイスは検出されません」と表示されます。再起動のみが役立ち、タッチスクリーンは再び機能します。

このエラーは、Kubuntu 12.04から14.04にアップグレードした後にのみ現れました。 12.04では、スリープモードから復帰した後、同じエラーメッセージが表示されましたが、タブレットが再びアクティブになり、正常に動作するという別のエラーメッセージが表示されました。これを修正する方法はありますか?

4
Thod

最後に、便利な解決策を見つけました!それは、多くのタブレットPCユーザーに影響する(K)ubuntu 14.04のバグです。バグは Launchpad Bug#1275416 として報告されています。

そこでいくつかの回避策が提案されています。 Rmanoによるこの回答 が提供する解決策はそれほど遠くありませんが、提案されているスクリプトは私の場合はうまくいきません。 (私はLenovo ThinkPad X201 Tabletを使用しています。)

バグレポートの post no。21 からのスクリプトと post no。22 からのコマンドは機能します:

  1. 次の内容のファイル/etc/pm/sleep.d/20_x200-wacom-workaroundを作成します。

    #!/bin/sh
    
    reenable_touch()
    {
      for idfile in /sys/class/tty/ttyS*/device/id; do
        if test -f $idfile; then
          if grep -q '^WACf00c$' $idfile; then
            devicefile=`echo "$idfile" | \
              sed -n \
                's/^\/sys\/class\/tty\/ttyS\([0-9]\+\)\/.*$/\/dev\/ttyS\1/p'`
            if test -n $devicefile; then
              inputattach --daemon -w8001 $devicefile
              break
            fi
          fi
        fi
      done
    }
    
    case $1 in
      resume|thaw)
        reenable_touch
        ;;
    esac
    
  2. そのファイルを実行可能にして、再開時に実行できるようにします。

    Sudo chmod +x /etc/pm/sleep.d/20_x200-wacom-workaround
    

スリープモードから復帰した後、Wacomタブレットが取り外されたという通知のすぐ後に、Wacomタブレットが再アクティブ化されるという別の通知が続くようになりました。問題が解決しました。

2
Thod

サスペンドおよびレジュームフェーズ中、Ubuntu(pm-utilsを使用するすべてのLinuxシステム)は、/etc/pm/sleep.d/ディレクトリにある一連のスクリプトを実行します。これらは、アルファベット順で実行されます---サスペンド中は0..9A..Zから、レジューム中はその逆です。従来、すべてのスクリプトは番号(00,01,02 ...)で始まり、番号付けには従来の意味もあります。 Arch Linux docサイトの非常によくできたページ の詳細。スクリプトは、「中断」、「再開」、「休止状態」、「解凍」のいずれかの引数で呼び出されるため、呼び出される理由を知ることができます。

したがって、サスペンド時とレジューム時にそれぞれwacomモジュールをアンロードおよびリロードしたい場合は、スクリプトを追加できます。たとえば、次の内容の/etc/pm/sleep.d/04_myscriptです。

#!/bin/sh

case "$1" in
        resume|thaw)
            modprobe wacom
        ;;
        suspend|hibernate)
            rmmod wacom
        ;;
esac
exit 0

また、スクリプトを実行可能にし、rootが読み取り可能にすることを忘れないでください。

chmod 755 /etc/pm/sleep.d/04_myscript

警告:

  1. 上記のすべてをルートとして実行する必要があります。そのため、スクリプトを編集してその権限を変更するには、適切なSudoを追加する必要があります。

  2. これは本当にハックです。モジュールのアンロードとリロードはアプリケーションを混乱させる可能性があります。たとえば、xournalは、tat後に再起動しない限りタッチスクリーンを見ることができないことを間違いなく混乱させます。

1
Rmano