Pourquoi doit-on compiler son driver? [Expliqué] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 26-12-2006 à 21:16:05
Ca par contre c'est laid :
homer:~/bcm5700-8.2.18/src# make
make -C SUBDIRS=/root/bcm5700-8.2.18/src modules
Marsh Posté le 26-12-2006 à 21:16:59
Sinon le driver n'est pas inclus directement dans ta distrib ?
Marsh Posté le 26-12-2006 à 21:25:53
non, le driver n'est pas inclu dans le noyau(2.6.18).
Qu'est ce qu'il devrait y avoir comme répertoire dans SUBDIRS à la place?
Marsh Posté le 26-12-2006 à 21:49:19
Tu es loggués en root c'est ca que j'ai voulu faire remarquer.
C'est quoi ta distribution ?
Marsh Posté le 26-12-2006 à 23:30:34
Tout d'abord merci pour tes réponses.
Je ne suis pas dans ma session graphique habituelle et je n'utilise pas la session root comme session de tous les jours. Cependant, vu que je dois faire une tâche nécessitant des droits systèmes,(ajout du driver compilé dans /lib/modules/...etc...), je suis bien obligé d'opérer en tant que root..
Ma distribution c'est Debian Sarge.
Sinon pour mon problème, j'ai trouvé, il me manquait des sources (paquets kernel-headers + kernel-source correspondants à mon noyau)
Ca me paraît une abomination maintenant que j'ai compris le processus de compilation et tout et tout...
Sinon je ne sais toujours pas pourquoi on ne trouve que des sources de drivers sur internet et jamais de version pré-compilé(exception faite des drivers propriétaires naturellement ).
Je ne suis pas en train de dire que ce serait mieux bien au contraire mais je me mets à la place du novice qui n'a jamais entendu parler de compilation(je reconnais que j'éxagère un peu car linux et novice généralement ça fait pas bon ménage) et qui veut quelque chose de fonctionnel et de rapide à mettre en oeuvre.
"Mais c'est pas long de compiler un driver, pis en plus c'est adapté à son système?" me direz-vous; maintenant que je l'ai fait, je me rends compte que c'est clair que c'est pas spécialement long certes, sauf kan on sé pa comment ki fo faire
j'attends vos réactions
Marsh Posté le 26-12-2006 à 23:55:31
kryzantem a écrit : Tout d'abord merci pour tes réponses. |
Pour un novice tu n'a pas choisi la meilleur distrib, tu ne t'es pas bien renseigner avant de choisir. Et si on ne trouve pas de driver précompilé c'est parcqu'il faudrait en faire un pour chaque version de noyau, et plus généralement les dévéloppeurs fournissent les sources et c'est aux dévéloppeurs de la distrib de fournir les paquets précompiler pour leur distrib.
Marsh Posté le 26-12-2006 à 23:56:34
Pour le Root renseigne toi sur l'utilisation de su (et j'insiste parcque ce logguer dans une session graphique comme root c'est le mal).
Marsh Posté le 27-12-2006 à 08:43:31
ReplyMarsh Posté le 27-12-2006 à 10:03:48
Sinon une solution, au moins d'attente, peut être de passer par ndiswrapper, si ça marche.
Ce n'est pas très "propre", mais ça permet de patienter le temps de compiler le vrai driver.
Chez moi je l'utilise pour une carte Wifi linksys qui n'est pas supportée, et ça marche nickel en 24h/24.
Marsh Posté le 27-12-2006 à 11:57:13
alien cons piracy>
kryzantem a écrit : Tout d'abord merci pour tes réponses. |
Je passe déjà par su.
Pour info, c'est pas parce que j'ai eu quelques problèmes pour compiler que je suis novice.
En effet, Debian fait bien les choses et on ne doit pas souvent recompiler ses propres pilotes car la plupart sont inclus sous formes de modules du noyau pré-compilé.
M300A a écrit : heuu bcm5700 c'est pas remplacé par tg3 |
C'est fort possible; maintenant que t'en parles je vois dans la liste de mes modules qu'il y en a un qui s'appelle tg3, si ça se trouve le pilote était présent dans le noyau mais n'a pas été chargé automatiquement...?? Je n'avais rien à compiler, c'est juste que le pilote n'était pas charger automatiquement.
D'ailleurs comment LINUX sait quels pilotes charger sachant que certains le sont automatiquement au démarrage MAIS n'apparaissent pas dans /etc/modules.. là encore j'ai besoin de vos lumières...
ph75 a écrit : Sinon une solution, au moins d'attente, peut être de passer par ndiswrapper, si ça marche. |
Oui enfin je trouve dommage de ne pas profiter d'un driver disponible juste parce qu'on a des problèmes à compiler, non? Ndis Wrapper ça doit sauver pas mal de monde qui se retrouve avec une carte wifi sans driver pour linux
Marsh Posté le 27-12-2006 à 12:55:46
kryzantem a écrit : alien cons piracy> |
Oké je croyais que tu découvrais, excuse moi.
Normalement il n'y a que make install qui necessite les privilèges root, c'est pour ca que je pensais que tu avait ouvert une session graphique en root.
Marsh Posté le 27-12-2006 à 14:28:32
pas de problèmes, en tout cas, ça m'a permis de me rendre compte que (quand t'as les bons paquets) c'est trivial de compiler et qu'un système sur mesure n'est pas une tâche inacessible après tout...
Merci pour tes réponses
Marsh Posté le 27-12-2006 à 16:45:55
Tu t'en est sorti finalement?
Si c'est du broadcom net extrem etc je suis quasiment sur que le module à utiliser est tg3.
Si c'est plus récent tu as les modules bnx et bnx2 dans les 2.6.18.
Ceci dit, udev te chargera automatiquement les bons modules pour ton matos, donc si tu as tg3 de loadé...
Marsh Posté le 27-12-2006 à 18:44:04
raison qui fait qu'il faut compiler les drivers : le noyau Linux n'a pas une API stabilisé ( idem pour l'ABI ). Donc il faut recompiler les modules afin qu'ils utilisent la bonne ABI. Dans le cas du changement de l'API, une recompilation ne suffit pas ( il faut modifier les sources ). De plus même pour un même noyau, utiliser une version différente de GCC pour compiler le noyau et le module peut poser problème notamment parce que gcc peut changer l'ABI.
API : http://fr.wikipedia.org/wiki/Inter [...] grammation
ABI : http://en.wikipedia.org/wiki/Appli [...] _interface
pkoi le noyau linux n'a pas une API stabilisée : http://www.kroah.com/log/linux/sta [...] sense.html
Marsh Posté le 28-12-2006 à 15:26:58
Dark_Schne ider> Merci pour tes précisions
M300A> Oui, je crois que je me suis précipité dans la compilation d'un driver bcm5700 (obsolète qui plus est) parce que lorsque j'ai enfiché mar carte PCI, elle n'a pas été détectée...
Au bout du compte, il me semble que c'est un slot PCI défectueux qui a provoqué le problème parce tg3 est présent dans mes modules et un # rmmod tg3 entraîne la disparition de l'ethX.
De plus, une carte fonctionnelle et disposant d'un pilote adéquate ne marche pas non plus dans ce même slot..
Je ne sais pas s'il y a une quelconque corrélation avec le module bcm5700 mais lorsque je supprime ce dernier, j'ai un message au boot m'indiquant que bcm5700 est absent ...
A investiguer
Au final, j'aurais au pire appris des choses
++
Marsh Posté le 18-01-2007 à 09:02:17
M300A a écrit : Tu t'en est sorti finalement? |
j ai le meme probleme. j ai le pilote tg3 mais
il ne reconnait pas la carte au boot
et un insmod tg3.o envoie des messages d errurs...vous croyez quil faut recompiler le pilote?
j ai aussi entendu parler de pb de noyau?
Marsh Posté le 21-01-2007 à 14:14:44
Qu'as tu comme version de noyau ?
C'est tg3.ko qu'il faut charger
/lib/modules/$(uname -r)/kernel/drivers/net/tg3.ko
moi aussi au premier reboot, il ne me l'a pas détecté mais comme je l'ai dis précédemment je soupçonne un problème de port PCI défectueux.
Regarde avec lsmod si tg3 fait partie des modules qui sont chargés
Marsh Posté le 23-01-2007 à 15:22:40
salut j ai telecharger TG3 sur broadcom et je l ai mi dans "home" sur ma machine fedora core 1
je lit le fichier .txt avec le fichier que j ai dl et la je suis l instruction
tar xvzf tg3-3.ver.tar.gz
la il me dezip le fichier si j ai bien compris parce que je debute sous linux.
enssuite je continu et la j ai "src make" ou est src pour fair make ??? /usr/src ??? ou c tout autre chose ?
bref je bloque i need help pleas merci d avance
Marsh Posté le 24-01-2007 à 11:25:52
tu te rends dans le répertoire des sources de tg3 puis tu fais make, il faut au préalable que tu aies les paquets kernel-headers voire kernel-source de ta distrib (correspondant donc à ton noyau).
Renseignes toi sur comment compiler puis installer un driver, par exemple sur lea-linus: site très instructif pour les débutants..
Marsh Posté le 24-01-2007 à 13:42:20
merci j y go dessuite je pensse que l prob est la puisque qd j execute insmod tg3.o ou ok ou modprob tg3.o ok sa me dit modul introuvable
si vs avez d autre info je prend merci go to lea ^^
Marsh Posté le 24-01-2007 à 14:07:55
tu n'as pas été voir sur léa toi
il faut faire :
sudo modprobe tg3 |
sans extension...
Marsh Posté le 24-01-2007 à 14:38:13
Sur mon ultra-portable j'utilise Debian Etch depuis un bon bout de temps déjà et je n'ai jamais eu de problème avec le module tg3 (y compris lors de l'installation -ça devait être une beta2 de l'installateur).
En gros ça à fonctionné tout seul dès le départ avec un noyau version 2.6.15 + udev, et ça fonctionne toujours (heureusement ) avec un 2.6.16 (oui je sais il y a le 2.6.18 sous Etch, pour l'instant je n'ai pas fait la transition).
Extrait d'un lscpi (info sur mon chipset broadcom utilisant tg3) :
|
Marsh Posté le 26-12-2006 à 19:14:59
Bonjour,
J'ai récupéré une carte 3com (3c996b-t) à base de chipset Broadcom (bcm5700).
Sur le site de 3com, un driver est disponible sous license GNU GPL:
http://www.3com.com/products/en_US [...] order=desc
Après décompression, plusieurs versions disponibles dans Server/Linux/Driver celle que j'utilise est:
bcm5700-8.2.18.tar.gz
Lorsque j'essaie de le compiler, voici ce que j'obtiens:
homer:~/bcm5700-8.2.18/src# make
make -C SUBDIRS=/root/bcm5700-8.2.18/src modules
make: *** SUBDIRS=/root/bcm5700-8.2.18/src: Aucun fichier ou répertoire de ce type. Arrêt.
make: *** [default] Erreur 2
homer:~/bcm5700-8.2.18/src#
Pourquoi doit-on compiler son propre driver(si ce-dernier n'est pas déjà inclus dans le noyau), ne pourrait-on pas récupérer une version précompilée pour son architecture?
Il doit manifestement y avoir une bonne raison qui m'échappe...
Merci d'avance pour votre aide
Message édité par kryzantem le 29-12-2006 à 22:49:04