Touchscreen absent apres Suspend/Resume

Bonjour,
Je cherche depuis un petit moment, mais là, je seche.

J’ai un acer 1825ptz, avec un touchscreen qui est supporté à partir du noyau 2.6.35.
J’ai une install squeeze avec quelques paquets en “experimental” :
[ul]+ noyau 2.6.37

  • xserver-xorg-input-synaptics
  • xserver-xorg-input-evdev[/ul]

Lorsque je boot, le touchscreen fonctionne tres bien.
un

me retourne entre autre

I: Bus=0003 Vendor=2087 Product=0b03 Version=0111 N: Name="Cando 11.6 " P: Phys=usb-0000:00:1a.1-1/input0 S: Sysfs=/devices/pci0000:00/0000:00:1a.1/usb4/4-1/4-1:1.0/input/input10 U: Uniq= H: Handlers=mouse1 event10 B: EV=1b B: KEY=400 0 1 0 0 0 0 0 0 0 0 B: ABS=2600100 3 B: MSC=10

Je mets ensuite le portable en veille

et au reveil, plus de touchscreen.
cat /proc/bus/input/devices ne me retourne plus le device Cando.

n’affiche plus non plus l’ecran tactile.

… et tout le reste fonctionne.

Des posts similaires existent avec certaines souris, et les solutions que j’ai pu trouvées n’ont pas fonctionné dans mon cas: par exemple mettre atkbd.reset dans grub.
GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash atkbd.reset”

Il y aurait il moyen de réactiver au moins manuellement le touschreen. On dirait qu’il reste en veille!

Si vous avez une idée, je suis preneur…
Bien cordialement

Tu peux essayer de décharger et recharger les modules noyaux de evdev,
ou jouer avec synclient et syndaemon.

Tu peux aussi regarder du côté de udevadm pour la détection de tes périphériques.

Merci pour tes suggestions .

Concernant le module, j’avais déjà essayé ca, sans succès.

barbierk@debianPad:~$ sudo modprobe -r evdev FATAL: Module evdev is in use. barbierk@debianPad:~$

Par contre pour synclient et syndaemon, je ne vois pas comment interagir avec le touchscreen. Ca me donne plutot des infos sur le touchpad.

Dans les log /var/log/pm-suspend.log, rien a signaler. Un petit detail. Au moment du suspend, il y a dans les log, la liste des modules chargés. Je compare cette liste avec un lsmod apres le reveil.

barbierk@debian:~$ lsmod Module Size Used by ............ pci_hotplug 19711 1 shpchp button 4722 1 i915 evdev 7787 17 ext3 106389 2 jbd 36960 1 ext3 mbcache 5104 2 ext2,ext3 ............

Dans le log, il y avait :
Module Size Used by

evdev 7787 18

Tout le reste est rigoureusement identique.
A priori un consommateur de moins pour evdev!

Ah autant pour moi je croyais que le touchscreen était géré comme un touchpad un peu particulier.

Il faudrait forcer forcer le système à redétecter ses périphériques,
je ne sais pas si on peut forcer udev à faire ce genre de choses…

C’est exactement un truc comme ca que je cherche; mais en vain pour le moment.
Il y a potentiellement des choses à faire dans /etc/hibernate/common.conf
J’ai ajouté par exemple UnloadModules evdev
et faire un modprobe après le reveil, mais ca ne marche pas, le module est d’ailleurs present au reveil.
Je viens de m’apercevoir d’un autre truc. Je ne sais pas si c’est lié. (je pense que oui)
Apres un suspend, puis un resume, je ne peux plus faire de suspend.
En réalité, après un second suspend, un resume a lieu automatiquement.
Peut-on connaitre la source d’un resume. Histoire de voir qui est le coupable. Je ne vois pas dans les log

Ça commence à être compliqué…
Tu as jeté un coup d’œil à la sortie de dmsg avant/après 1er suspend/après 2nd suspend ?
As-tu essayé de faire tes tests avec un noyau un peu plus stable que 2.6.37 ?

J’avais déjà le problème avec un 2.6.36
Je n’ai pas pu testé avec un 2.6.35 car il n’est plus dans les dépôts “experimental” et pour le moment, je ne suis pas très motivé pour me le recompiler.
Mon touchscreen n’est supporté qu’a partir de 2.6.35! Donc je ne peux pas prendre plus ancien.

