web-dev-qa-db-fra.com

Tablette Wacom retirée après le mode veille

La fonctionnalité de la tablette cesse de fonctionner après la sortie du mode veille de ma tablette Lenovo (fermeture et ouverture allumées). Le message d'erreur est "Tablet Serial Tablet Wacom (Lenovo X201) supprimé" (capture d'écran: http://dl.dropbox.com/u/2471034/MOS-ASH1.jpeg ). Dans les paramètres système sous Périphériques d'entrée, il est indiqué que "Aucun périphérique tablette n'a été détecté". Seul un redémarrage est utile et l'écran tactile fonctionne à nouveau.

Cette erreur n'est apparue qu'après la mise à niveau de Kubuntu 12.04 à 14.04. En 12.04, le même message d'erreur apparaissait après le réveil en mode veille, mais un autre s'ensuivit, indiquant que la tablette était réactivée et qu'elle fonctionnait correctement. Des idées comment cela pourrait être résolu?

4
Thod

Enfin, j'ai trouvé une solution pratique! C’est en effet un bug dans (K) Ubuntu 14.04 qui affecte de nombreux utilisateurs de tablettes. Le bogue a été archivé sous le nom bogue du tableau de bord n ​​° 1275416 .

Un certain nombre de solutions de contournement sont suggérées ici. La solution proposée dans cette réponse de Rmano n'est pas loin, mais le script suggéré ne fonctionne tout simplement pas dans mon cas. (J'utilise une tablette Lenovo ThinkPad X201.)

Le script de post n ° 21 du rapport de bogue, plus la commande de post n ° 22 , fonctionne cependant:

  1. Créez un fichier /etc/pm/sleep.d/20_x200-wacom-workaround avec ce contenu:

    #!/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. Rendre ce fichier exécutable pour s’assurer qu’il peut s’exécuter sur CV:

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

Après être sorti du mode veille, la notification de retrait de la tablette Wacom est suivie, juste après, d'une autre notification indiquant que la tablette Wacom est réactivée… exactement comme elle était auparavant dans (K) Ubuntu 12.04. Problème résolu.

2
Thod

Pendant les phases de suspension et de reprise, Ubuntu (vraiment tous les systèmes Linux utilisant pm-utils) exécute une série de scripts situés dans le répertoire /etc/pm/sleep.d/; ils sont exécutés dans l'ordre alphabétique - à partir de 0..9A..Z pendant la suspension, et inversement pendant la reprise. Traditionnellement, toutes les écritures commencent par un numéro (00,01,02 ...) et la numérotation a également un sens conventionnel. Plus d'informations sur la page vraiment bien faite sur le site de documentation d'Arch Linux . Les scripts sont appelés avec un argument pouvant être "suspendre", "reprendre", "mettre en veille", "décongeler" afin qu'ils puissent savoir pourquoi ils ont été appelés.

Ainsi, si vous souhaitez décharger et recharger le module wacom lors de la suspension et de la reprise, vous pouvez ajouter un script - par exemple, /etc/pm/sleep.d/04_myscript avec le contenu:

#!/bin/sh

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

Et n'oubliez pas de rendre le script exécutable et lisible par root, avec

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

Mises en garde:

  1. tout ce qui précède doit être fait en tant que racine; donc pour éditer le script et changer son autorisation, vous devez ajouter le Sudo approprié.

  2. c'est vraiment un hack --- décharger et recharger le module peut dérouter les applications. Par exemple, il va certainement confondre xournal qui ne pourra pas voir l’écran tactile après l’avenir si vous ne le redémarrez pas.

1
Rmano