Forum Linux.noyau chargement d'un pilote

Posté par .
Tags : aucun
0
12
mar.
2006
bonjour

Je veux utiliser (charger) un nouveau pilote de la carte réseau dans le noyau Linux redhat9 (noyau 2.4.20-8), j’ai utilisé le Mikefile si dessous pour compiler le module pilote. j’ai obtenu le module objet(module.o), mais lors du chargement du module en utilisant insmod module.o Le compilateur affiche l’erreur suivante: couldn’t find the kernel version the module was compiled for. Je veux savoir où est le problème et quelle est la solution. #------------ Makefile ------------------ CFLAGS = -Wall -D__KERNEL__ -DMODULES -I/usr/src/linux-2.4.20-8/include -c #OBJS = module.c CC =gcc all : $(CC) $(CFLAGS)module.c #----------------------------------


merci.
  • # une idée comme ca...

    Posté par . Évalué à 1.

    1°) essayer avec modprobe module au lieu de insmod module
    car il faut parfois passer des options à insmod

    si tout ce passe bien il te rend la main sans plus de commentaire

    2°) compiler un module pour un peripherique se fait souvent en rajoutant (activant) des options dans le noyau.

    Il faut donc parfois :
    - avoir les sources du noyau,
    - copier les eventuels fichiers du fournisseur dans les dossiers sources
    - aller dans le dossier contenant les sources (/usr/src/kernelxxxxx)
    - faire un make menuconfig (ou qqch dans le genre, ca fait longtemps que je n'ai pas recompiler)
    - activer les options correspondant à ta machine (mais si tu ne sais pas ne decoche pas)
    en < M > si tu veux que ce soit un module,
    en < * > si tu veux que ce soit en dur dans le noyau
    - ensuite compiler le noyau et les modules
    - installer le nouveau noyau dans le dossier de boot
    - mettre à jour le chargeur de demarrage (voir la doc) - grub ou lilo

    et pas seulement compiler à part comme pour un programme
    et c'est visiblement ce que fait le makefile que tu cite

    #------------ Makefile ------------------
    CFLAGS = -Wall -D__KERNEL__ -DMODULES -I/usr/src/linux-2.4.20-8/include -c
    #OBJS = module.c
    CC =gcc

    all : $(CC) $(CFLAGS)module.c
    #----------------------------------

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.