Par contre, et pour le fun, je viens de booter un live USB Ubuntu Maverick qui est en 2.6.35. Bah là, tout marche bien. Le touchpad fonctionne après un resume, et pas de souci pour faire un deuxième suspend.
Je me suis pris tous les logs, et je vais comparer, en espérant trouver un delta.
Je doute que cela soit lié au noyau.

@+

La dalle Cando est USB.
Avant un suspend:

lsusb Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 002: ID 2087:0b03 <<==== dalle CANDO Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 04f2:b175 Chicony Electronics Co., Ltd Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Apres un suspend,

lsusb Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 04f2:b175 Chicony Electronics Co., Ltd Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

La dalle a disparu.

J’ai essayé

modprobe -r uhci_hcd ehci_hcd modprobe uhci_hcd ehci_hcd

Et ca ne change rien. La dalle ne réapparait pas.
J’aimerais bien au moins trouver un workaround.
Alimentation de la dalle usb ???

  • On peut forcer l’alim ou pas ?
  • On peut eviter de desalimenter la dalle USB en veille???

[quote]J’ai essayé
Code:
modprobe -r uhci_hcd ehci_hcd
modprobe uhci_hcd ehci_hcd[/quote]

Va voir là si ca peut t’aider.

http://www.thinkwiki.org/wiki/How_to_configure_acpid

Ils disent de decharger les modules usb avant de passer en veille. A essayer peut-etre.

Yep, merci.
Je vais surement me servir de ca pour y ajouter le dechargement et chargement du module hid_cando.

J’ai un peu avancé: Apres un resume, lsusb ne me liste plus mon Touchscreen Cando.
mais si je fais:

par magie, j’obtiens avec lsusb:

barbierk@debianPad:~$ lsusb Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 002: ID 2087:0b03 Cando Multi Touch Panel Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 04f2:b175 Chicony Electronics Co., Ltd Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

En plus, desormais, il m’affiche meme “Cando Multi Touch Panel”, chose que je n’ai pas lorsque je fais un lsusb en temps normal (voir post plus haut).

Bon si je refais

Le touchscreen refonctionne, mais comme un touchpad.
C’est mieux, mais ce n’est pas encore cela.
J’y suis presque.

Apres plusieurs manip, voici la séquence qui semble fonctionner a chaque fois.

sudo modprobe -r hid_cando sudo modprobe -r uhci_hcd sudo modprobe uhci_hcd

De cette manière, le touchscreen refonctionne et normalement (pas a la sauce touchpad)
Cerise sur le gateau, cela supprime également mon probleme de deuxieme suspend qui faisait un auto-resume.
Les deux problemes étaient bien liés!!!

Je regarde comment ajouter ca dans les scripts ACPI.

@+

J’ai eu le même problème sur mon hp.
Je n’ai pas trop creusé pour trouver une soluce élégante, enfin si mais je n’ai pas trouvé.
Alors je lance la commande

avec un raccourcis clavier et puis zou.

J’ai essayé

Mais ca ne change rien. La dalle n’est plus vue comme périphérique, du coup ca ne marche pas.

Je me demande si y a pas un ch’tit souci au niveau du module hid_cando.
Je vais voir si je peux leur exposer mon probleme.

En attendant voici un workaround qui fonctionne plutot bien pour le moment.

Dans /usr/lib/pm-utils/pm-functions
j’ai remplacé la ligne
SUSPEND_MODULES=""
par
SUSPEND_MODULES=“hid_cando uhci_hcd”

attention, il y a un “S” a MODULES, car il existe aussi la variable SUSPEND_MODULE="" un peu plus loin dans le fichier. Il faut la laisser vide.

Et voila ca marche ENFIN, whouohohuhouhouh.

Je viens de jeter un oeil sur ubuntu 10.10 où il n’y a pas de problème avec le touchscreen après un resume.
Primo: SUSPEND_MODULES="" dans /usr/lib/pm-utils/pm-functions.
J’ai vérifié en ajoutant à la main des log dans les scripts, et le module hid_cando n’est clairement pas unloadé pendant un suspend.
Secundo: si je fais dans un shell de la ubuntu

sudo modprobe -r hid_cando sudo modprobe hid_cando
le touchscreen fonctionne
En revanche, la meme manip sur ma squeeze me fait perdre le touchscreen.
Il faut que je fasse

sudo modprobe -r uhci_hcd sudo modprobe uhci_hcd
pour récupérer la dalle.

Moralité, je penche de plus en plus pour un probleme de hid_cando dans 2.6.37 et 2.6.36
Faudrait que je regarde s’il y a eu des évolutions entre 2.6.35 et 2.6.36.

Personne a cette dalle sur d’autres laptop?

@+