Adaptation ID et pilote USB existant

Salut,
Je possède un adaptateur tnt usb qui se trouve ne pas être supporté “directement” sur un noyau 2.6.32. Elle est détectée comme un clavier…

lsusb Bus 001 Device 003: ID 0ccd:0097 TerraTec Electronic GmbH Cinergy T RC MKII

nano /var/log/message May 15 12:20:38 jimini kernel: [ 3378.430385] generic-usb 0003:0CCD:0097.0002: input,hidraw0: USB HID v1.01 Keyboard [NEWMI USB2.0 DVB-T TV Stick] on usb-0000:00:0c.2-1/input1

J’ai ouvert la clef et je me suis aperçu que le chipset était un af9015, celui ci possède déja un driver dans le 2.6.32 et un modèle de clef Terratec presque identique a lui existe avec aussi son driver mais bien sur les IDs sont diffèrent

nano drivers/media/dvb/dvb-usb/dvb-usb-ids.h ... #define USB_VID_TERRATEC 0x0ccd ... #define USB_PID_TERRATEC_CINERGY_T_USB_XE 0x0055 #define USB_PID_TERRATEC_CINERGY_T_USB_XE_REV2 0x0069 ... #define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY 0x005a #define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY_2 0x0081 #define USB_PID_TERRATEC_CINERGY_HT_USB_XE 0x0058 #define USB_PID_TERRATEC_CINERGY_HT_EXPRESS 0x0060 #define USB_PID_TERRATEC_CINERGY_T_EXPRESS 0x0062 #define USB_PID_TERRATEC_CINERGY_T_XXS 0x0078 #define USB_PID_TERRATEC_CINERGY_T_XXS_2 0x00ab #define USB_PID_TERRATEC_T3 0x10a0 #define USB_PID_TERRATEC_T5 0x10a1 ...

Il semblerai que le module dvb-usb-af9015 (comparable à la T_USB_XE_REV2 : 0x0069) puisse faire fonctionner cette carte mais d’ID 0x0097 (0ccd:0097)

J’ai greppé la constante USB_PID_TERRATEC_CINERGY_T_USB_XE dans les sources du noyau, et j’ai trouvé des occurrences dans 2 fichiers dvb-usb-ids.h et af9015.c

nano driver/media/dvb/dvb-usb/af9015.c ... {USB_DEVICE(USB_VID_VISIONPLUS, USB_PID_AZUREWAVE_AD_TU700)}, {USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_USB_XE_REV2)}, {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_PC160_2T)}, ...
Donc j’ai bien envis :

1/ d’ajouter mon ID dans drivers/media/dvb/dvb-usb/dvb-usb-ids.h par exemple

... #define USB_PID_TERRATEC_CINERGY_T_USB_RC_MKII 0x0097 ...

2/ d’ajouter la prise en charge dans driver/media/dvb/dvb-usb/af9015.c

... {USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_USB_RC_MKII)}, ...
3/ j’active le module af9015 dans le make menuconfig

4/ Je recompile

5/ Et zou…je vois ce que ca donne…

J’aurais peut être des problèmes de firmware, je précise aussi que ma machine n’est pas une bête (P4-2.4-512) et les compiles sont un peu long, d’ou mes question avant de me lancer

Bref :

  • Est ce que je dois penser à autre chose ?

  • J’ai cherché aussi partout dans les sources de mon noyau concernant la chaine renvoyée par lsusb “TerraTec Electronic GmbH Cinergy T RC MKII”.
    Je connais pas bien le protocole USB mais est ce possible que cette chaine soit envoyée par le périphérique lui même ? d’ou vient cette chaine ?
    Comme la clef est detecté comme clavier (HID) je me demande si je n’aurais pas de conflit d’ID si celui ci est déclaré dans un autre fichier mais je ne trouve rien ???

Merci d’avance pour le coup de main

Molux

Salut,

Je me suis débrouillé :
viewtopic.php?f=3&t=27774

Molux

La méthode que tu donnes marche très bien, je l’ai appliqué à plusieurs reprises pour des webcams par exemple. Si ça marche il te faut prévenir le gars qui gère le module afin qu’il rajoute la signature de la clef TNT. Penses-y.

Salut Franb,
J’ai communiqué l’info
Merci pour le conseil
Molux