27 10 | 2011

Du bon (?) usage de son cerveau ( et de google ) en milieu hostile

Rédigé par Sorrodje

Classé dans : Informatique

Il y a parfois des moments où on est content de soi en bricolant du GNU-Linux. Parce que ces OS réservent de temps à autres des emmerdements divers et variés le plus souvent liés au fonctionnement de son matériel, ils nous permettent aussi de faire fonctionner notre cerveau aidé de sa mémoire pour résoudre ces soucis. Et parfois ça marche !


La preuve ici, grâce à un petit vostro V13 sympathique mais victime d'un bug pas facile à diagnostiquer et un peu complexe à traiter. Le tout me permettant de m'envoyer des fleurs (on n'est jamais mieux servi que par soi-même) tout en partageant les manips pour celui ou celle à qui ça peut servir un jour.



Un peu de réflexion, un zeste de culture, trois pincées de technique et beaucoup de Google et voilà sauvé ce petit portable d'une mort certaine par vol à travers une fenêtre. Histoire d'un sauvetage!




Derrière le bonheur apparent...


J'ai donc acheté à vil prix ce Dell Vostro V13 d'occasion à un particulier. Il remplace dans mon arsenal un HP2510p presque idéal s'il n'était pas affublé un disque d'une lenteur exaspérante. Soit ! Passage au V13 donc avant tout parce que je craque sur le look métal brossé et la finesse de l'ensemble.

Machine extra fine, légère, un Core 2 Duo basse consommation, 2Go de RAM et un Disque 7200 tr/mn de 320 go me permettant de jeter à l'envie des OS à tester à l'occasion. Ce portable a beau être doté d'accessoire bling-bling genre bluetooth et webcam, il n'en reste pas moins un ordi très milieu-de-gamme. Mais voilà, il est bien joli et correspond parfaitement à mon usage.

Doté d'un W7 piraté ( pas bien !) par l'ex-proprio, ce V13 ne tarde par à être doté d'une Ubuntu 11.10 en version Beta. Tout fonctionne apparemment très bien, ça baigne.

...se cache sournoisement la chienlit !


Oui mais non, il ne me faut pas bien longtemps pour être victime de mon clavier... Déjà, il est proche du touchpad et il est facile de "cliquer" sans le vouloir ici ou là en faisant sauter tout le dernier paragraphe que je venais de difficilement pondre, mais surtout, ce foutu clavier répond mal ! Il faut parfois appuyer plusieurs fois sur une touche pour voir s'afficher les caractères...C'est juste insupportable d'autant que le phénomène apparaît de façon apparemment aléatoire... En un mot comme en cent : ZE-TRUC-CHIANT !


Errements


Sans plonger dans les affres des lamentations dramatiques, je me retrouve tout de même bien marri ! ... Je laisse donc le W7 en place au cas où je devrais supprimer mon Ubuntu et revendre discrètement la rétive machine. Ceci dit, à l'époque on était en Beta 11.10, donc bon je pouvais espérer que le souci se tasserait un moment ou un autre au fur et à mesure de la stabilisation de l'OS. Chou blanc: le souci persiste :-/ ... Il va donc falloir me résoudre à essayer de creuser le pourquoi du comment de ce souci de clavier ou de revendre ce V13 ... N'ayant pas de thune pour le remplacer, il va me falloir mettre en route mon cerveau.


Cogitations


Dans ces cas là , le meilleur ami du bidouilleur amateur est google... Néanmoins il faut savoir quoi chercher si on veut que notre meilleur ami nous dégote LE tuto pas à pas permettant de résoudre le mystère de création de l'uni.. Euh non .. juste résoudre notre putain de problème.


Me voilà parti taper " ubuntu mon clavier répond mal " Dans le moteur de recherche... Evidemment, on aurait pu s'en douter, on a des réponses émanant du forum Ubuntu ...Je tombe donc rapidement sur cette discussion : ici qui fait apparaître une relation de cause à effet entre le fonctionnement du touchpad et le fonctionnement du clavier... Et ça je n'y aurais pas pensé tout seul.


Du coup je farfouille un peu du côté des utilitaires de gestion du touchpad... Sans succès. IL va falloir chercher ailleurs mais je retiens tout de même la possible relation entre touchpad et mon clavier rétif


Un début de lumière


Tout le problème dans ce genre de bug, c'est d'arriver à le reproduire donc d'identifier les causes d'apparition. Or là , on semble faire face à un problème aléatoire. Des fois ça marche , des fois ça marche pas. Or, un beau jour, je m'aperçois que le problème apparaît toujours " au bout d'un moment" sans trop savoir mieux. Je cherche donc du côté des problèmes de chauffe éventuelle. Nada, rien. Un coup pour rien.


Puis je m'aperçois enfin un peu fortuitement que le souci apparaît après une mise en veille ou hibernation ... Rien d'aléatoire donc ! Me souvenant de la possible relation avec le touchpad, je tente de désactiver et réactiver le touchpad après sortie de veille "pour voir" via fn+F6. Bingo! Le problème disparaît après la manip !!



Construction d'une solution


A partir de là , j'opte donc pour la désactivation/réactivation manuelle en sortie de veille qui me permet d'utiliser sans trop de problème mon vostro. Mais voilà , on est apprenti geek ou on ne l'est pas et il ne me semble pas méritoire de se contenter de ce contournement de piètre qualité.


Ayant un peu enquêté fut un temps sur les mécanismes de mise en veille et d'hibernation chez Debian, je me souviens donc qu'il faut aller voir du côté de pm-suspend. On repart vers Google donc avec des recherches genre "suspend keyboard issue" ou " suspend touchpad issue" voire " V13 suspend keyboard issue" et on tombe rapidement sur du: lourd. Du gros bug noyau bien sale qui n'encourage pas à faire le merle avant de se lancer à la recherche d'une solution.


Dans mes pérégrinations sur Google sur la base des éléments fournis dans les logs, ( message liés à synaptics dans dmesg en l'occurence ) j'avais dégoté ce thread avec le même problème et l'identification des commandes à passer pour faire réaliser au système la désactivation/réactivation du touchpad ... mais où doit on bien passer ces commandes modprobe -r psmouse et modprobe psmouse à pm-suspend pour qu'il les applique ?


Là je reconnecte deux neurones et je me souviens que parfois on doit faire des désactivation/réactivations de modules noyau liés au wifi ou à la CG pour s'éviter des soucis de sortie d'hibernation/veille et que pour cela , il faut passer des modprobe -r truc avant mise en veille puis des modprobe machin en sortie pour que tout fonctionne correctement. Par exemple on retrouve çe type d'infos dans la : doc ubuntu sur la veille/hibernation.


A que cela ne tienne , on est parti dans la bidouille "free-style", mode on-tente-le-tout-pour-le-tout... et je retourne vers google et essaye une recherche sur la base "suspend modprobe modprobe-r" pour voir si je trouve une piste pour faire passer mes commandes relative à psmouse dans pm-suspend.




En dixième ligne de recherche, mon oeil repère une page de la doc Ubuntu relative au dell XPS ... probablement attiré par le "DELL" ? et jze tombe sur un script pour désactiver et activer un module lié au wifi : http://doc.ubuntu-fr.org/dell_xps_m1340#suspend_to_ram_et_hibernate
.


Mouaaaaahahahaha ( rire dément du type qui croit qu'il vient de trouver le graal au fond de sa grange ) , là je la sens bien et je me dis , ban y'a plus qu'à reprendre le script et la manip en modifiant pour l'adapter à mon problème. Disons tout de suite que je ne sais pas scripter du tout et que donc je ne comprends qu'à peine la structure du script en question. Même pas peur ! Mode méga over free-style attitude ... Dégainage du terminal et en avant simone !


La manip complète en un jet :
:~$ sudo -i
[sudo] password for sorrodje: 
:~# cd /etc/pm/sleep.d
:/etc/pm/sleep.d# ls
10_grub-common  10_unattended-upgrades-hibernate novatel_3g_suspend 

On crée un fichier de script supplémentaire


:/etc/pm/sleep.d# nano clavier_bug

Je copie/colle le script de la doc ubuntu et modifie pour obtenir ça :
#!/bin/bash
case $1 in
    hibernate)
        modprobe -r psmouse 
        ;;
    suspend)
        modprobe -r psmouse
        ;;
    thaw)
        modprobe psmouse
        ;;
    resume)
        modprobe psmouse 
        ;;
    *)  ;;
