ath9k : aide pour installer ce driver dans un noyau

ath9k : aide pour installer ce driver dans un noyau - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 29-07-2008 à 00:42:37    

Bonjour,
 
je possède une carte wifi pci avec chipset atheros AR5416 (la Dlink DWA-547).
ce chipset est enfin supporté par un driver : le driver ath9k dont l'installation est décrite ici même :
http://wireless.kernel.org/en/users/Drivers/ath9k
 
question : est ce que ce tuto d'installation s'inscrit dans un process complet de compilation de noyau ?
donc ça voudrait dire qu'il faut que je DL les sources d'un noyau (2.6.25-13 par exemple), et que je m'amuse à le compiler ?
à quel moment je dois insérer le driver ath9k ? et de quelle façon ?
 
voilà ce que j'ai fait pour l'instant :
DL les sources du 2.6.25-13 de façon classique, j'ai fait un lien symbolique /usr/src/linux comme conseillé pour compiler un noyau.
ensuite je me suis mis dans /usr/src/linux/drivers/net/wireless/ et j'ai tapé comme indiqué dans le tuto :

Code :
  1. git-clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/ath9k.git


et je me suis retrouvé avec un dossier /ath9k dans /usr/src/linux/drivers/net/wireless/
ensuite je reviens dans /usr/src/linux et je tape

Code :
  1. sudo make oldconfig
  2. sudo make xconfig


et là je ne trouve pas la ligne de config dont ils parlent dans le tuto "Atheros 802.11n wireless cards support"
 
où est ce que je me plante ?

Reply

Marsh Posté le 29-07-2008 à 00:42:37   

Reply

Marsh Posté le 29-07-2008 à 06:49:24    

Tu dois avoir un moyen de le compiler avec uniquement les en tetes.
Je ne vois pas pourquoi il faudrait passer par une compilation du noyau.
 
Sinon t'as tente "grep athg9k .config " ?


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 29-07-2008 à 09:02:51    

bgse a écrit :

Bonjour,
 
je possède une carte wifi pci avec chipset atheros AR5416 (la Dlink DWA-547).
ce chipset est enfin supporté par un driver : le driver ath9k dont l'installation est décrite ici même :
http://wireless.kernel.org/en/users/Drivers/ath9k
 
question : est ce que ce tuto d'installation s'inscrit dans un process complet de compilation de noyau ?
donc ça voudrait dire qu'il faut que je DL les sources d'un noyau (2.6.25-13 par exemple), et que je m'amuse à le compiler ?
à quel moment je dois insérer le driver ath9k ? et de quelle façon ?
 
voilà ce que j'ai fait pour l'instant :
DL les sources du 2.6.25-13 de façon classique, j'ai fait un lien symbolique /usr/src/linux comme conseillé pour compiler un noyau.
ensuite je me suis mis dans /usr/src/linux/drivers/net/wireless/ et j'ai tapé comme indiqué dans le tuto :


quelle est ta distro, et ton kernel actuel ?


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 29-07-2008 à 11:04:45    

zecrazytux a écrit :


quelle est ta distro, et ton kernel actuel ?


gee a écrit :

Tu dois avoir un moyen de le compiler avec uniquement les en tetes.
Je ne vois pas pourquoi il faudrait passer par une compilation du noyau.

 

Sinon t'as tente "grep athg9k .config " ?


donc j'utilise kubuntu gutsy 7.10, kernel 2.6.22-14

 

le noyau est celui de la distrib, je ne l'ai jamais recompilé moi-même (en tout cas pas celui là)
donc même si le noyau est celui fourni de base, je peux compiler le driver sans avoir à télécharger un noyau et le recompiler entièrement ?
je fais comment ? j'ai cherché dans la doc ubuntu-fr.org et j'ai pas trouvé.
pourtant je dispose bien du code source du driver maintenant.

 

oui, dans xconfig, j'ai fait une recherche sur "ath5k" et j'ai trouvé la ligne (le driver ath5k est de base dans 2.6.25), mais pour "ath9k", aucune ligne. c'est de la recherche dans xconfig dont je parle, pas du grep, que j'essayerai ce soir, mais qui ne donnera rien je pense.

Message cité 1 fois
Message édité par bgse le 29-07-2008 à 11:05:49
Reply

Marsh Posté le 29-07-2008 à 11:16:53    

bgse a écrit :


donc j'utilise kubuntu gutsy 7.10, kernel 2.6.22-14
 
