Pb avec le Touchscreen -> Pb QEMU ou kernel ?

166 views
Skip to first unread message

0xb563

unread,
Jul 24, 2012, 5:39:04 AM7/24/12
to concours-li...@googlegroups.com
Bonjour,

j'ai suivi les instructions de Linux Magazine n°151 de juillet/août pour installer QEMU et la generation d'un rootfs.
En plus, j'ai ajoute les variables d'environnement pour la TSLIB. Apres lancement de ts_test, je vois les coordonnes changer qd je passe avec la souris dans la fenetre du framebuffer, et je vois aussi le clicks de souris. Par contre le pointeur de souris disparait et la croix aussi, du coup je navigue en aveugle sur le touchscreen virtuel. J'ai teste plusieurs kernels, entre autre de git://repo.or.cz/linux-2.6/mini2440.git et le kernel genere par defaut de buildroot (3.0.4 je crois). J'observe tjs le meme comportement.
Est-ce eventuellement un probleme de QEMU? Probleme de patch QEMU et/ou kernel ? Existe t-il un lien avec les patch necessaires pour des kernels 2.6.X et 3.X.Y ?

A+
0xb563

Laurent Navet

unread,
Jul 24, 2012, 6:40:11 AM7/24/12
to concours-li...@googlegroups.com
Bonjour,

Que donne un ts_calibrate ?

Le 24/07/12, 0xb563<0xb...@gmail.com> a écrit :
> Bonjour,
>
> j'ai suivi les instructions de Linux Magazine n°151 de juillet/août pour
> installer QEMU et la generation d'un rootfs.
> En plus, j'ai ajoute les variables d'environnement pour la TSLIB. Apres
> lancement de ts_test, je vois les coordonnes changer qd je passe avec la
> souris dans la fenetre du framebuffer, et je vois aussi le clicks de
> souris. Par contre le pointeur de souris disparait et la croix aussi, du
> coup je navigue en aveugle sur le touchscreen virtuel. J'ai teste plusieurs
>
> kernels, entre autre de git://*repo*.or.*cz*/*linux*-2.6/*mini2440*.*git
> *<http://repo.or.cz/w>et
> le kernel genere par defaut de buildroot (3.0.4 je crois). J'observe tjs le
>
> meme comportement.
> Est-ce eventuellement un probleme de QEMU? Probleme de patch QEMU et/ou
> kernel ? Existe t-il un lien avec les patch necessaires pour des kernels
> 2.6.X et 3.X.Y ?
>
> A+
> 0xb563
>


--
« On ne résout pas un problème avec les modes de pensée qui l’ont engendré. »
« You cannot solve current problems with current thinking. Current
problems are the result of current thinking »

SxDx

unread,
Jul 24, 2012, 7:08:27 AM7/24/12
to concours-li...@googlegroups.com
> souris. Par contre le pointeur de souris disparait et la croix aussi,
> du
> coup je navigue en aveugle sur le touchscreen virtuel. J'ai teste

passe "-show-cursor" quand tu lances qemu

0xb563

unread,
Jul 24, 2012, 1:14:48 PM7/24/12
to concours-li...@googlegroups.com
Effectivement, maintenant jái le pointeur de la souris.
J'avais aussi un probleme de patch kernel, pas evident de trouver le(s) bon(s).

Il apparait encore :

s3c-adc s3c24xx-adc: s3c_adc_irq: no adc pending

Est-ce normal?

yargil

unread,
Jul 24, 2012, 3:39:03 PM7/24/12
to concours-li...@googlegroups.com
On 24/07/2012 19:14, 0xb563 wrote:
> Effectivement, maintenant jái le pointeur de la souris.
> J'avais aussi un probleme de patch kernel, pas evident de trouver
> le(s) bon(s).
>
> Il apparait encore :
>
> s3c-adc s3c24xx-adc: s3c_adc_irq: no adc pending
>
> Est-ce normal?
Ce n'est qu'un message de warning de Linux. Tant que ça marche ce n'est
pas la peine de te prendre la tête avec. Après avoir regardé vite fait
dans les entrailles du kernel, ce message est affiché lorsqu'il n'y a
personne à qui envoyer les info retournées par l'interruption de l'ADC.

