[HOWTO?] installation du driver aiptek pour linux

Installation et utilisation des tablettes graphiques sous Linux.
olivs
Administrateur
Administrateur
Messages : 2090
Inscription : 28 avr. 2004, 08:23
Localisation : Toulouse
Contact :

[HOWTO?] installation du driver aiptek pour linux

Message par olivs »

Salut,

cela fait plus d'un an que j'ai ma tablette TRUST 1200 Wireless, mais je n'ai jamais réussi à la faire fonctionner avec le driver pré-compilé qui date de... Novembre 2004! Le driver aiptek est documenté ici: http://aiptektablet.sourceforge.net/

Du coup, je souhaite installer la tablette à partir des sources, comme certains l'ont fait apparemment avec succès. Manque de bol, je ne sais pas faire. Je me propose donc pour rédiger un pas-à-pas d'installation, à partir de l'aide que vous m'apporteriez dans ce fil de discussion.

Les sources sont sous Subversion, donc la première étape consiste à les récupérer: comment procéder?

Amicalement,

Édition du lien par KiBi, double copier/coller apparemment
KiBi
Messages : 901
Inscription : 27 déc. 2004, 00:57
Localisation : Brest, Dijon
Contact :

Message par KiBi »

Salut, pareil qu'à l'époque du CVS chez SourceForge, tu cliques depuis la page que tu as citée plus haut sur « SourceForge page », puis dans la nouvelle page « Subversion ». Des indications te sont alors données, la commande générique étant : « svn co https://svn.sourceforge.net/svnroot/aiptektablet aiptektablet ». Il te faudra installer un paquet généralement nommé « subversion » pour disposer du client en ligne de commande « svn ».
olivs
Administrateur
Administrateur
Messages : 2090
Inscription : 28 avr. 2004, 08:23
Localisation : Toulouse
Contact :

Message par olivs »

OK, sous Mandriva, l'installation de subversion n'a pas posé de pb spécifique, quelques dépendances supplémentaires ont été à résoudre (et l'ont été automatiquement, bien sûr):

Code : Tout sélectionner

[root@localhost olivier]# urpmi subversion
Pour satisfaire les dépendances, les 4 paquetages suivants vont être installés (4 Mo):
libapr-util0-0.9.6-8mdk.i586
libapr0-0.9.6-5mdk.i586
libsvn0-1.3.2-3.mdk2006.0.mde.i586
subversion-1.3.2-3.mdk2006.0.mde.i586
Est-ce correct ? (O/n) o
Veuillez insérer le média nommé « The Ultimate Linux Desktop DVD  » dans le périphérique [/dev/hdd]
Appuyez sur la touche Entrée quand vous êtes prêt...

    http://www.mde.djura.org/2006.0/RPMS/./libsvn0-1.3.2-3.mdk2006.0.mde.i586.rpm
    http://www.mde.djura.org/2006.0/RPMS/./subversion-1.3.2-3.mdk2006.0.mde.i586.rpm
installation de subversion-1.3.2-3.mdk2006.0.mde.i586.rpm libsvn0-1.3.2-3.mdk2006.0.mde.i586.rpm libapr0-0.9.6-5mdk.i586.rpm libapr-util0-0.9.6-8mdk.i586.rpm depuis /var/cache/urpmi/rpms
Préparation ...                  #############################################
      1/4: libapr0               #############################################
      2/4: libapr-util0          #############################################
      3/4: libsvn0               #############################################
      4/4: subversion            #############################################


je teste immédiatement la ligne de commande que tu m'as conseillé:

Code : Tout sélectionner

[olivier@localhost ~]$ svn co https://svn.sourceforge.net/svnroot/aiptektablet aiptektablet
Erreur de validation du certificat du serveur pour 'https://svn.sourceforge.net:443' :
 - Le certificat n'est pas signé pas une autorité de confiance.
   Valider le certificat manuellement !
Informations du certificat :
 - nom d'hôte : *.sourceforge.net
 - valide de Dec  8 13:40:07 2005 GMT à Feb  7 13:40:07 2007 GMT
 - signataire : Equifax Secure Certificate Authority, Equifax, US
 - empreinte : 49:b8:cb:87:04:8c:49:39:45:83:dd:4c:cf:c7:54:57:b0:9e:84:5d
(R)ejet, acception (t)emporairement ou (p)ermanente ? t
svn: PROPFIND request failed on '/svnroot/aiptektablet'
svn: PROPFIND of '/svnroot/aiptektablet': Could not read status line: Secure connection truncated (https://svn.sourceforge.net)


ça plante parce que je n'accepte le certificat que temporairement. En l'acceptant de façon permanente, l'import des fichiers se passe bien qu'assez lentement (vitesse d'environ 33Ko/s). J'attends que tout soit téléchargé et je reviens voir ici pour la suite des opérations.

amicalement,
olivs
Administrateur
Administrateur
Messages : 2090
Inscription : 28 avr. 2004, 08:23
Localisation : Toulouse
Contact :

Message par olivs »

ça y est, tout est rapatrié. J'ai désormais un répertoire aiptektablet dans mon répertoire d'utilisateur. Il contient trois répertoires:
    -branches
    -tags
    -trunk
dans ce dernier, en particulier, figurent quatre répertoires:
    -gaiptek
    -homepage
    -linux_kernel_drivers
    -xserver_input_driver

Que suis-je censé faire maintenant?
KiBi
Messages : 901
Inscription : 27 déc. 2004, 00:57
Localisation : Brest, Dijon
Contact :

Message par KiBi »

Oui, j'suis désolé, j'aurais pu y penser au lieu de coller la commande sans lire le reste ni réfléchir 2 secondes. Le « trunk/ » est (couramment mais non nécessairement) la branche de développement, c'est-à-dire la dernière en date. Dans « tags/ » et « branches/ » se trouvent respectivement des numéros de version (1.0, 1.1, 2.0, etc.) et des branches de développement (1.0-toto, 1.0-ma-fonctionnalite-de-ouf).

Tu es censé avoir installé les entêtes (« headers ») correspondant à ton noyau, puis compiler quelques petites choses, dans les deux derniers répertoires que tu as cités. Je vérifie d'abord mes infos, et j'édite ensuite ce message.

Quant au débit depuis chez SF, il est réduit. C'est courant, SF est lent, quand il n'est pas tout simplement inaccessible...

Suite :
Concernant le module noyau, il suffit donc d'avoir les entêtes du noyau, de vérifier que l'on a bien un /usr/src/linux avec des choses dedans (<pub>Sous Debian le lien symbolique est fait directement de /usr/src/linux vers /usr/src/linux-ma-version-de-noyau-à-moi</pub>). Place-toi ensuite dans le répertoire « linux_kernel_drivers/2.6 » ; un « make » (en utilisateur) suivi d'un « make install » (en administrateur) devrait te permettre de compiler puis d'installer le module noyau.

J'attends de savoir si c'est OK chez toi avant de continuer.
olivs
Administrateur
Administrateur
Messages : 2090
Inscription : 28 avr. 2004, 08:23
Localisation : Toulouse
Contact :

Message par olivs »

voilà ce que j'obtiens au lancement du make:

Code : Tout sélectionner

[olivier@localhost 2.6]$ make
make -C /lib/modules/2.6.12-24mdk/build SUBDIRS=/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6 \
        EXTRA_VERSION= modules
make[1]: Entering directory `/usr/src/linux-2.6.12-24mdk'

  WARNING: Symbol version dump /usr/src/linux-2.6.12-24mdk/Module.symvers
           is missing; modules will have no dependencies and modversions.

  CC [M]  /home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.o
/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.c:113:29: error: linux/usb_input.h: Aucun fichier ou répertoire de ce type
/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.c:124:2: warning: #warning "locally supplied (untested) input_allocate_device"
/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.c: In function 'input_allocate_device':
/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.c:127: warning: implicit declaration of function 'kzalloc'
/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.c:127: warning: return makes pointer from integer without a cast
/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.c: At top level:
/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.c:1295: warning: initialization from incompatible pointer type
(...)
/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.c:2337: warning: initialization from incompatible pointer type
/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.c:2356: warning: initialization from incompatible pointer type
/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.c: In function 'aiptek_probe':
/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.c:2470: warning: assignment makes pointer from integer without a cast
/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.c:2582: warning: implicit declaration of function 'usb_to_input_id'
make[2]: *** [/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6/aiptek.o] Erreur 1
make[1]: *** [_module_/home/olivier/aiptektablet/trunk/linux_kernel_drivers/2.6] Erreur 2
make[1]: Leaving directory `/usr/src/linux-2.6.12-24mdk'
make: *** [default] Erreur 2


en revanche, je suis embêté: je ne sais pas si kernel-headers est installé!
si je fais un urpmi kernel-headers, il me répond:

Code : Tout sélectionner

[root@localhost 2.6]# urpmi kernel-headers
Tous les paquetages sont déjà installés
Les paquetages suivants ont été trouvés : glibc-devel


trouvant ce type de réponse étrange, j'ai ensuite embayé avec:

Code : Tout sélectionner

[root@localhost 2.6]# rpm -q kernel-headers
le paquetage kernel-headers n'est pas installé


bien, je pourrais utiliser le Mandrake Control Center pour utiliser les gestionnaires de paquetages graphiques, mais depuis une mise à jour récente, ils crashent... :evil:

bref, je ne sais pas si la compilation échoue en raison de la version SVN sur laquelle quelqu'un est en train de bosser, ou si c'est parce que mon système n'est pas paré des paquetages nécessaires. Je penche pour la seconde hypothèse, car je suppose que les gestionnaires de projet comme CVS ou SVN sont au point pour éviter ce genre de mésaventures...

your insight is welcome, Kibi!
KiBi
Messages : 901
Inscription : 27 déc. 2004, 00:57
Localisation : Brest, Dijon
Contact :

Message par KiBi »

Tu as peut-être une commande pour te donner les versions des paquets installés correspondant à un filtre donné, par exemple « *headers* » ? Tu as installé quelle(s) version(s) du noyau ? Tu tournes sur laquelle ? (uname -a)

Et qu'as-tu dans /usr/src ? (ls -l) Peut-être dans /usr/local/src s'il n'y a rien dans le premier répertoire.
olivierb
Administrateur
Administrateur
Messages : 106
Inscription : 11 mai 2004, 21:26
Localisation : Nord de la France
Contact :

Message par olivierb »

salut olivier

pour savoir quelle est la version de noyau installée tu peux le faire avec la commande suivante :
rpm -qa | grep kernel

tu auras ainsi la liste des packages contenant le mot kernel et le numéro de version. Par contre pour les headers sous mdk, il me semble que tu doives prendre le package kernel-source et non kernel-header (c'est plus pour les paquets debian ça).

normalement avec ça tu peux compiler le driver du noyau

ensuite il te faux les sources de xorg pour le driver côté X11

pour ubuntu , j'ai le lien suivant :
http://www.ubuntuforums.org/showthread.php?t=122735

cela peux peut être t'aider.

a+

olivierb
olivs
Administrateur
Administrateur
Messages : 2090
Inscription : 28 avr. 2004, 08:23
Localisation : Toulouse
Contact :

Message par olivs »

désolé pour mon silence, j'avais un sanglier sur le feu! :D

En réponse à olivierb:

Code : Tout sélectionner

[olivier@localhost ~]$ rpm -qa | grep kernel
kernel-2.6.12.12mdk-1-1mdk
kernel-source-2.6-2.6.12-22mdk
kernel-source-2.6.12.24mdk-1-1mdk
ati-kernel-2.6.12-12mdk-8.16.20-1mdk
kernel-2.6.12.24mdk-1-1mdk


En réponse à Kibi:

Code : Tout sélectionner

[olivier@localhost ~]$ uname -a
Linux localhost 2.6.12-24mdk #1 Mon Jul 17 15:00:15 MDT 2006 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux

et

Code : Tout sélectionner

[olivier@localhost src]$ ls -l
total 20
drwxr-xr-x   3 root root 4096 jui 23 14:50 ati-8.26.18-1.1.20060plf/
lrwxrwxrwx   1 root root   18 jui 22 10:16 linux -> linux-2.6.12-24mdk/
drwxr-xr-x   3 root root 4096 jui 19 22:37 linux-2.6.12-12mdk/
drwxr-xr-x  21 root root 4096 jui 19 22:18 linux-2.6.12-22mdk/
drwxr-xr-x  21 root root 4096 jui 23 14:51 linux-2.6.12-24mdk/
drwxr-xr-x   7 root root 4096 mai  2 23:55 RPM/


Les sources sont bien installées (je les installe toujours) et pas de trace d'un quelconque kernel-headers sur le DVD Mandriva 2006 version Powerpack. En revanche, je n'ai pas installé les sources de xorg. Où trouver celles correspondant à ma version de Mandriva, sachant que j'ai fait des updates et que la version de Xorg a changé entre celle du DVD et celle installée? A moins que cela n'ait pas bcp d'importance? Apparemment, est installé sur ma machine: 6.9.0 version 11.... mais la notation renvoyée par les Informations sur le Serveur X de KDE me paraît bizarre... Quelle autre façon de savoir quelle version de Xorg est installée (si ça fait avancer le pb, bien sûr)?

De plus, personne n'a commenté les erreurs obetnues lors de la tentative de compilation... pas d'avis sur le sujet?
KiBi
Messages : 901
Inscription : 27 déc. 2004, 00:57
Localisation : Brest, Dijon
Contact :

Message par KiBi »

J'attendais de voir ce que ça donnait au niveau des (entêtes|sources) de ton noyau. Il se trouve que j'ai un 2.6.12 sous la patte, je jette un oeil.

Mise à jour : Aucun problème de mon côté. Que te donne un « find /usr/src/linux -name usb_input.h » ? Si aucun résultat : « find /usr/src/linux -name '*usb*' » s'il te plaît.
olivierb
Administrateur
Administrateur
Messages : 106
Inscription : 11 mai 2004, 21:26
Localisation : Nord de la France
Contact :

Message par olivierb »

J'ai fait le test aussi sur ubuntu. j'ai également eu des pb comme toi mais après avoir installé le bon kernel-header je n'ai plus eu de problème.

Par défaut, il cherche les sources du noyau dans /lib/modules/2.6.12-24mdk/build

ce répertoire existe-t-il ?

sinon le premier message :

Code : Tout sélectionner

WARNING: Symbol version dump /usr/src/linux-2.6.12-24mdk/Module.symvers
           is missing; modules will have no dependencies and modversions.

concerne le fait qu'il ne trouve pas le fichier Module.symvers
sur ubuntu il se trouve sur le rep build du noyau (rep ci-dessus)

sur mdk, je ne peux pas t'aider plus.

essaie de chercher le fichier Module.symvers sur ton système ou dans les rpm pour savoir ce qui te manque.

sinon en désespoir de cause tu peux copier le aiptek.c dans les sources du noyau et compiler un noyau complet.

Pour ta question sur Xorg, les sources ne sont utiles que pour compiler le driver pour xorg et pas pour le driver du noyau. ce n'est donc pas la cause de l'erreur actuelle

a+

olivierb
olivs
Administrateur
Administrateur
Messages : 2090
Inscription : 28 avr. 2004, 08:23
Localisation : Toulouse
Contact :

Message par olivs »

KiBi a écrit :Mise à jour : Aucun problème de mon côté. Que te donne un « find /usr/src/linux -name usb_input.h » ? Si aucun résultat : « find /usr/src/linux -name '*usb*' » s'il te plaît.


ça démarre pas fort. Réponse ci-dessous:

Code : Tout sélectionner

[root@localhost olivier]# find /usr/src/linux -name usb_input.h
[root@localhost olivier]#


et pour la deuxième commande:

Code : Tout sélectionner

[root@localhost olivier]# find /usr/src/linux -name '*usb*'
[root@localhost olivier]#


bref ça trouve rien! pourtant:

Code : Tout sélectionner

[root@localhost drivers]# cd /usr/src/linux/drivers/usb/
[root@localhost usb]# ls -l
total 76
drwxr-xr-x  2 root root 4096 jui 22 10:15 atm/
drwxr-xr-x  2 root root 4096 jui 22 10:15 class/
drwxr-xr-x  2 root root 4096 jui 22 10:15 core/
drwxr-xr-x  2 root root 4096 jui 22 10:15 gadget/
drwxr-xr-x  2 root root 4096 jui 22 10:15 host/
drwxr-xr-x  2 root root 4096 jui 22 10:15 image/
drwxr-xr-x  2 root root 4096 jui 22 10:15 input/
-rw-r--r--  1 root root 4074 jun 17  2005 Kconfig
-rw-r--r--  1 root root 2121 jui 17 19:38 Makefile
drwxr-xr-x  3 root root 4096 jui 22 10:15 media/
drwxr-xr-x  3 root root 4096 jui 22 10:15 misc/
drwxr-xr-x  2 root root 4096 jui 22 10:15 mon/
drwxr-xr-x  2 root root 4096 jui 22 10:15 net/
-rw-r--r--  1 root root 2419 jun 17  2005 README
drwxr-xr-x  2 root root 4096 jui 22 10:15 serial/
drwxr-xr-x  2 root root 4096 jui 22 10:15 storage/
-rw-r--r--  1 root root 9370 jun 17  2005 usb-skeleton.c


avec en particulier dans /input:

Code : Tout sélectionner

[root@localhost input]# ls -l
total 484
-rw-r--r--  1 root root 12194 jui 17 19:38 acecad.c
-rw-r--r--  1 root root 70912 jun 17  2005 aiptek.c
-rw-r--r--  1 root root 27696 jun 17  2005 ati_remote.c
-rw-r--r--  1 root root  2288 jun 17  2005 fixp-arith.h
-rw-r--r--  1 root root 52336 jui 17 19:38 hid-core.c
-rw-r--r--  1 root root 26363 jun 17  2005 hid-debug.h
-rw-r--r--  1 root root 21225 jun 17  2005 hiddev.c
-rw-r--r--  1 root root  2800 jun 17  2005 hid-ff.c
-rw-r--r--  1 root root 15399 jui 17 19:38 hid.h
-rw-r--r--  1 root root 20222 jui 17 19:38 hid-input.c
-rw-r--r--  1 root root 13913 jun 17  2005 hid-lgff.c
-rw-r--r--  1 root root 12266 jun 17  2005 hid-tmff.c
-rw-r--r--  1 root root  5882 jun 17  2005 kbtab.c
-rw-r--r--  1 root root  8593 jui 17 19:38 Kconfig
-rw-r--r--  1 root root  1054 jui 17 19:38 Makefile
-rw-r--r--  1 root root 13203 jun 17  2005 mtouchusb.c
-rw-r--r--  1 root root  8394 jun 17  2005 pid.c
-rw-r--r--  1 root root  1813 jun 17  2005 pid.h
-rw-r--r--  1 root root 15581 jun 17  2005 powermate.c
-rw-r--r--  1 root root  8439 jun 17  2005 touchkitusb.c
-rw-r--r--  1 root root 10254 jun 17  2005 usbkbd.c
-rw-r--r--  1 root root  6874 jui 17 19:38 usbmouse.c
-rw-r--r--  1 root root 29808 jun 17  2005 wacom.c
-rw-r--r--  1 root root  9961 jun 17  2005 xpad.c
-rw-r--r--  1 root root 17574 jui 17 19:38 xpad-core.c
-rw-r--r--  1 root root  5646 jui 17 19:38 xpad.h
-rw-r--r--  1 root root  8327 jui 17 19:38 xpad-mouse.c


j'ai donc bien de l'usb qui traîne dans mes sources...
olivs
Administrateur
Administrateur
Messages : 2090
Inscription : 28 avr. 2004, 08:23
Localisation : Toulouse
Contact :

Message par olivs »

olivierb a écrit :Par défaut, il cherche les sources du noyau dans /lib/modules/2.6.12-24mdk/build
ce répertoire existe-t-il ?


oui il existe, il s'agit du même répertoire que celui pointé par le lien symbolique /usr/src/linux

olivierb a écrit :sinon le premier message :

Code : Tout sélectionner

WARNING: Symbol version dump /usr/src/linux-2.6.12-24mdk/Module.symvers
           is missing; modules will have no dependencies and modversions.

concerne le fait qu'il ne trouve pas le fichier Module.symvers
sur ubuntu il se trouve sur le rep build du noyau (rep ci-dessus)

sur mdk, je ne peux pas t'aider plus.

essaie de chercher le fichier Module.symvers sur ton système ou dans les rpm pour savoir ce qui te manque.


dommage... j'ai fait une recherche, apparemment il n'existe tout simplement pas, cela expliquerait peut-être le problème... J'ai trouvé ce fil de discussion où le pb est abondamment commenté, mais j'y comprends rien et la conclusion, s'il y en a une, m'échappe: http://qa.mandriva.com/show_bug.cgi?id=17108

j'ai poursuivi lme recherches sur Google, et ai trouvé ça: http://www.valhalla-fr.eu/index.php/2006/04/12/installer-kclamav-sous-linux/ (voir la troisième partie) mais je ne comprends pas ce qu'il s'agit de faire...
tarlack
Messages : 80
Inscription : 02 déc. 2005, 22:48
Localisation : Toulouse

Message par tarlack »

j'ai lu vite faite le 1er lien (en fait je me suis arrete des que j'ai trouve une reponse a la question qui est : a quoi sert ce fichier module.symvers ?), et j'ai trouve ca :
Module.symvers is needed only when module versioning
(CONFIG_MODVERSIONS) is enabled and it is disabled in mdk kernel. So it is just
a warning.


je traduis pour pas me faire taxer d'anglicissite aigu :D
Module.symvers est necessaire seulement quand la gestion des versions des modules (CONFIG_MODVERSIONS) est activee et elle est desactivee dans le kernel de mandrake. Donc ce n'est qu'un avertissement,


donc en theorie tu peux compiler ton module sans probleme de ce point de vue la....

j'ai aussi cherche "usb_input.h mandrake", et je suis tombe sur un commit (c'est pas agreable a lire je vous le dis :D)
move <linux/usb_input.h> to <linux/usb/input.h> and remove some redundant includes.

ou encore
deplace <linux/usb_input.h> vers <linux/usb/input.h> et enleve quelques inclusions cycliques


ce que tu peux faire, c'est voir si ce fichier usb/input.h existe et editer aiptek.c pour qu'il inclue ce fichier plutot que usb_input.h (faire un lien de input.h vers usb_input.h ne marcherait pas car ils ne vont pas dans les memes dossiers et donc les chemins qu'eux meme contiennent seraient faux). donc en gros dans ce fichier, remplacer

#include <usb_input.h>
par
#include <usb/input.h>

avec un peu de bol ca pourrait marcher

edit :
chez moi (ubuntu 6.06) j'ai u n fichier .../linux/usb.h , mais pas de .../linux/input/usb.h :S
bizarre ca, tres bizarre. mais bon comme c'est debian c'est peut etre normal hein :lol:
AMD 2500+ / 1.5Go DDR-RAM / ATI radeon 9700 Pro - Ubuntu 6.04 alpha / Gimp 2.2.8 / Blender 2.41 version povray / megapov 1.2.1
KiBi
Messages : 901
Inscription : 27 déc. 2004, 00:57
Localisation : Brest, Dijon
Contact :

Message par KiBi »

(Erreur : Ubuntu n'est pas Debian et respectivement Debian n'est pas Ubuntu.)

Au passage, d'après ce que je viens d'apercevoir en regardant rapidement, sur un Ubuntu 6.06, il s'agit d'un noyau 2.6.15, or vu les évolutions entre deux versions successives du noyau, c'est normal que les fichiers évoluent.
Répondre