Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1207 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs

  [usb.h] Comment recompiler mon usb.h en libusb (kernel 2.6.9) ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[usb.h] Comment recompiler mon usb.h en libusb (kernel 2.6.9) ?

n°615208
allawos
Posté le 04-01-2005 à 16:01:26  profilanswer
 

Bonjour à tous et merci pour ce forum que je découvre avec joie. J'ai effectué une recherche mais je n'ai pas trouvé ma réponse.  Voici mon problème, si certains peuvent m'aider, merci d'avance :
 
Je voudrais programmer un driver de cameras USB. Le truc, c'est que ma machine (au boulot) possède 2 versions de kernels : la 2.4.27 et la 2.6.9 ... et qu'il faut que je code pour le kernel 2.6.9.
 
J'avais dans un premier temps utilisé le fichier usb.h contenu dans /usr/include/ et la librairie libusb contenue dans
/usr/lib/ . Je n'avais pas de problème et je pouvais utiliser ces différentes fonctions :
usb_open(...);
usb_close(...);
usb_bulk_write(...);
usb_bulk_read(...);
usb_control_msg(...);
usb_set_configuration(...);
usb_claim_interface(...);
usb_release_interface(...);
...
usb_init(...);
usb_set_debug(...);
usb_find_busses(...);
usb_find_devices(...);
usb_device(...);
usb_bet_busses(...);
 
 
... mais je réalise que cette librairie est limitée, et vu les dates d'instal, je pense qu'elle correspond au kernel 2.4.27.
 
 
J'ai alors réalisé que dans /usersdel/kernel/linux-2.6.9/inclue/linux/, j'avais aussi un fichier usb.h mais qui lui correspond bien à mon nouveau noyau (2.6.9) et permet des fonctions plus interressantes :
usb_init_urb(...);
usb_submit_urb(...);
usb_unlink_urb(...);
 
Le souci, c'est que j'arrive bien à compiler en incluant ce usb.h dans mes procédures mais l'édition de lien ne marche pas ... car je ne trouve pas la librairie (libusb) sur laquelle pointer ...
 
