Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
SuperCedGrenoble Membre
Inscrit le: 15 Fév 2003 Messages: 38
|
Posté le: 21-Fév-03 12:30:39 Sujet du message: Code source du Alcatel SpeedTouch USB ou d'un autre... |
|
|
Bonjour, je vais bientot developper un driver pour un modem adsl usb, je recherche un maximum d'exemples, donc si vous vez des codes sources pour les modem usb adsl, ca m'interresse enormement. Les code sources pour freeBDS ou Linux ne m'interressent pas.
J'ai deja un exemple qui est l'exemple AppleCDCDriver sur le site Apple, mais c'est tout.
Merci a tous! |
|
Revenir en haut |
|
 |
fredtravers Grand clavardeur

Inscrit le: 07 Mar 2001 Messages: 14488
|
Posté le: 21-Fév-03 13:07:56 Sujet du message: |
|
|
Bonjour
Il sont en open ???!!??
demandez à thomson-alcatel ?
 |
|
Revenir en haut |
|
 |
Anthony Administrateur

Inscrit le: 07 Mar 2001 Messages: 7354 Localisation: Paris Nancy
|
|
Revenir en haut |
|
 |
Jaypee Connaisseur

Inscrit le: 20 Fév 2002 Messages: 329 Localisation: Nice
|
Posté le: 21-Fév-03 17:03:39 Sujet du message: Source de driver de Modem USB |
|
|
Pour m'être intéressé à la question, sans avoir réellement trempé dans ce code précis du modem Alcatel (j' ai néanmoins presque réussi à faire marcher un driver adapté d'un exemple donné par Apple pour l' Adaptateur USB Série de Belkin, le FU5103) je peux te recommander ceci :
- Etre à l'aise avec C++.
- Trouver les exemples fournis par Apple. Sur le site developpeur, dans le SDK USB, dans les examples des outils Développeurs (kernel et IOKit) Il y a un squelette de driver de modem USB. C'est disparate, parfois en C, parfois en C++.
- Trouver les deux valeurs idVendor et idProduct du mdoem USB.
- Trouver le(s) firmware(s) du modem.
- Trouver un deuxième Mac identique (OS, hardware) pour débugger : Puisqu'il s'agit d'une extension du kernel, mettre un point d'arrêt dans un driver c'est un peu arrêter le kernel et le reste du Mac par la même occasion. Le débuggage à distance via le réseau selon la méthode décrite dans la doc est plus efficace que le remplissage du system.log.
- Trouver le code pour le même modem en FreeBSD (plutôt que Linux) pour les numéros de fonction spécifique.
- Lire, lire, lire, lire ... relire la doc. Il existe une nouvelle doc sur les kernel extentions.
Dans ma tentative de driver Belkin, j'ai fait le gros-oeuvre, j'ai utilisé le system.log, mais il me faudrait plus de confort et de finesse de débuggage pour aller au bout. La seule chose que j'ai réussi à faire c'est AT&V et récupérer les registre d'un modem RTC. Au delà de çà, çà coince.
En gros, on construit en mémoire un modèle de l'état du hardware sous forme d'une machine à états finis, et la difficulté est de maintenir cette représentation synchronisée avec le hardware réel. Le driver générique dont on dérive le driver que l'on construit s'occupe déjà de générer des interruptions logicielles toutes les n millisecondes pour "ralentir" le débit des événements à traiter pour mettre à jour la machine. Les interruptions hardware généralement servent à transmettre dans un pipe spécifique les registres d'états du vrai hardware. Il faut savoir interpréter ces registres bit par bit. C'est là qu'e les sources d'un driver existant peut aussi aider.
Au passage, il faut signaler que pour éviter le kernel panic lorsqu'on débranche le modem, il faut 5 lignes de codes dans la fonction "MonDriver::message" qui reçoit un signal spécifique, auquel il faut réagir en fermant le port de communication. Apparememnt, 5 lignes de code qui seraient utiles à Alcatel. Celà affiche un beau dialogue signalant la fin du service sur le port en question.
Bon courage,
Jean-Pierre, qui a eu du temps à perdre en janvier avec une cheville plâtrée. |
|
Revenir en haut |
|
 |
SuperCedGrenoble Membre
Inscrit le: 15 Fév 2003 Messages: 38
|
Posté le: 21-Fév-03 20:38:59 Sujet du message: |
|
|
Je me suis pas mal documente deja, t'inquiete pas.
Dans mon cas, je ne gere pas directement la DMA, je ne fais que des read/write dans un bulk pipe usb.
Je veux juste en savoir un peu plus a trouver des codes sources pour voir comment ils ont fait. |
|
Revenir en haut |
|
 |
Anthony Administrateur

Inscrit le: 07 Mar 2001 Messages: 7354 Localisation: Paris Nancy
|
|
Revenir en haut |
|
 |
fredtravers Grand clavardeur

Inscrit le: 07 Mar 2001 Messages: 14488
|
|
Revenir en haut |
|
 |
Jaypee Connaisseur

Inscrit le: 20 Fév 2002 Messages: 329 Localisation: Nice
|
Posté le: 22-Fév-03 12:23:29 Sujet du message: Les exemples des outils developpeurs + USB SDK |
|
|
Sur ton disque tu dois avoir :
/Developer/Examples/IOKit/usb/Deva Example
/Developer/Examples/IOKit/usb/EZloader
/Developer/Examples/Kernel/IOkit/usb/AnchorUSB
Le driver Alcatel existe sous Linux et freeBSD :
[url] http://www.xsproject.org/speedtouch/[/url]
Ce sont des exemples de drivers dans lesquel il faut charger un firmware au format d'Intel (???!)
Il te faudra sans doute aussi utiliser le driver PPPoE d'Apple pour attacher une instance ce driver au port de communication du device USB.
Et si tout çà marche, y'a pu qu' à remplir les cases (d' un grand switch) dans les méthodes rappelées (call out/call back) par le driver après une interruption, après une E/S complète, après un event reçu, avant d'émettre un event ... Le framework IOkit est sacrément bien foutu pour çà ...
En dehors de te fournir le driver tout fait, je ne vois guère ce qu'on peut t'apporter comme aide supplémentaire ...
Note : Se casser la cheville est facultatif, mais çà aide à se lancer dans ce genre de projet, finalisable donc en 45 jours ...
Re-Bon courage !
Jean-Pierre |
|
Revenir en haut |
|
 |
Anthony Administrateur

Inscrit le: 07 Mar 2001 Messages: 7354 Localisation: Paris Nancy
|
|
Revenir en haut |
|
 |
|