Problème d'écran tactile sur Chuwi Hi10Go
Introduction
Il y a longtemps j’étais tombé sur un article de Richard Dern sur une tablette Asus T100TA dans lequel il explique comment il y avait installé NixOS. Ce jour là je ne sais pas ce qu’il s’est passé mais une lubie s’est installée dans ma tête : et si je faisais pareil ? Et si j’avais une tablette sous GNU/Linux pour piloter la maison ? Un écran intelligent, posé quelque part, par exemple la cuisine, toujours à portée de main.
Bref, une mouche m’a piquée en mai 2023 et j’ai finalement commandé une CHUWI Hi10Go.
Ce n’était pas sans contrepartie et l’objet était « piégé ». Nous allons voir en quoi, puis nous parlerons d’accéléromètre et finalement d’écran tactile. Accrochez-vous !

Photo trouvée sur le profil Flickr de Hernán Piñera sous Licence CC BY-SA 2.0.
La tablette et le problème
La CHUWI Hi10Go est une tablette 10,1 pouces avec 6 Go de RAM, 128 Go de stockage et un processeur Celeron N5100 cadencé à 2.8 Ghz. Le tout pour 192,99€ (à l’époque, c’est à dire en mai 2023). Pour le prix, c’est une belle machine. J’étais content. J’ai installé Ubuntu 22.04, j’ai branché un clavier et là… L’écran était à l’envers.
Pas légèrement de travers. Carrément à 180°, comme si j’avais pendu la tablette par les pieds. Et quand je la tournais dans l’autre sens, le système détectait le mouvement et faisait pivoter l’image pour qu’elle reste - toujours - à l’envers. Tête en bas, invariablement.
Bah, tu désactives la rotation automatique et tu mets l’orientation fixe
Vous avez raison, c’est une solution ; mais c’est aussi passer à côté de l’intérêt principal d’une tablette tactile.
J’ai cherché des solutions en 2023. Longtemps. Forums, wikis, fils Reddit, questions Stack Overflow… sans - réel - succès. Agacé et débordé par d’autres choses, j’ai posé la tablette dans un coin. Elle a dormi là pendant deux ans.
Puis, récemment, je l’ai ressortie (sûrement une autre mouche qui m’a piquée, ça en fait des mouches décidément !), bien motivé à en finir avec ce problème. Et cette fois j’ai complété mes connaissances et trouvé une, voire plusieurs, solutions.
L’accéléromètre et sa matrice
Le coupable, c’est l’accéléromètre - le capteur qui mesure l’orientation physique de la tablette et dit au système comment afficher l’image. Il transmet ses données sous forme d’une matrice de transformation (une grille de chiffres qui encode les axes et les rotations). Si cette matrice est mal configurée pour le modèle, le système interprète systématiquement l’orientation à l’envers. C’est exactement ce qui se passe sur la CHUWI Hi10Go sous Linux. Sûrement que sous Windows le pilote installé par défaut corrigeait le problème. Mais pas sous Linux.
Sous Ubuntu, on corrige ça via une règle udev (le gestionnaire de périphériques Linux) dans l’hardware database, par exemple dans le fichier /etc/udev/hwdb.d/61-sensor.hwdb avec le contenu suivant pour inverser la matrice de l’accéléromètre :
# Chuwi Hi10 Go
sensor:modalias:acpi:MXC6655*:dmi:*:svnCHUWIINNOVATIONLIMITED:pnHi10Go:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0,-1, 0; 0, 0, 1
J’ai trouvé cette règle sur le dépôt Github de systemd. Curieux que je n’étais pas tombé dessus auparavant, surtout que cela date de 2021 !
Puis on recharge la base de données matérielle :
sudo systemd-hwdb update
sudo udevadm trigger -v -p DEVNAME=/dev/iio:device0
Après un redémarrage, l’écran s’affiche enfin dans le bon sens. Quel soulagement. Et ceci chaque fois que je tourne physiquement la tablette de 90° en 90°.
Second problème caché : l’écran tactile
Parce qu’on ne doit pas crier victoire trop vite, je me suis rendu compte d’un autre souci. L’écran était dans le bon sens, mais le touchscreen (l’écran tactile, un composant Goodix Capacitive TouchScreen) ne répondait pas correctement. Les coordonnées de toucher étaient elles aussi inversées : si j’appuie en haut à gauche, le curseur apparaît en bas à droite. “Farpait” 🤣.
La correction passe également par une règle udev sur la variable LIBINPUT_CALIBRATION_MATRIX. Cette variable permet de recalibrer les coordonnées du tactile indépendamment du reste.
On crée un fichier, par exemple /etc/udev/rules.d/98-goodix-touchscreen-calibration.rules avec le contenu suivant :
ACTION=="add|change", KERNEL=="event*", ATTRS{name}=="Goodix Capacitive TouchScreen", ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0 1 0 -1 1"
Puis on recharge les règles :
sudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=input
On vérifie que la règle est bien prise en compte :
sudo udevadm info /dev/input/event15 | grep LIBINPUT_CALIBRATION
Et la sortie attendue :
E: LIBINPUT_CALIBRATION_MATRIX=-1 0 1 0 -1 1
On peut désormais tester avec le doigt sur l’écran. Miracle, le tactile répond enfin correctement 😄.
Conclusion
Après ces deux corrections la tablette est enfin utilisable. Je suis content de mon achat - même avec deux ans de retard sur le planning initial. J’ai bon espoir qu’elle devienne ce que j’avais imaginé dès le départ : une interface centrale pour piloter la maison.
Mais cette expérience m’a rappelé quelque chose : on parle trop peu du tactile sous GNU/Linux. Les articles sur le sujet sont rares, souvent anciens, rarement complets. C’est dommage, parce qu’il y a clairement une demande et des solutions existent, comme on vient de le voir.
Côté GNOME (interface graphique par défaut sur Ubuntu) : je n’ai jamais été fan car trop différent de mes habitudes, trop lourd à mon goût. Mais force est de constater qu’avec Ubuntu, l’environnement a bien évolué. Le tactile y est géré de façon cohérente - clavier virtuel, gestes, rotation. C’est un vrai effort visible et ça change la donne pour des machines comme les tablettes.
Pour 192,99€, on ne pouvait pas rêver mieux. À condition de passer une heure à corriger ce que les fabricants n’ont pas pris la peine de configurer pour Linux. Ce qui, dans notre écosystème, est finalement presque devenu une tradition.
Liens utiles
Voici les liens de l’article par ordre d’apparition :