Savez-vous où elle se trouve ou comment la générer (à partir uniquement du .h , est-ce possible ? ... ou y'a-t-il un moyen ?).
 
Voila voila, j'espère que certains pourront m'aider dans ma recherche. Merci d'avance à tous !!!!

mood
Publicité
Posté le 04-01-2005 à 16:01:26  profilanswer
 

n°615263
western
AJMM
Posté le 04-01-2005 à 16:53:01  profilanswer
 

allawos a écrit :

Bonjour à tous et merci pour ce forum que je découvre avec joie. J'ai effectué une recherche mais je n'ai pas trouvé ma réponse.  Voici mon problème, si certains peuvent m'aider, merci d'avance :
 
Je voudrais programmer un driver de cameras USB. Le truc, c'est que ma machine (au boulot) possède 2 versions de kernels : la 2.4.27 et la 2.6.9 ... et qu'il faut que je code pour le kernel 2.6.9.
 
J'avais dans un premier temps utilisé le fichier usb.h contenu dans /usr/include/ et la librairie libusb contenue dans
/usr/lib/ . Je n'avais pas de problème et je pouvais utiliser ces différentes fonctions :
usb_open(...);
usb_close(...);
usb_bulk_write(...);
usb_bulk_read(...);
usb_control_msg(...);
usb_set_configuration(...);
usb_claim_interface(...);
usb_release_interface(...);
...
usb_init(...);
usb_set_debug(...);
usb_find_busses(...);
usb_find_devices(...);
usb_device(...);
usb_bet_busses(...);
 
 
... mais je réalise que cette librairie est limitée, et vu les dates d'instal, je pense qu'elle correspond au kernel 2.4.27.
 
 
J'ai alors réalisé que dans /usersdel/kernel/linux-2.6.9/inclue/linux/, j'avais aussi un fichier usb.h mais qui lui correspond bien à mon nouveau noyau (2.6.9) et permet des fonctions plus interressantes :
usb_init_urb(...);
usb_submit_urb(...);
usb_unlink_urb(...);
 
Le souci, c'est que j'arrive bien à compiler en incluant ce usb.h dans mes procédures mais l'édition de lien ne marche pas ... car je ne trouve pas la librairie (libusb) sur laquelle pointer ...
 
Savez-vous où elle se trouve ou comment la générer (à partir uniquement du .h , est-ce possible ? ... ou y'a-t-il un moyen ?).
 
Voila voila, j'espère que certains pourront m'aider dans ma recherche. Merci d'avance à tous !!!!


Salut,
la libusb est indépendant de la version du noyau (le header /usr/include/usb.h et la library libusb.so/libusb.a)
le fichier contenu dans le répertoire linux-2.6.9/include/linux correspond aux "besoins" du noyau... i.e. si tu dois développé un driver, tu dois t'appuyer sur ces fichiers. Les différents fonctions définies dans ces fichiers sont implémentés dans les  fichiers du répertoire linux-2.6.9/driver/usb (regard le contenu du fichier usb.c) qui sont soit intégrés au noyau, soit compilés en modules à la compilation du noyau, i.e. tu n'as pas besoin d'une library pour écrire ton driver de la caméra USB, tu dois juste écrire le bon .c, le compiler avec les bonnes options (cf une doc sur l'écriture des drivers) et de charger le .o créé avec insmod

n°615379
allawos
Posté le 04-01-2005 à 18:25:49  profilanswer
 

Salut et merci pour ta réponse !
 
Bon en fait, je cherche à faire un driver mais pas dans le sens module qui se lance seul et tout et tout. Pour l'instant, je veux juste faire une procédure de tests unitaires des différentes fonctions de la caméra ...  
 
J'ai donc cherché usb.c dans (/usersdel/kernel/linux-2.6.9)/drivers/usb/ et effectivement, il y a différents fichiers .c (core/usb.c, core/urb.c, storage/usb.c, ...) qui définissent les fonctions que je veux utiliser -> décrites dans (/usersdel/kernel/linux-2.6.9)/include/linux/usb.h .
 
Le truc, c'est que je crois savoir que sur ce nouveau noyau (2.6.9), le module usb est intégré, ce n'est plus un module ... j'en déduis donc qu'il faut que lie avec les .o correspondants aux .c trouvés.
 
D'ou mon problème, si je suis toujours sur la bonne voie ?? , comment savoir à quels .o lier ? Dois-je rechercher chacune de mes fonctions et ajouter dans mon makefile le .o correspondant ? N'y a-t-il pas un .o récapitulatif (je vois que dans ()/drivers/usb/ il y a un built-in.o ... ne serait-ce pas ce .o que je cherche ?)
 
Merci en tous cas, ca fait un petit moment que je blocais dans le vent, je commence à voir le bout ... enfin, le bout du linkage ... après, faudra coder !!!

n°615658
western
AJMM
Posté le 05-01-2005 à 09:09:30  profilanswer
 

allawos a écrit :


Salut et merci pour ta réponse !


Y a pas de quoi...

allawos a écrit :


Bon en fait, je cherche à faire un driver mais pas dans le sens module  


si je comprends bien, tu veux faire un "driver" qui n'est pas un module (dont pas intégré au noyau), par conséquence, tu veux faire une application

allawos a écrit :


qui se lance seul et tout et tout.  


cela confirme: tu veux faire une appli

allawos a écrit :


Pour l'instant, je veux juste faire une procédure de tests unitaires des différentes fonctions de la caméra...
 
J'ai donc cherché usb.c dans (/usersdel/kernel/linux-2.6.9)/drivers/usb/ et effectivement, il y a différents fichiers .c (core/usb.c, core/urb.c, storage/usb.c, ...) qui définissent les fonctions que je veux utiliser -> décrites dans (/usersdel/kernel/linux-2.6.9)/include/linux/usb.h .
 
Le truc, c'est que je crois savoir que sur ce nouveau noyau (2.6.9), le module usb est intégré, ce n'est plus un module ... j'en déduis donc qu'il faut que lie avec les .o correspondants aux .c trouvés.


effectivement, de base, le driver USB est "en dur" dans le noyau mais rien ne t'empeche de recompiler le noyau en choississant USB en modules...

allawos a écrit :


D'ou mon problème, si je suis toujours sur la bonne voie ?? , comment savoir à quels .o lier ? Dois-je rechercher chacune de mes fonctions et ajouter dans mon makefile le .o correspondant ? N'y a-t-il pas un .o récapitulatif (je vois que dans ()/drivers/usb/ il y a un built-in.o ... ne serait-ce pas ce .o que je cherche ?)


à la compilation du noyau, les symboles sont exportés dans System.map (/boot/System.map) mais comment linker... désolé j'ai trou de mémoire

allawos a écrit :


Merci en tous cas, ca fait un petit moment que je blocais dans le vent, je commence à voir le bout ... enfin, le bout du linkage ... après, faudra coder !!!


Bon courage

n°615705
allawos
Posté le 05-01-2005 à 10:48:00  profilanswer
 

OK OK ... un grand merci à toi Western !!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs

  [usb.h] Comment recompiler mon usb.h en libusb (kernel 2.6.9) ?

 

Sujets relatifs
recompiler PHP pour ajouter un module. PHPize cafouilleMessage du kernel apres utilisation du graveur dvd
Mdk 10.1 et kernel 2.4.x.xS-ATA sous Debian Sid Kernel 2.6.8 : DMA Timeout !
Pas d'affichage lors du loading de ma debian avec kernel 2.6.9Problème : Kde ne trouve pas le kernel source
Recompilage de kernel => tout en vracnforce2 + kernel 2.6
[debian] alsa + kernel 2.9.X[NOYAU]Ok, booting the kernel et mon clavier clignote !
Plus de sujets relatifs à : [usb.h] Comment recompiler mon usb.h en libusb (kernel 2.6.9) ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR