Salut à tous,
Je développe un petit driver USB sous Linux pour un circuit que j’ai réalisé autour d’un microcontrolleur PIC 18F4455.
Etant donné que mon problème semble venir du driver Linux, je pose mon problème dans ce forum et non dans le formum matos
Bon je vous explique le tout.
Numéro d’ID de ma carte.
Je n’ai pas les sous pour déposer un ID USB et que je ne compte pas vendre mon prototype, j’ai pris un ID facile à mémoriser et non utilisé. J’ai donc choisi:
Vendor: ff07 (comme Final Fantasy 7 )
Device: 0010 (comme… version 1.0)
Mon circuit semble marcher correctement, du moins en ce qui concerne la détection par l’ordinateur, car lorsque je le branche et que je fais un lsusb, j’obtiens:
Bus 001 Device 010: ID ff07 0010
Mon circuit passe successivement les états: ATTACHED_STATE, ADR_PENDING_STATE, ADDRESS_STATE, CONFIGURED_STATE. Donc ça semble marcher.
Pour le driver j’ai utilisé comme base usb-skeleton.c, fourni avec les sources du kernel.
J’ai juste modifié quelques détails, mais surtout les constantes VID et PID. Pour l’instant je ne m’attaque pas à la suite, je veux que mon driver détecte la connexion du device.
Je compile mon driver en suivant les instructions d’ICI.
Tout se passe bien aucune erreur à la création du module.
Je charge mon driver avec un insmod mondriver.ko. Ca marche, je le vois se charger quand je fais un dmesg.
Et enfin, normalement quand je branche mon device, la fonction probe devrait s’exécuter (d’après ce que j’ai compris) car l’USB core détecte que le driver correspond au device via les IDs (voir pages ~350 du PDF).
Seulement non, il semble ne pas se charger. Pour en être sûr j’ai mis un petit printk dans la fonction probe, et jamais il n’est lu (le texte du printk n’apparaît pas dans dmesg).
Je précise que c’est mon premier driver 2.6. J’oublie peut être quelque chose ou il y a quelque chose que je ne comprends pas.
Si il y des pros de l’USB et des drivers Linux qui peuvent m’aider ou orienter mes recherches, ça me serait bien utile car je bloque un peu là
Je vous remercie, bye!