esac


puis j'enregistre via ctrl+O et choix du nom clavier_bug


Il faut rendre le script exécutable ensuite via :
:/etc/pm/sleep.d# chmod +x clavier_bug

Puis redémarrer et tester les mises en veille ... là j'avoue que j'ai déjà un live CD sous la main pour récupérer les morceaux en cas de foirage total de la manip ;) ... mais ... mais ... CA MARCHE !!! ... mise en veille , hibernation .. Bug's GONE ! ... Chuis trop fier de mon coup 8-). Une petite vérif du bon passage du script lors des tests s'impose et on scrute donc les logs de pm-suspend pour voir :


:/var/log$ cat pm-suspend.log | grep 'clavier'
Running hook /etc/pm/sleep.d/clavier_bug.sh suspend suspend:
/etc/pm/sleep.d/clavier_bug.sh suspend suspend: not executable.
Running hook /etc/pm/sleep.d/clavier_bug.sh resume suspend:
/etc/pm/sleep.d/clavier_bug.sh resume suspend: not executable.
Running hook /etc/pm/sleep.d/clavier_bug suspend suspend:
/etc/pm/sleep.d/clavier_bug suspend suspend: success.
Running hook /etc/pm/sleep.d/clavier_bug resume suspend:
/etc/pm/sleep.d/clavier_bug resume suspend: success.
Running hook /etc/pm/sleep.d/clavier_bug hibernate hibernate:
/etc/pm/sleep.d/clavier_bug hibernate hibernate: success.
Running hook /etc/pm/sleep.d/clavier_bug thaw hibernate:
/etc/pm/sleep.d/clavier_bug thaw hibernate: success.

