スリープモード後にワコムタブレットが取り外される

スリープモード後にワコムタブレットが取り外される

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

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

答え1

ついに、便利な解決策を見つけました。これは確かに、多くのタブレットPCユーザーに影響を与える(K)ubuntu 14.04のバグです。このバグは、ランチパッドのバグ #1275416

そこではいくつかの回避策が提案されています。提案された解決策はRmanoのこの回答ではそれほど外れてはいませんが、提案されたスクリプトは私のケースでは機能しません。(私は Lenovo ThinkPad X201 タブレットを使用しています。)

脚本は投稿番号21バグレポートの投稿番号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 タブレットが再アクティブ化されたという別の通知が表示されるようになりました。これは、(K)ubuntu 12.04 でも同じでした。問題は解決しました。

答え2

Ubuntu (実際には pm-utils を使用するすべての Linux システム) は、サスペンドおよびレジューム フェーズで、ディレクトリにある一連のスクリプトを実行します。/etc/pm/sleep.d/これらのスクリプトは、サスペンド中は 0..9A..Z のアルファベット順に実行され、レジューム中はその逆になります。通常、すべてのスクリプトは数字 (00、01、02...) で始まり、番号にも慣例的な意味があります。詳細については、 Arch Linux ドキュメントサイトの非常によくできたページスクリプトは、「suspend」、「resume」、「hibernate」、「thaw」などの引数で呼び出されるため、スクリプトは呼び出された理由を知ることができます。

したがって、サスペンド時と再開時にそれぞれ 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. 上記の操作はすべて root として実行する必要があります。スクリプトを編集して権限を変更するには、適切な を追加する必要がありますsudo

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

関連情報