睡眠模式后 Wacom 数位板被移除

睡眠模式后 Wacom 数位板被移除

当我将联想平板电脑从睡眠模式唤醒后(关闭和打开亮起),平板电脑功能停止工作。错误消息是“平板电脑串行 Wacom 平板电脑(联想 X201)已移除”(屏幕截图:http://dl.dropbox.com/u/2471034/MOS-ASH1.jpeg)。在系统设置中的输入设备下,显示“未检测到平板电脑设备”。只有重新启动才能解决问题,触摸屏才能再次工作。

此错误仅在从 Kubuntu 12.04 升级到 14.04 后出现。在 12.04 中,从睡眠模式唤醒后出现相同的错误消息,但随后又出现另一条错误消息,即平板电脑再次激活后工作正常。有什么想法可以解决这个问题吗?

答案1

最后,我找到了一个方便的解决方案!这确实是 (K)ubuntu 14.04 中的一些错误,影响了许多平板电脑用户。该错误已归档为Launchpad 错误 #1275416

这里提出了一些解决方法。提供的解决方案在 Rmano 的这个回答中距离不是很远,但建议的脚本对我来说不起作用。(我使用的是联想 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 文档网站上制作精良的页面。脚本使用可以是“暂停”、“恢复”、“休眠”、“解冻”的参数来调用,这样它们就可以知道为什么被调用。

因此,如果您想分别在暂停和恢复时卸载和重新加载 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. 这确实是一种 hack --- 卸载并重新加载模块可能会使应用程序混乱。例如,xournal除非重新启动它,否则在 tat 之后将无法看到触摸屏,这肯定会造成混乱。

相关内容