le noyau est celui de la distrib, je ne l'ai jamais recompilé moi-même (en tout cas pas celui là)
donc même si le noyau est celui fourni de base, je peux compiler le driver sans avoir à télécharger un noyau et le recompiler entièrement ?
je fais comment ? j'ai cherché dans la doc ubuntu-fr.org et j'ai pas trouvé.
pourtant je dispose bien du code source du driver maintenant.
 
oui, dans xconfig, j'ai fait une recherche sur "ath5k" et j'ai trouvé la ligne (le driver ath5k est de base dans 2.6.25), mais pour "ath9k", aucune ligne. c'est de la recherche dans xconfig dont je parle, pas du grep, que j'essayerai ce soir, mais qui ne donnera rien je pense.


y a un package linux-headers correspondant à ton kernel, qui permet de compiler des modules


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 29-07-2008 à 11:36:10    

oui, effectivement.
 
donc je n'ai pas à me servir de ce lien là ?
http://wireless.kernel.org/en/users/Drivers/ath9k
 
j'avoue que j'ai du mal à trouver une page qui explique l'installation d'un module.
où est ce que je dois décompresser ? quelles sont les commandes (make ? make install ?) à utiliser...

Reply

Marsh Posté le 29-07-2008 à 11:43:59    

t'as un script configure ? un makefile seulement ?
 
il faut adapter pour que les paths des includes soient corrects...
puis make && make install


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 29-07-2008 à 12:25:42    

j'ai pas le code sous la main là, car au boulot, je verrai ce soir.

 

adapter ?
tu veux dire adapter le code source ?
les includes sont normalement situés où dans l'arborescence ?

 

Merci.

Message cité 1 fois
Message édité par bgse le 29-07-2008 à 12:26:00
Reply

Marsh Posté le 29-07-2008 à 12:41:28    

bgse a écrit :

j'ai pas le code sous la main là, car au boulot, je verrai ce soir.
 
adapter ?
tu veux dire adapter le code source ?
les includes sont normalement situés où dans l'arborescence ?
 
Merci.


j'ai plus en tête la structure d'un module kernel linux. Mais à priori ça utilise GNU Make. Donc très certainement make && make install.
 
Ensuite, pour compiler un module, il faut des includes spéciales (les en têtes du kernel), et donc passer les bons parametres à gcc (le compilateur). Pour celà, il y a des variables et macros dans le Makefile.
Soit il faut modifier le makefile pour spécifier les bon paths (ou en passant la variable comme parametre) soit il y a un script qui s'occupe de générer le makefile (avec les autotools, toussa, un script "configure", qui prend des parametres comme --with-machin-path=)
 
suffit de jeter un coup d'oeil à l'organisation de ce module. j'y jeterai un coup d'oeil si t'y arrives pas


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 29-07-2008 à 15:51:55    

merci pour ta patience. j'ai compris à peu près ce que tu viens de dire.
je te tiens au courant. je pense y passer la soirée de ce soir :)

 

en gros, il faut que je décompresse au bon endroit (je ne sais toujours pas où), et que je modifie peutetre le makefile, mais en gros tout est déjà pré-scripté, je n'ai qu' à balancer make && make install.

 

sinon, autre solution : il me semble qu'il y a une branche du kernel linux qui inclut ce driver directement : la branche "wireless-testing" qui doit déjà être en 2.6.26. il suffit que je trouve le ".git" qu'il faut et ça devrait rouler, avec une compilation "banale" d'un noyau complet. le but étant de pouvoir faire marcher ma carte wifi en mode "N" (géré par ath9k), et quitter "madwifi".

Message cité 1 fois
Message édité par bgse le 29-07-2008 à 15:52:19
Reply

Marsh Posté le 29-07-2008 à 15:51:55   

Reply

Marsh Posté le 29-07-2008 à 16:53:43    

bgse a écrit :

merci pour ta patience. j'ai compris à peu près ce que tu viens de dire.
je te tiens au courant. je pense y passer la soirée de ce soir :)
 
en gros, il faut que je décompresse au bon endroit (je ne sais toujours pas où), et que je modifie peutetre le makefile, mais en gros tout est déjà pré-scripté, je n'ai qu' à balancer make && make install.
 
sinon, autre solution : il me semble qu'il y a une branche du kernel linux qui inclut ce driver directement : la branche "wireless-testing" qui doit déjà être en 2.6.26. il suffit que je trouve le ".git" qu'il faut et ça devrait rouler, avec une compilation "banale" d'un noyau complet. le but étant de pouvoir faire marcher ma carte wifi en mode "N" (géré par ath9k), et quitter "madwifi".


si c'est pour recompiler un kernel perso, pense à la méthode Debian, avec make-kpackage


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 29-07-2008 à 17:13:52    