--
Yargil
http://yargil.free.fr

0xb563

unread,
Jul 24, 2012, 4:08:20 PM7/24/12
to concours-li...@googlegroups.com
Ok, Merci

jean.so...@laposte.net

unread,
Jul 28, 2012, 10:39:28 AM7/28/12
to concours-li...@googlegroups.com

Bonjour,

Quelles sont les options que vous utilisez pour émuler touchscreen avec la souris dans QEMU ?

@+
AleaJactaEst

0xb563

unread,
Jul 28, 2012, 12:18:35 PM7/28/12
to concours-li...@googlegroups.com
Cote QEMU, il faut utliser l'option "-show-cursor". Rien d'autre est a faire.
Ensuite il faut patcher le kernel. J'ai remarque que les options concernant le touchscreen des kernels standard ne fonctionnent pas. Les bon patch tu les trouves par exemple dans le forum de friendlyarm. Est-ce que ts_test et ts_calib fonctionnent ?

AleaJactaEst

unread,
Jul 28, 2012, 6:06:39 PM7/28/12
to concours-li...@googlegroups.com

Concernant les options QEMU, j'ai utilisé les suivantes : -show-cursor, -usb, -usbdevice keyboard, -usbdevice mouse, -usbdevice touchscreen, -usbdevice tablet
Remarque: je n'ai jamais testé l'option -show-cursor seule ( a faire)

concernant le patch kernel, j'ai adapté le patch pour le kernel 3.3.7 (voir la pièce jointe)      


Pour ts_test & ts_calib, j'ai un affichage graphique mais sans aucune réaction, voici le résultat de mes tests

# export TSLIB_TSDEVICE=/dev/input/event0
# ts_test &
# tslib: Selected device is not a touchscreen (must support ABS and KEY event types)

# kill $!
# signal 15 caught
[1]+  Done(1)                    ts_test
# export TSLIB_TSDEVICE=/dev/input/event1
# ts_test &
# tslib: Selected device is not a touchscreen (must support BTN_TOUCH events)
# kill $!
[1]+  Done(1)                    ts_test

# ts_calibrate &
# xres = 240, yres = 320
tslib: Selected device is not a touchscreen (must support BTN_TOUCH events)
# kill $!
# signal 15 caught
[1]+  Done(1)                    ts_calibrate

# export TSLIB_TSDEVICE=/dev/input/event0
# ts_calibrate &
# xres = 240, yres = 320
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
# kill $!
# signal 15 caught
linux-3.3.7-mini2440-touchscreen.patch

AleaJactaEst

unread,
Jul 28, 2012, 7:58:48 PM7/28/12
to concours-li...@googlegroups.com

Après analyse et régénération du noyau, je viens enfin d'activer cette fonctionnalité (touchscreen).