Tout est en "success" .. ça baigne!

Moralité :



C'est pas avec windows qu'aurait autant de satisfaction à résoudre ce type de problème... qui a dit qu'on aurait pas eu de problème ? .. OK toi tu sors !! ;-)).. Pour les autres : ne lâchez rien!

Post-Scriptum


En fait , j'aurais pu trouver bien plus vite en allant directement aux logs du kernel ( /var/log/kern.log ) mais je ne l'ai compris qu'après .. du coup j'aurais vu plus vite les messages d'erreur répétitif liés à la frappe au clavier et donc identifié directement que c'est un bug noyau répertorié et non solutionné.... j'aurais aussi repéré vite un bug launchpad ouvert .. C'est sur ce dernier que je viens de proposer ma solution laborieusement construite lors des cogitations que je viens de narrer ;)

Mots clés : modprobe, pm-suspend, vostro, V13, DELL

2 commentaires

jeudi 27 octobre 2011 à 14:21 le hollandais volant a dit : #1

Bravo !
Moi je suis en ce moment en bataille avec mon ordinateur, également avec un soucis a priori aléatoire : un freeze total et inopiné…

J'en ai parlé sur Ubuntu-fr, avec le revendeur de mon matériel, et depuis 3 mois, toujours aucun indice : on a vérifié la RAM, l'OS (32 bit, 64bit, la distribution), si ça venait des pilotes, rien trouvé.

Actuellement je penche pour une surchauffe de certains composants (il apparait que ça puisse aussi venir des nouvelles puces Sandybridge d'Intel, donc un problème de driver), j'ai commandé un dissipateur thermique sur ebay et je vais voir ce que je peux faire…

Mais comme tu dis, je ne lâche rien ! Je m'en suis toujours sorti sous Linux, pas de raison que ce soucis m'échappe :).

dimanche 24 juin 2012 à 01:16 H2L29 a dit : #2

GG!! ça me servira surement un jour ;)

@Le hollandais volant, j'ai le même bug sur mon fixe à cause du SSD, pas de solutions actuellement et google dit que je ne suis pas le seul mais complètement aléatoire(pas de marque/model/controleur spécifique)

Écrire un commentaire

Quelle est la dernière lettre du mot ujql ? : 

Archives

Contrat Creative Commons
Ce(tte) oeuvre est mise à disposition selon les termes de la Licence Creative Commons Paternité - Partage à l'Identique 2.0 France
.