je ne connais pas.
bon, je vais d'abord tenté la première méthode, me servir du noyau de ma distrib, et simplement créer le module.
est ce que le lien http://wireless.kernel.org/en/users/Drivers/ath9k est approprié pour cette méthode ?
où dois je extraire les sources ?
sous quelle forme se trouve le module une fois compilé ?
(ensuite je pense être capable de le charger).

Reply

Marsh Posté le 29-07-2008 à 17:18:21    

Je viens de tester vite fait et ça ne compile pas en 2.6.24, donc ça marchera pas mieux en 2.6.22.
 
Visiblement ils utilisent la toute dernieère stack wifi mac80211 qui ne doit pas y être présente. Je vais tester sur un 2.6.25.

Reply

Marsh Posté le 29-07-2008 à 17:44:23    

M300A a écrit :

Je viens de tester vite fait et ça ne compile pas en 2.6.24, donc ça marchera pas mieux en 2.6.22.
 
Visiblement ils utilisent la toute dernieère stack wifi mac80211 qui ne doit pas y être présente. Je vais tester sur un 2.6.25.


tu peux updater la mac80211 sur un 2.6.22 ;)


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 29-07-2008 à 17:46:25    

bgse a écrit :

je ne connais pas.
bon, je vais d'abord tenté la première méthode, me servir du noyau de ma distrib, et simplement créer le module.
est ce que le lien http://wireless.kernel.org/en/users/Drivers/ath9k est approprié pour cette méthode ?
où dois je extraire les sources ?
sous quelle forme se trouve le module une fois compilé ?
(ensuite je pense être capable de le charger).


après un make, tu obtiens un .ko que tu peut tester avec "insmod truc.ko". si il ne dis rien, c'est que c'est à priori bon, tu peux regarder dans la sortie de lsmod si il est bien présent, et dmesg | tail te sortira certainement quelques lignes concernant ta carte wifi maintenant reconnue.
 
ensuite, après un make install et un depmod -a, tu peux faire un modprobe truc


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 29-07-2008 à 19:25:18    

M300A a écrit :

Je viens de tester vite fait et ça ne compile pas en 2.6.24, donc ça marchera pas mieux en 2.6.22.
 
Visiblement ils utilisent la toute dernieère stack wifi mac80211 qui ne doit pas y être présente. Je vais tester sur un 2.6.25.


 
tu veux dire que tu as fait ça :
 
git-clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/ath9k.git
cd ath9k
make
 
et que ça sort en erreur ?
si oui ça me rassure car moi aussi.
 
je vais d'abord installer un 2.6.26 puis si ma compile de noyau fonctionne (pas évident...) j'essayerai de relancer la compilation aussi.

Reply

Marsh Posté le 29-07-2008 à 22:33:32    

Bah y'a des erreurs de compile, probablement due à un changement d'API.
 
Comme dit plus haut par zecrazytux, il faut sans doute passer par une update de la stack mac80211 d'abord.

Reply

Marsh Posté le 29-07-2008 à 22:34:12    

ha ça me gave, je sais même pas compiler un noyau...
j'ai compilé le 2.6.26, je boot et ça boot pas correctement (impossible de démarrer le server X)...
 