La solution :

   1/ appliquer le patch

   2/ activer (ou vérifier qu'elle est active) dans la configuration linux l'option « Samsung S3C2410 touchscreen »

CONFIG_TOUCHSCREEN_S3C2410:Samsung S3C2410/generic touchscreen input driver

   3/ recompiler le noyau


Démarrage Linux avec l'option suivante : mini2440=0tb

   0 : mode graphique (0:240x320 1:800x480 2:1024x768)

   t : touchscreen

   b : FEATURE_BACKLIGHT (rétroéclairage)



Puis dans la log du démarrage on voit les messages suivants :

. . .

MINI2440: Option string mini2440=0tb

MINI2440: LCD [0:240x320] 1:800x480 2:1024x768 3:320x240

. . .

samsung-ts s3c2440-ts: driver attached, registering input device

input: S3C24XX TouchScreen as /devices/virtual/input/input0

. . .



Pour le test, dans un premier temps on calibre l'écran ts_calibre (à savoir appuyer sur la croix à chaque fois quel apparaît) puis on peut tester via ts_test

# ts_calibrate &

xres = 240, yres = 320

Took 3 samples...

Top left : X = 794 Y = 255

s3c-adc s3c24xx-adc: s3c_adc_irq: no adc pending

Took 23 samples...

Top right : X = 794 Y = 765

s3c-adc s3c24xx-adc: s3c_adc_irq: no adc pending

Took 17 samples...

Bot right : X = 198 Y = 754

s3c-adc s3c24xx-adc: s3c_adc_irq: no adc pending

Took 34 samples...

Bot left : X = 194 Y = 254

Took 23 samples...

Center : X = 493 Y = 501

-18.822693 -0.002781 0.277180

341.227112 -0.367901 0.001456

Calibration constants: -1233564 -182 18165 22362660 -24110 95 65536

s3c-adc s3c24xx-adc: s3c_adc_irq: no adc pending

# ts_test &

1343519552.282181: 122 160 255

1343519552.285526: 122 160 255

1343519552.290803: 122 160 255

1343519552.335540: 123 159 0

s3c-adc s3c24xx-adc: s3c_adc_irq: no adc pending


Le point est résolu.

Merci.

AleaJactaEst

unread,
Jul 29, 2012, 12:33:59 PM7/29/12
to concours-li...@googlegroups.com

Concernant le message « s3c-adc s3c24xx-adc: s3c_adc_irq: no adc pending »

Je l'ai retrouvé aussi, à chaque fois que j’appuie sur un bouton de la souris.


Je ne sais pas si cela un rapport, mais après plusieurs (et nombreux) appuient sur le bouton de la souris, j'observe un blocage de touchscreen (sur ts_test, directfb & enlightenment)

Cerise sur le gâteau, le positionnement du pointeur est moins fiable sur directfb & enlightenment.

(a savoir, il part dans une autre direction)


Yargil

unread,
Aug 4, 2012, 3:13:40 PM8/4/12
to concours-li...@googlegroups.com


Le dimanche 29 juillet 2012 01:58:48 UTC+2, AleaJactaEst a écrit :

Démarrage Linux avec l'option suivante : mini2440=0tb

   0 : mode graphique (0:240x320 1:800x480 2:1024x768)

   t : touchscreen

   b : FEATURE_BACKLIGHT (rétroéclairage)


Puis dans la log du démarrage on voit les messages suivants :

. . .

MINI2440: Option string mini2440=0tb

MINI2440: LCD [0:240x320] 1:800x480 2:1024x768 3:320x240

Attention, le type d'écran à utiliser est le 3 (320x240). C'est celui qui correspond au type d'écran livré avec la mini2440 (écran de type W35i). Pour ceux dont la version de Linux ne dispose pas voici un lien vers le patch pour ajouter le support de l'écran : http://www.spinics.net/lists/arm-kernel/msg148407.html
 
Donc dans la ligne de commande du kernel on doit utiliser : mini2440=3tb

AleaJactaEst

unread,
Aug 5, 2012, 8:58:33 AM8/5/12
to concours-li...@googlegroups.com
En gros, une rotation à 90°.
Je ne le connaissais pas, merci pour l'information.

@+
AleaJactaEst

AleaJactaEst

unread,
Aug 29, 2012, 7:49:23 PM8/29/12
to concours-li...@googlegroups.com
Bonjour,

Après des tests complémentaires (sur une machine plus puissante),
le problème de blocage de touchscreen disparaît,
et la précision est meilleure (a savoir un léger décalage par rapport au curseur de la souris, exceptionnellement le curseur est plus loin) .
(test réalisé sous enlightenment)

Par contre le message « s3c-adc s3c24xx-adc: s3c_adc_irq: no adc pending » apparaît toujours après chaque appuie.

@+
AleaJactaEst

Antonio LUNA-ARRIAGA

unread,
Aug 29, 2012, 8:12:07 PM8/29/12
to concours-li...@googlegroups.com
Bonjour,
Moi aussi j'ai le même message mais ca démarre bien la plus part de temps.
PS. Je suis sur QT.
a+
-Antonio
--
Antonio LUNA-ARRIAGA
Reply all
Reply to author
Forward
0 new messages