Problème de compilation Kernel

Résolu/Fermé
JayFabouille - 25 oct. 2008 à 14:07
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 26 oct. 2008 à 16:14
Bonjour, étant désespéré et ayant cherché sur google pendant un certaint temps, je vous expose mon (gros?) problème:

Je suis sous Mandriva 2008 Spring, et je viens d'acheter une antenne Wifi et la carte qui va avec. Le materiel est reconnu, sur ce point, aucun problème.

Le cd fourni avec le produit contient le driver Linux, et m'indique qu'il faut compiler.
J'ai les sources qui correspondent à mon kernel (2.6.24.7-desktop586-1mnb)




Le fichier README, inclut avec le pilote m'indique la marche à suivre:

For 2.6 series kernel:
a.  run 'cd STA/Module'
        'cp ./2.6.x/Makefile .'
        'cp ./2.6.x/load .'

b.  $make -C /path/to/source SUBDIRS=$PWD modules
    Where /path/to/source is the path to the source directory for the (configured and built) target kernel.

c.  run '/sbin/insmod rt2500.ko'  (as root)
        '/sbin/ifconfig ra0 inet YOUR_IP up'


Mon problème intervient au moment de la compilation.

De ce que j'ai compris, "/path/to/source/" doit être remplacé par l'emplacement ou se situe les sources de mon kernel.
Le commande que j'ai exécuter été donc:

make -C /usr/src/linux-2.6.24.7-desktop-1mnb/ SUBDIRS=$PWD modules