je sens que je vais devoir attendre qu'un noyau sorte avec ath9k ET qu'une distrib inclut ce noyau :(

Reply

Marsh Posté le 29-07-2008 à 22:43:12    

bgse a écrit :

ha ça me gave, je sais même pas compiler un noyau...
j'ai compilé le 2.6.26, je boot et ça boot pas correctement (impossible de démarrer le server X)...
 
je sens que je vais devoir attendre qu'un noyau sorte avec ath9k ET qu'une distrib inclut ce noyau :(


 
c'est probablement le module nvidia ou ati qui manque pour ce nouveau kernel. si c'était vesa, y'aurai pas de probleme...  
 
m'enfin sinon, tu l'as fait "sauce debian" ?
 


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 29-07-2008 à 22:55:10    

oui sauce debian, avec compilation et création de .deb, car la méthode que j'ai utilisé juste avant ne me créait pas de fichier initdr dans /boot donc je ne pouvais pas booter. j'ai tenté le .deb et ça a marché. mais au boot effectivement, pas de X qui démarre. bon allez, je vais essayer de rajouter vesa ou autre dans le kernel. c'est pas inclut par défaut ses choses là ??

Reply

Marsh Posté le 29-07-2008 à 23:09:32    

bgse a écrit :

bon allez, je vais essayer de rajouter vesa ou autre dans le kernel. c'est pas inclut par défaut ses choses là ??


 
si, mais ton serveur X est probablement configuré pour autre chose. Quel est le driver utilisé (grep Driver /etc/X11/xorg.conf) ?


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 30-07-2008 à 11:14:03    

hebien, j'ai une 7900GTO, avec le driver proprio installé.
effectivement, X est configuré pour autre chose.
mais le nouveau noyau n'est pas capable de prendre en compte mon xorg.conf ?? il faut que je modifie xorg.conf pour mettre vesa, pouvoir démarrer, puis dire à ma distrib d'utiliser le driver qu'il y avait ?

Reply

Marsh Posté le 30-07-2008 à 13:17:19    

le kernel s'en fou de ton interface graphique. mais si le module nvidia est pas dispo pour ton nouveau kernel, X crash


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 30-07-2008 à 17:23:31    

Le module nvidia compile sans souci en 2.6.26. Faut passer par l'installateur proprio, par contre, pas par les paquets ubuntu.

Reply

Marsh Posté le 30-07-2008 à 17:42:15    

l'installeur proprio ? c'est à dire ne pas inclure nvidia lors de la compil du noyau, mais faire ça après ?
 
en fait c'est pour tester ath9k, je vais donc modifier xorg.conf pour avoir le driver générique et pas être embetté pour booter sur 2.6.26

Reply

Marsh Posté le 30-07-2008 à 18:32:18    

Tu confonds nv et nvidia. Le premier est libre et inclus dans les sources du noyau, le second est le nom du driver proprio.
Par installateur proprio, je veux dire celui que tu télécharges depuis le site nvidia et qui est capable de compiler le module 2D s'il n'en a pas pour ton kernel. Par opposition au paquet ubuntu qui ne contient que les modules précompilés pour les kernels ubuntu officiels.  
Si tu choisis de passer par nv, ça fonctionnera out of the box ; mais c'est bien le seul intérêt de ce driver.

Reply

Marsh Posté le 30-07-2008 à 22:39:49    

effectivement, en modifiant le xorg.conf, j'ai pu booter sur le 2.6.26 sur ma gutsy. je suis ensuite allé dans /ath9k et j'ai tapé make.
mais j'ai eu des erreurs de compilation.

 

mais finalement, j'ai pris ubuntu 8.10 alpha3 pour être sous 2.6.26.
une install from scratch ne marchant pas, j'ai dû installer 8.04.1 LTS et faire une migration vers l'alpha3.
donc je vais essayer de compiler ath9k ici même, et de choper le .ko dont vous me parlez au dessus.


Message édité par bgse le 30-07-2008 à 22:44:39
Reply

Marsh Posté le 30-07-2008 à 22:46:46    

bon, ça donne la même chose à peu près :
 

Code :
  1. bgse@ubuntu:~/ath9k$ make
  2. make -C /lib/modules/2.6.26-5-generic/build M=/home/bgse/ath9k modules
  3. make[1]: Entering directory `/usr/src/linux-headers-2.6.26-5-generic'
  4.   CC [M]  /home/bgse/ath9k/ksrc/hw.o
  5.   CC [M]  /home/bgse/ath9k/ksrc/phy.o
  6.   CC [M]  /home/bgse/ath9k/ksrc/regd.o
  7.   CC [M]  /home/bgse/ath9k/ksrc/beacon.o
  8. /home/bgse/ath9k/ksrc/beacon.c: In function ‘ath_beacon_alloc’:
  9. /home/bgse/ath9k/ksrc/beacon.c:422: error: too few arguments to function ‘ieee80211_beacon_get’
  10. make[3]: *** [/home/bgse/ath9k/ksrc/beacon.o] Error 1
  11. make[2]: *** [/home/bgse/ath9k/ksrc] Error 2
  12. make[1]: *** [_module_/home/bgse/ath9k] Error 2
  13. make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-5-generic'
  14. make: *** [modules] Error 2

Reply

Marsh Posté le 31-07-2008 à 16:00:03    

ok, c'est normal, ils disent sur cette page là que ath9k ne compile pas, même avec le 2.6.26
il faut une version spéciale du kernel.
sur la même page, un how to complet pour installer ath9k
héhé, ce soir en retrant (tard, car hélas, je suis invité à manger chez des amis :( ) je vais voir ça !!
et peutetre enfin profiter de mon wifi N...
 
http://www.thinkwiki.org/wiki/How_ [...] n_of_atk9k

Reply

Marsh Posté le 01-08-2008 à 11:27:52    

http://www.thinkwiki.org/wiki/How_ [...] n_of_atk9k

 

bon, j'ai suivi une partie du tuto, j'en suis à la fin de la compilation du noyau.
mais ça boot pas, donc comme ils disent dans le tuto, je dois générer le fichier initrd avant de pouvoir continuer.


Message édité par bgse le 01-08-2008 à 23:49:37
Reply

Marsh Posté le 04-08-2008 à 15:26:14    

bon, après plusieurs tentatives, je n'arrive pas à booter sur le noyau 2.6.27rc1-wl du wireless-testing.git
 
j'ai suivi plusieurs méthodes de compilation (la méthode du lien, et 2 autres méthodes que j'avais dans mes petits papiers), avec ou sans génération du initrd...
 
ça ne veut pas booter. donc je ne peux même pas tester ath9k
 
qui arrive à booter successfully sur le noyau de ce lien ?
http://www.thinkwiki.org/wiki/How_ [...] n_of_atk9k

Reply

Marsh Posté le 04-08-2008 à 20:47:06    

Surtout ne nous indique pas l'erreur que tu as avec le 2.6.27.


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 04-08-2008 à 21:48:54    

j'étais au boulot quand j'ai posté, désolé, je rapportais mes péripéties de la veille.
 
je viens de faire un git pull
je tente encore la compilation

Reply

Marsh Posté le 04-08-2008 à 23:14:39    

oups

Message cité 1 fois
Message édité par bgse le 04-08-2008 à 23:21:44
Reply

Marsh Posté le 04-08-2008 à 23:17:22    

pour info, ath9k vient tout juste d'être intégré à la branche du noyau wireless-testing (git pull / un dossier ath9k s'est créé dans l'arbtre), donc il ne reste qu' à compiler ce noyau et ça devrait être bon.

 

voici les étapes que j'avais suivi lors de ma compil de 22h00 avant le git pull :

Code :
  1. cd /usr/src/linux
  2. sudo make xconfig
  3. sudo make
  4. sudo make modules
  5. sudo make modules_install
  6. sudo make install (pas de création de initrd)
  7. sudo mkinitramfs -o /boot/initrd.img-2.6.27-rc1-wl


ensuite je modifie grub pour booter dessus, et malheureusement je n'ai pas de message d'erreur : la barre de chargement d'ubuntu se bloque au tout début.

 

bon, je recommence... avec ath9k intégré


Message édité par bgse le 04-08-2008 à 23:47:20
Reply

Marsh Posté le 04-08-2008 à 23:59:53    

deja utilise make-kpkg au lieu de make c'est fait pour (et ca s'occupera du initramfs aussi)
 
Apres vire moi cette barre de chargement pour remettre le texte qui dit ce qui se passe.


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 05-08-2008 à 00:53:16    

ok, c'est entrain.
pour virer la barre de chargement c'est comment ?
j'ai enlevé le "quiet" dans grub mais ça ne change rien

Reply

Marsh Posté le 05-08-2008 à 00:55:19    

aucune idee ca fait longtemps que je n'utilise plus kubuntu, c'est surement splashy a configurer.


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 05-08-2008 à 08:48:11    

C'est pas quiet mais splash qu'il faut enlever dans grub.  
Si tu veux une solution permanente, tu fais le ménage dans /etc/default/grub ou tu vires le paquet usplash.

Reply

Marsh Posté le 05-08-2008 à 10:53:37    

des nouvelles :
j'ai donc modifié ma procédure de compilation pour coller à l'outil make-kpkg.
bon, ça marche mieux : j'ai pu booter correctement.
 
petits soucis :
1) au départ j'avais pas inclu le module nvidia dans le noyau et je ne pouvais pas lancer X
2) j'ai recompiler avec le module nvidia et même avec ça je ne pouvais toujours pas lancer X, donc j'ai modifié xorg.conf pour mettre "nv" à la place de "nvidia".
3) ça a lancé X, et surprise, je me suis retrouvé sous gnome au lieu de kde. je ne sais pas pourquoi ce kernel a lancé gdm à la place de kdm. je ne connais pas assez bien les rouages de linux pour savoir comment modifier ça à la main. une solution serait que je désinstalle gnome carrément, et là il n'y aurait plus le choix (dans la date).
 
sinon, j'ai fait un petit "lsmod | grep ath9k" et j'ai bien vu le module ath9k actif, donc ça c'est cool.
 
ensuite comme il était tard, j'ai arrété là.
pour essayer d'utiliser vraiment ath9k il faudrait que je désinstalle madwifi, qui gère actuellement ma carte wifi, pour que ath9k prenne le relai. je pars en congés dans 2 jours là, donc je verra ça fin août.
 
merci pour votre aide en tout cas, et continuez de surveiller ce topic, car j'aurai certainement encore des questions !!

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed