Probleme d'header

Bonjour,

je suis en train d’installer une carte wifi a l’aide de ce tuto :
http://linuxfr.org/~artefact/16640.html

Auparavant, j’avais recompiler mon noyau avec sucés (en 2.6.21), et installé les header via le paquet .deb crée lors de la compilation.

D’apres le tuto, je dois entrer dans le repertoire linux-header, et faire un

Mais voila mon erreur :

# Build modules /usr/bin/make -C "/usr/src/linux-headers-2.6.21toto-2007.07.05" M="/usr/src/modules/acx100" make[3]: entrant dans le répertoire « /usr/src/linux-headers-2.6.21toto-2007.07.05 » LD /usr/src/modules/acx100/built-in.o CC [M] /usr/src/modules/acx100/wlan.o /usr/src/modules/acx100/wlan.c:40:26: error: linux/config.h: Aucun fichier ou répertoire de ce type make[4]: *** [/usr/src/modules/acx100/wlan.o] Erreur 1 make[3]: *** [_module_/usr/src/modules/acx100] Erreur 2 make[3]: quittant le répertoire « /usr/src/linux-headers-2.6.21toto-2007.07.05 » make[2]: *** [binary_modules] Erreur 2 make[2]: quittant le répertoire « /usr/src/modules/acx100 » make[1]: *** [kdist_build] Erreur 2 make[1]: quittant le répertoire « /usr/src/modules/acx100 » Module /usr/src/modules/acx100 failed. Hit return to Continue

Effectivement, le fichier n’existe pas, alors que faire ???

Merci.

ced

pas besoin d’aller télécharger des sources, elles existent en version debian avec le module assistant, et les installer se fait normalement en un tournemain:

[code]# aptitude install module-assistant

m-a a-i acx100-source[/code]et hop, il te fabrique un paquet de module acx100 que tu pourras désinstaller si tu veux et l’installe.

ah ! et sinon, si tu as compilé ton noyau, IL NE FAUT PAS INSTALLER LES HEADERS.
C’est le répertoire ou tu as compilé tes sources qui fait office de headers.
Vérifies que /usr/src/linux et /lib/modules//build pointent bien vers le répertoire ou sont les sources.

Merci de tes reponses.

Mes dossiers pointes bien :

-rw-r--r-- 1 root root 194779 2006-09-30 00:56 acx100.tar.gz lrwxrwxrwx 1 root src 35 2007-07-09 14:56 linux -> linux-headers-2.6.21toto-2007.07.05 drwxr-xr-x 19 root root 4096 2007-07-09 14:57 linux-headers-2.6.21toto-2007.07.05 -rw-r--r-- 1 root src 7990994 2007-07-05 23:48 linux-headers-2.6.21toto-2007.07.05_2.6.21toto-2007.07.05-10.00.Custom_i386.deb -rw-r--r-- 1 root src 12226630 2007-07-05 23:43 linux-image-2.6.21toto-2007.07.05_2.6.21toto-2007.07.05-10.00.Custom_i386.deb lrwxrwxrwx 1 root src 28 2007-07-09 14:55 linux-OLDVERSION.1183985771 -> /usr/src/linux-source-2.6.21 drwxr-xr-x 19 root root 4096 2007-07-09 14:41 linux-source-2.6.21 -rw-r--r-- 1 root root 43894794 2007-06-22 15:58 linux-source-2.6.21.tar.bz2 drwxr-xr-x 3 root src 4096 2006-09-30 00:56 modules