Et boum! Erreur :( :

[root@localhost Module]# make -C /usr/src/linux-2.6.24.7-desktop-1mnb/ SUBDIRS=$PWD modules
make: entrant dans le répertoire « /usr/src/linux-2.6.24.7-desktop-1mnb »
  CC [M]  /home/fabien/Desktop/OVISLINJ/Module/rtmp_main.o
Dans le fichier inclus à partir de /home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:38:
/home/fabien/Desktop/OVISLINJ/Module/rt_config.h:53:40: erreur: linux/config.h : Aucun fichier ou répertoire de ce type
Dans le fichier inclus à partir de /home/fabien/Desktop/OVISLINJ/Module/mlme.h:39,
          à partir de /home/fabien/Desktop/OVISLINJ/Module/rtmp.h:41,
          à partir de /home/fabien/Desktop/OVISLINJ/Module/rt_config.h:138,
          à partir de /home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:38:
/home/fabien/Desktop/OVISLINJ/Module/oid.h:98:5: attention : « RT2500_DBG » n'est pas défini
In file included from /home/fabien/Desktop/OVISLINJ/Module/mlme.h:39,
                 from /home/fabien/Desktop/OVISLINJ/Module/rtmp.h:41,
                 from /home/fabien/Desktop/OVISLINJ/Module/rt_config.h:138,
                 from /home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:38:
/home/fabien/Desktop/OVISLINJ/Module/oid.h:276: attention : ‘packed’ attribute ignored
/home/fabien/Desktop/OVISLINJ/Module/oid.h:277: attention : ‘packed’ attribute ignored
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c: In function ‘RT2500_probe’:
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:121: erreur: ‘struct pci_dev’ has no member named ‘slot_name’
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:134: erreur: implicit declaration of function ‘SET_MODULE_OWNER’
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:163: attention : passing argument 1 of ‘readl’ makes pointer from integer without a cast
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:164: attention : passing argument 1 of ‘readl’ makes pointer from integer without a cast
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:182: erreur: ‘struct net_device’ has no member named ‘get_wireless_stats’
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:198: erreur: ‘dev_base’ undeclared (first use in this function)
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:198: erreur: (Each undeclared identifier is reported only once
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:198: erreur: for each function it appears in.)
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:198: erreur: ‘struct net_device’ has no member named ‘next’
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c: In function ‘RT2500_open’:
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:269: erreur: ‘SA_SHIRQ’ undeclared (first use in this function)
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:269: attention : passing argument 2 of ‘request_irq’ from incompatible pointer type
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c: In function ‘RTMPIsr’:
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:465: attention : passing argument 1 of ‘readl’ makes pointer from integer without a cast
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:466: attention : passing argument 2 of ‘writel’ makes pointer from integer without a cast
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c: In function ‘rt2500_init_module’:
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:782: erreur: implicit declaration of function ‘pci_module_init’
make[1]: *** /home/fabien/Desktop/OVISLINJ/Module/rtmp_main.o Erreur 1
make: *** [_module_/home/fabien/Desktop/OVISLINJ/Module] Erreur 2
make: quittant le répertoire « /usr/src/linux-2.6.24.7-desktop-1mnb »


J'ai analysé l'erreur, et je me suis rendu compte, que l'erreur venait du fichier "rtmp.h", et "rtpm.c". Et si l'erreur vient du pilote fourni, je suis bien avancé.
Je ne m'y connait absolument pas en programmation de headers, mais j'ai trouvé quelquechose:

Dans l'erreur donnée, il a un truc du genre:

/home/fabien/Desktop/OVISLINJ/Module/rt_config.h:53:40: erreur: linux/config.h : Aucun fichier ou répertoire de ce type


J'ai farfouillé un peu dans le fichier "rtpm.h", et j'ai trouvé:

#ifndef __RT_CONFIG_H__
#define __RT_CONFIG_H__

#define PROFILE_PATH                "/etc/Wireless/RT2500STA/RT2500STA.dat"
#define NIC_DEVICE_NAME             "RT2500STA"

/* Operational parameters that are set at compile time. */
#if !defined(__OPTIMIZE__)  ||  !defined(__KERNEL__)
#warning  You must compile this file with the correct options!
#warning  See the last lines of the source file.
#error  You must compile this driver with "-O".
#endif

#include <linux/config.h>  //can delete <= Ligne qui apparament cause l'erreur
#include <linux/module.h>
#include <linux/version.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/timer.h>
#include <linux/errno.h> //can delete 
#include <linux/ioport.h> // can delete
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/pci.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
#include <linux/init.h>  //can delete
#include <linux/delay.h> // can delete
#include <linux/ethtool.h>
#include <linux/wireless.h>
#include <linux/proc_fs.h>
#include <linux/delay.h>
#include <linux/if_arp.h>
#include <linux/ctype.h>


Donc comme le commentaire inscrit que je peux virer cette ligne, je m'empresse de le faire et relance la manip, en espérant que ça marche. Et bien... non:

[root@localhost Module]# make -C /usr/src/linux-2.6.24.7-desktop-1mnb/ SUBDIRS=$PWD modules
make: entrant dans le répertoire « /usr/src/linux-2.6.24.7-desktop-1mnb »
  CC [M]  /home/fabien/Desktop/OVISLINJ/Module/rtmp_main.o
Dans le fichier inclus à partir de /home/fabien/Desktop/OVISLINJ/Module/mlme.h:39,
          à partir de /home/fabien/Desktop/OVISLINJ/Module/rtmp.h:41,
          à partir de /home/fabien/Desktop/OVISLINJ/Module/rt_config.h:138,
          à partir de /home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:38:
/home/fabien/Desktop/OVISLINJ/Module/oid.h:98:5: attention : « RT2500_DBG » n'est pas défini
In file included from /home/fabien/Desktop/OVISLINJ/Module/mlme.h:39,
                 from /home/fabien/Desktop/OVISLINJ/Module/rtmp.h:41,
                 from /home/fabien/Desktop/OVISLINJ/Module/rt_config.h:138,
                 from /home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:38:
/home/fabien/Desktop/OVISLINJ/Module/oid.h:276: attention : ‘packed’ attribute ignored
/home/fabien/Desktop/OVISLINJ/Module/oid.h:277: attention : ‘packed’ attribute ignored
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c: In function ‘RT2500_probe’:
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:121: erreur: ‘struct pci_dev’ has no member named ‘slot_name’
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:134: erreur: implicit declaration of function ‘SET_MODULE_OWNER’
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:163: attention : passing argument 1 of ‘readl’ makes pointer from integer without a cast
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:164: attention : passing argument 1 of ‘readl’ makes pointer from integer without a cast
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:182: erreur: ‘struct net_device’ has no member named ‘get_wireless_stats’
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:198: erreur: ‘dev_base’ undeclared (first use in this function)
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:198: erreur: (Each undeclared identifier is reported only once
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:198: erreur: for each function it appears in.)
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:198: erreur: ‘struct net_device’ has no member named ‘next’
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c: In function ‘RT2500_open’:
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:269: erreur: ‘SA_SHIRQ’ undeclared (first use in this function)
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:269: attention : passing argument 2 of ‘request_irq’ from incompatible pointer type
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c: In function ‘RTMPIsr’:
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:465: attention : passing argument 1 of ‘readl’ makes pointer from integer without a cast
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:466: attention : passing argument 2 of ‘writel’ makes pointer from integer without a cast
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c: In function ‘rt2500_init_module’:
/home/fabien/Desktop/OVISLINJ/Module/rtmp_main.c:782: erreur: implicit declaration of function ‘pci_module_init’
make[1]: *** /home/fabien/Desktop/OVISLINJ/Module/rtmp_main.o Erreur 1
make: *** [_module_/home/fabien/Desktop/OVISLINJ/Module] Erreur 2
make: quittant le répertoire « /usr/src/linux-2.6.24.7-desktop-1mnb »
[root@localhost Module]# ICE default IO error handler doing an exit(), pid = 3129, errno = 11


La il faut avouer que je suis totalement dépassé...
Si vous comprenez quelque chose à mon problème, répondez moi!

P.S
Les caractéristiques de mon matériel:
Internal PCI adaptateur:
EVO-W542PCI
G WIRELESS
PCI ADAPTATEUR
EVOLUTION SERIES

Comptatible, Windows, Mac, Linux...

21 réponses

JayFabouille
26 oct. 2008 à 09:39
Le problème d'installation est résolu, ma carte wifi est reconnue et est fonctionelle, je marque donc mon sujet comme résolu. Je verrai le problème de config plus tard!

Merci pour votre aide ;)
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
26 oct. 2008 à 16:14
Oui en fait je m'y connais pas masses en config de wifi sous Linux.
Il vaudrait mieux que tu postes un nouveau sujet pour ça. Bonne chance!
0