Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/10/2013, à 08:43

elprincipe

developpement d'un pilote linux pour périphérique réseau

salut à tous,
je me suis mis à l'idée de developper un  pilote linux pour périphérique réseau. il s'agit d'une box internet fonctionnant en usb et ethernet. Le FAI ne fournit pas pilote linux pour ses périphriques pour un fonctionnement en usb (par contre il en fournit pour windows et mac). ce qui fait que jusqu'a présent je ne fonctionne qu'en Ethernet; pas que cela me déplaisse mais se coltiner un rj45 tout le temps même en déplacement c'est pas très cool. Il s'agit donc de developper un pilote usb pour un périphérique réseau.
Depuis quelques mois je me suis mis à l'étude à la programmation système sous linux ,  la conception et au developpement du système linux avec des ouvrages tel que Understanding linux kernel, Conception de système d'exploitation cas de linux. Actuellement je me lance dans la lecture de Linux Device Driver et linux network internals.
Le périphérique en question permet de se connecter à un réseau à WMAN (Wireless MAN) utilisant la technologie McWill/SCDMA (un concurrent du Wimax) du chinois xinwei.  j'aimerais déjà me faire un algorithme, avoir un aperçu de fonctionnement independamment de toute d'implémentation.

Donc voici la démarche: lorsque l'utilisateur connecte sa box en usb à sa machine, celle-ci est détecté et le pilote est chargé par le SE en mémoire. ensuite on signale au SE d'activer la couche ethernet (pour dire au SE que le mise en trame doit se faire par ethernet et non par PPP par exemple sinon comment es ce qu'il le saura) un peu comme si j'émulais une connexion ethernet mais mais qui cette fois ne passe pas par l'interface traditionnelle mais par ma box. par la suite dire au système que les trames envoyé depuis les application utilisateurs doivent être dirigé vers notre pilote et donc vers notre Box. Par la suite le SE lance une requête DHCP sur les serveurs du FAI pour obtenir une IP et  les paramètres de configurations notre connexion réseau. De plus j'aimerais intégrer tous ça à un gestionnaire de connexion comme network manager.
Voila donc un premier algo auquel que j'ai concocté.
Pour la détection du branchement de la box je pense aux IRQ. pour le chargement du pilote par le SE je crois que la lecture de LDD me permettra de savoir comment faire. pour l'activation de la couche ethernet je sais pas trop comment ça se fait; idem  pour dire au système que les trames envoyé depuis les application utilisateurs doivent être dirigé vers notre pilote et donc vers notre Box.

je ne sais pas ce que tout ça vaut ni si la démarche est bonne. Si quelqu'un a déjà fait quelque chose de semblabe et qu'il me donner quelques tuyaux et conseils je suis preneur.

cordialement

Hors ligne

#2 Le 18/10/2013, à 12:07

telliam

Re : developpement d'un pilote linux pour périphérique réseau

Dans les grandes lignes, il faut que tu déclares/implémentes un driver "client" usb, qui va te permettre de dialoguer avec ta box, ce driver devra s'enregistrer comme device ethernet.
Si tu implémentes tout correctement, tu n'as pas a te soucier de la partie DHCP (ou tout autre outils Ethernet/IP), tu utiliseras les outils existants en spécifiant que tu vx les utiliser sur le nouveau device que tu viens de créer.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#3 Le 18/10/2013, à 15:57

cromanion

Re : developpement d'un pilote linux pour périphérique réseau

As-tu des connaissances de la norme OSI ?

Hors ligne

#4 Le 28/10/2013, à 17:47

elprincipe

Re : developpement d'un pilote linux pour périphérique réseau

salut et merci pour vos réactions: j'avance dans la lecture de LDD et je commence à mieux me faire un dessin de ce qu'il me faut pour implémenter mon pilote
@cromanion: pour osi sous-entendu "open systems interconnection" il y'a pas de souci, à moins que tu ne parles d'autre chose.
mais j'ai quand même un soucis au branchement de ma box usb comment le systems saura t-il qu'il faut charger mon pilote; je demande ceci parceque j'ai lu çi et là que lorsqu'on branche un périphérique usb alors c'est le pilote générique usb qui le prend en charge, normal de moins de vue car le système ne sait pas à priori quel périphérique vient d'être branché. la question est donc comment dire au système de pas charger le pilote usb générique mais plutot le mien et comment le système pourra t-il détecter que c'est mon périphérique qui vient d'être branché et pas un autre.

merci.

Hors ligne