lrwxrwxrwx 1 root root 28 2007-07-05 23:49 build -> /usr/src/linux-source-2.6.21 drwxr-xr-x 10 root root 4096 2007-07-05 23:49 kernel drwxr-xr-x 2 root root 4096 2007-07-05 23:59 misc -rw-r--r-- 1 root root 216280 2007-07-05 23:59 modules.alias -rw-r--r-- 1 root root 69 2007-07-05 23:59 modules.ccwmap -rw-r--r-- 1 root root 251539 2007-07-05 23:59 modules.dep -rw-r--r-- 1 root root 813 2007-07-05 23:59 modules.ieee1394map -rw-r--r-- 1 root root 1186 2007-07-05 23:59 modules.inputmap -rw-r--r-- 1 root root 21762 2007-07-05 23:59 modules.isapnpmap -rw-r--r-- 1 root root 74 2007-07-05 23:59 modules.ofmap -rw-r--r-- 1 root root 188651 2007-07-05 23:59 modules.pcimap -rw-r--r-- 1 root root 715 2007-07-05 23:59 modules.seriomap -rw-r--r-- 1 root root 96441 2007-07-05 23:59 modules.symbols -rw-r--r-- 1 root root 289970 2007-07-05 23:59 modules.usbmap lrwxrwxrwx 1 root root 28 2007-07-05 23:49 source -> /usr/src/linux-source-2.6.21

Et tes commandes fonctionnent.

Mais le fichier est toujours introuvables, et donc toujours la même erreur.

J’ai essaye de creer ce fichier avec :

[code]#ifndef _LINUX_CONFIG_H
#define _LINUX_CONFIG_H
/* This file is no longer in use and kept only for backward compatibility.

  • autoconf.h is now included via -imacros on the commandline
    */
    #include <linux/autoconf.h>

#endif[/code]

(vu sur http://forum.zebulon.fr/index.php?showtopic=114472) mais en vain …

Ced

non, les liens ne pointent pas bien:
si ton premier ls -l concerne bien /usr/src, le lien linux pointe sur les headers, pas sur les sources, il faut corriger.

Sinon, de quel fichier parles tu qui serait introuvable ?

Comme je te l’ai dit, si tu as bien supprimmé toute trace de tes essais précèdents avec des sources acx, et indépendament de tout tuto, m-a a-i acx100-source doit te fabriquer un .deb dans /usr/src (pour toi sans doute un truc genre acx100-modules-2.6.21toto-2007.07.05_2.6.21toto-2007.07.05-10.00.Custom_i386.deb) et ce .deb est automatiquement installé par l’operation, tu n’as plus qu’a faire le modprobe du module, c’est tout.

oki,

bon, je ne comprend pas tout, tu m’as plus embrouillé que autre chose lol.

Donc voila ce que j’ai fait dans /usr/srce:

1 - j’ai refait le lien symbolique "linux"
2- j’ai suprimé le repertoire /module (qui ne contenait que acx100/) et toute trace de acx

voila ce que j’obtiens :

-rw-r--r-- 1 root root 194779 2006-09-30 00:56 acx100.tar.gz lrwxrwxrwx 1 root src 28 2007-07-09 16:06 linux -> /usr/src/linux-source-2.6.21 drwxr-xr-x 19 root root 4096 2007-07-09 14:57 linux-headers-2.6.21toto-2007.07.05 -rw-r--r-- 1 root src 7990994 2007-07-05 23:48 linux-headers-2.6.21toto-2007.07.05_2.6.21toto-2007.07.05-10.00.Custom_i386.deb -rw-r--r-- 1 root src 12226630 2007-07-05 23:43 linux-image-2.6.21toto-2007.07.05_2.6.21toto-2007.07.05-10.00.Custom_i386.deb drwxr-xr-x 19 root root 4096 2007-07-09 14:41 linux-source-2.6.21 -rw-r--r-- 1 root root 43894794 2007-06-22 15:58 linux-source-2.6.21.tar.bz2

je fais un m-a a-i acx100-source comme tu me le dis (pour moi, l’equivalent de mon make-kpkg … )

Et la, mon erreur reviens (que j’avais defini plus haut) !!!

LD /usr/src/modules/acx100/built-in.o CC [M] /usr/src/modules/acx100/wlan.o /usr/src/modules/acx100/wlan.c:40:26: error: linux/config.h: Aucun fichier ou répertoire de ce type make[4]: *** [/usr/src/modules/acx100/wlan.o] Erreur 1 make[3]: *** [_module_/usr/src/modules/acx100] Erreur 2 make[3]: quittant le répertoire « /usr/src/linux-headers-2.6.21toto-2007.07.05 » make[2]: *** [binary_modules] Erreur 2 make[2]: quittant le répertoire « /usr/src/modules/acx100 » make[1]: *** [kdist_build] Erreur 2

Ce qui est normal, car le fichier “linux/config.h”, ben il est toujours pas la !!!

En plus de cela, mon lien /usr/src/linux a changé :

-rw-r--r-- 1 root root 194779 2006-09-30 00:56 acx100.tar.gz lrwxrwxrwx 1 root src 35 2007-07-09 16:08 linux -> linux-headers-2.6.21toto-2007.07.05 drwxr-xr-x 19 root root 4096 2007-07-09 14:57 linux-headers-2.6.21toto-2007.07.05 -rw-r--r-- 1 root src 7990994 2007-07-05 23:48 linux-headers-2.6.21toto-2007.07.05_2.6.21toto-2007.07.05-10.00.Custom_i386.deb -rw-r--r-- 1 root src 12226630 2007-07-05 23:43 linux-image-2.6.21toto-2007.07.05_2.6.21toto-2007.07.05-10.00.Custom_i386.deb lrwxrwxrwx 1 root src 28 2007-07-09 16:06 linux-OLDVERSION.1183990091 -> /usr/src/linux-source-2.6.21 drwxr-xr-x 19 root root 4096 2007-07-09 14:41 linux-source-2.6.21 -rw-r--r-- 1 root root 43894794 2007-06-22 15:58 linux-source-2.6.21.tar.bz2 drwxr-xr-x 3 root src 4096 2006-09-30 00:56 modules

Et oui, il pointe vers le header, mais comment que cela se fait il ???

Donc ma question principale n’est pas de savoir comment compiler les sources (même si ca bloque a ce niveau, je connais les commandes et elles font toutes la même chose d’apres ce que je vois), mais ma question est comment résoudre ce probleme de fichier introuvable ???

Merci
ced

normalement, le module-assistant le fait lui même.
désolé. et je viens de vérifier chez moi:

[code]roc@roc:~$ sudo m-a a-i -t acx100-source
.
Données de 1 paquets mises à jour
Récupération des sources du noyau de la version : 2.6.22-rc5-em64t-roc
En-têtes du noyau disponibles dans /lib/modules/2.6.22-rc5-em64t-roc/source
Création du lien symbolique…
apt-get install build-essential
Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances… Fait
build-essential est déjà la plus récente version disponible.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 1 non mis à jour.

Fait.
download
Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances… Fait
Paquets suggérés :
acx100-firmware
Les NOUVEAUX paquets suivants seront installés :
acx100-source
0 mis à jour, 1 nouvellement installés, 0 à enlever et 1 non mis à jour.
Il est nécessaire de prendre 221ko dans les archives.
Après dépaquetage, 295ko d’espace disque supplémentaires seront utilisés.
ATTENTION : les paquets suivants n’ont pas été authentifiés.
acx100-source
Réception de : 1 http://ftp.fr.debian.org etch/contrib acx100-source 20060521-3 [221kB]
221ko réceptionnés en 3s (71,8ko/s)
Sélection du paquet acx100-source précédemment désélectionné.
(Lecture de la base de données… 125539 fichiers et répertoires déjà installés.)
Dépaquetage de acx100-source (à partir de …/acx100-source_20060521-3_all.deb) …
Paramétrage de acx100-source (20060521-3) …
Mise à jour des données de acx100-source

Données de 1 paquets mises à jour
unpack
Extracting the package tarball, /usr/src/acx100.tar.gz, please wait…
"/usr/share/modass/overrides/acx100-source" build KVERS=2.6.22-rc5-em64t-roc KSRC=/lib/modules/2.6.22-rc5-em64t-roc/source KDREV=2.6.22-rc5-em64t-roc-10.00.Custom kdist_image
(…)
CC [M] /usr/src/modules/acx100/wlan.o
/usr/src/modules/acx100/wlan.c:40:26: error: linux/config.h: Aucun fichier ou répertoire de ce type
make[3]: *** [/usr/src/modules/acx100/wlan.o] Erreur 1
make[2]: *** [module/usr/src/modules/acx100] Erreur 2
make[2]: quittant le répertoire « /usr/src/linux-source-2.6.22-rc5 »
make[1]: *** [binary_modules] Erreur 2
make[1]: quittant le répertoire « /usr/src/modules/acx100 »
make: *** [kdist_build] Erreur 2
BUILD FAILED!
See /var/cache/modass/acx100-source.buildlog.2.6.22-rc5-em64t-roc.1183991269 for details.
La construction a échoué. Appuyez sur Entrée pour continuer…[/code] :laughing:
alors j’ai eu le même réflexe que toi pour voir ce que ça donnait en créant un faux /usr/src/linux/include/config.h, et c’est pareil.
Alors je suis passé dans /usr/src/linux/include pour voir à quoi ça resssemblait, et je n’ai vu que des répertoires. J’en ai vu un qui s’appelait linux, et je me suis dit: c’est là qu’il faut mettre <linux/config.h>.
J’y ait donc copié le config.h que j’avais créé, et … bingo ! ça passe, mais ça plante plus tard, mais sur un autre truc:

CC [M] /usr/src/modules/acx100/wlan.o CC [M] /usr/src/modules/acx100/conv.o CC [M] /usr/src/modules/acx100/ioctl.o CC [M] /usr/src/modules/acx100/common.o /usr/src/modules/acx100/common.c: In function ‘acx_s_proc_diag_output’: /usr/src/modules/acx100/common.c:1245: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘long unsigned int’ /usr/src/modules/acx100/common.c:1245: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘long unsigned int’ /usr/src/modules/acx100/common.c:1523: warning: cast from pointer to integer of different size /usr/src/modules/acx100/common.c:1523: warning: cast from pointer to integer of different size /usr/src/modules/acx100/common.c:1528: warning: cast from pointer to integer of different size /usr/src/modules/acx100/common.c:1528: warning: cast from pointer to integer of different size /usr/src/modules/acx100/common.c: In function ‘acx_l_rxmonitor’: /usr/src/modules/acx100/common.c:2753: error: ‘struct sk_buff’ has no member named ‘mac’ /usr/src/modules/acx100/common.c:6944:14: error: macro "INIT_WORK" passed 3 arguments, but takes just 2 /usr/src/modules/acx100/common.c: In function ‘acx_init_task_scheduler’: /usr/src/modules/acx100/common.c:6943: error: ‘INIT_WORK’ undeclared (first use in this function) /usr/src/modules/acx100/common.c:6943: error: (Each undeclared identifier is reported only once /usr/src/modules/acx100/common.c:6943: error: for each function it appears in.) make[3]: *** [/usr/src/modules/acx100/common.o] Erreur 1 make[2]: *** [_module_/usr/src/modules/acx100] Erreur 2 make[2]: quittant le répertoire « /usr/src/linux-source-2.6.22-rc5 » make[1]: *** [binary_modules] Erreur 2 make[1]: quittant le répertoire « /usr/src/modules/acx100 » make: *** [kdist_build] Erreur 2

Comme ton noyau est différent du mien les includes sont peut être différents, et la macro “INIT_WORK” est peut être déclarée.

Mais je crains qu’il ne te faille régresser en noyau pour compiler le module, ou bien passer par (beurk) ndiswrapper.

ok, merci mattotop,

j’essayerais ca chez moi ce soir. Actuellement, je passe par ndiswrapper, mais ma carte (qui est de la daube) ne le supporte pas trop. Je voulais donc passer par acx, mais bon, j’essayerais avec mon vieux noyaux.

A++

ced

il y a peut être un moyen aussi en desactivant la pile standard 802.11 du noyau et en compilant (toujours avec le m-a) les sources externes qui sont disponibles.

en effet, ca va un poil plus loin, je n’avais pas reessayer :

# Build modules /usr/bin/make -C "/usr/src/linux-headers-2.6.21luna-2007.07.05" M="/usr/src/modules/acx100" make[2]: entrant dans le répertoire « /usr/src/linux-headers-2.6.21luna-2007.07.05 » LD /usr/src/modules/acx100/built-in.o CC [M] /usr/src/modules/acx100/wlan.o CC [M] /usr/src/modules/acx100/conv.o CC [M] /usr/src/modules/acx100/ioctl.o CC [M] /usr/src/modules/acx100/common.o /usr/src/modules/acx100/common.c:6944:14: error: macro "INIT_WORK" passed 3 arguments, but takes just 2 /usr/src/modules/acx100/common.c: In function 'acx_init_task_scheduler': /usr/src/modules/acx100/common.c:6943: error: 'INIT_WORK' undeclared (first use in this function) /usr/src/modules/acx100/common.c:6943: error: (Each undeclared identifier is reported only once /usr/src/modules/acx100/common.c:6943: error: for each function it appears in.) make[3]: *** [/usr/src/modules/acx100/common.o] Erreur 1 make[2]: *** [_module_/usr/src/modules/acx100] Erreur 2 make[2]: quittant le répertoire « /usr/src/linux-headers-2.6.21luna-2007.07.05 » make[1]: *** [binary_modules] Erreur 2 make[1]: quittant le répertoire « /usr/src/modules/acx100 » make: *** [kdist_build] Erreur 2

Mais apparement ce fichier a disparu depuis la version 2.6.17 (ou un truc du style)

bah tand pis, v aller jetter un coup d’oeil sur les archives du site avant de me mettre au code, peut etre l’ont ils maintenus !!!
Mci
ced

bon, je reviens avec des news.
Sur les conseils de mattotop, j’ai rétrogradé de noyau. Je suis passé en 2.6.18, et la … un acx installé en 3 minutes. Et firmware compris !!!

Un iwconfig et un ifconfig :

[code]wlan0 IEEE 802.11b+/g+ ESSID:“Livebox-xxxx” Nickname:"acx v0.3.35"
Mode:Managed Frequency:2.412 GHz Access Point: 00:xx:xx:xx:xx:xx
Bit Rate:48 Mb/s Tx-Power=15 dBm Sensitivity=1/3
Retry min limit:7 RTS thr:off
Encryption key:xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xx Security mode:restricted
Power Management:off
Link Quality=38/100 Signal level=13/100 Noise level=0/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

wlan0 Lien encap:Ethernet HWaddr 00:xx:xx:xx:xx:xx
inet adr:192.168.1.69 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::20c:f6ff:fe00:dcbb/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:436 errors:0 dropped:0 overruns:0 frame:0
TX packets:336 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:259663 (253.5 KiB) TX bytes:36364 (35.5 KiB)
Interruption:185 Adresse de base:0xe000
[/code]

Les résultats ne sont pas top, mais avec une carte sitecom acheté a mammouth à15euros il y a 2ans, et une livebox se trouvant à l’etage d’en dessous … ca pourrais etre pire je pense. Mais au moins, je n’ai aucunes erreurs de transmission … Reste à voir comment ca va reagir sur un serveur (passerelle, web, ftp …) avec pas mal de trafic :unamused:

Qu’en pensez vous ?

Merci
Ced

j’en pense que j’ai la même famille d’erreurs sur plusieurs modules (iscsitarget-module et unionfs) et qu’il semble que le noyau varie trop vite pour que ça suive. Je vais faire un fil pause café pour y réflechir et collecter un peu les hacks que les gens ont pu trouver sur les manières de compiler ces sources là quand ça plante.