[Debian] Probleme avec 'make modules'
Fermé
duedos
Messages postés
8
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
18 décembre 2006
-
8 nov. 2006 à 11:40
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 16 mai 2007 à 14:13
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 16 mai 2007 à 14:13
A voir également:
- [Debian] Probleme avec 'make modules'
- Make mkv - Télécharger - TV & Vidéo
- Free make - Télécharger - Conversion & Codecs
- Make human - Télécharger - 3D
- Windows movie make - Télécharger - Montage & Édition
- Mettre debian en français ✓ - Forum Linux / Unix
19 réponses
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
15 mai 2007 à 10:45
15 mai 2007 à 10:45
Vérifie au préalable que "make" est installé :
Tout ce qui suit est à faire en root (ou précédé d'un sudo si tu utilises une ubuntu). Si make n'est pas installé, mets-le. Sous debian et dérivés (ubuntu, knoppix...) :
Si quand tu tentes de compiler ton module, il te dit que la cible modules manque, c'est soit :
1- qu'il manque les kernels headers,
2- qu'il manque un lien symbolique vers tes kernels headers.
1) Si tu n'as pas compilé ton propre noyau, commence par installer les headers de ton noyau : sous debian et dérivés :
2) Crée si nécessaire ensuite les deux liens symboliques suivants :
A partir de là la compilation de ton module devrait marcher...
Bonne chance
(mando@aldur) (~) $ which make /usr/bin/make
Tout ce qui suit est à faire en root (ou précédé d'un sudo si tu utilises une ubuntu). Si make n'est pas installé, mets-le. Sous debian et dérivés (ubuntu, knoppix...) :
aptitude install make
Si quand tu tentes de compiler ton module, il te dit que la cible modules manque, c'est soit :
1- qu'il manque les kernels headers,
2- qu'il manque un lien symbolique vers tes kernels headers.
1) Si tu n'as pas compilé ton propre noyau, commence par installer les headers de ton noyau : sous debian et dérivés :
aptitude install linux-headers-`uname -r`
2) Crée si nécessaire ensuite les deux liens symboliques suivants :
ln -s /usr/src/linux-headers-`uname -r` /usr/src/linux ln -s /usr/src/linux-headers-`uname -r` /lib/modules/`uname -r`/build/
A partir de là la compilation de ton module devrait marcher...
Bonne chance
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
15 mai 2007 à 11:21
15 mai 2007 à 11:21
Que donnent
Fais tu ta compilation en root ? As tu créé le lien symbolique /usr/src/linux comme je t'ai dit ?
A priori /le/repertoire/de/tes/sources/de/noyau doit être le répertoire /usr/src/linux-sources-`uname -r`
A noter que tu n'es absolument pas obligé d'utiliser les sources de noyau fournies par debian, et encore moins la version actuellement utilisée par debian. En particulier, tu peux tout à fait prendre la dernière version de noyau sur https://www.kernel.org/
Enfin, plutôt que d'utiliser make menuconfig, puisque tu es sous debian, utilises la commande make-kpkg qui est beaucoup plus pratique. Elle te permet de mettre ton noyau dans un paquet debian, de mettre à jour ton grub etc...
http://lea-linux.org/cached/index/Kernel-kernel_debian.html
Une fois ton noyau compilé et installé (avec dpkg -i), reboote dessus mais surtout, garde ton noyau actuel au cas où tu aurais oublié des choses importantes dans ton make menuconfig. En particulier il se peut que le noyau que tu compiles de boote pas s'il manque des fonctionnalités "vitales".
Bonne chance
updatedb locate devfs_fs_kernel.h
Fais tu ta compilation en root ? As tu créé le lien symbolique /usr/src/linux comme je t'ai dit ?
ln -s /le/repertoire/de/tes/sources/de/noyau /usr/src/linux
A priori /le/repertoire/de/tes/sources/de/noyau doit être le répertoire /usr/src/linux-sources-`uname -r`
A noter que tu n'es absolument pas obligé d'utiliser les sources de noyau fournies par debian, et encore moins la version actuellement utilisée par debian. En particulier, tu peux tout à fait prendre la dernière version de noyau sur https://www.kernel.org/
Enfin, plutôt que d'utiliser make menuconfig, puisque tu es sous debian, utilises la commande make-kpkg qui est beaucoup plus pratique. Elle te permet de mettre ton noyau dans un paquet debian, de mettre à jour ton grub etc...
http://lea-linux.org/cached/index/Kernel-kernel_debian.html
Une fois ton noyau compilé et installé (avec dpkg -i), reboote dessus mais surtout, garde ton noyau actuel au cas où tu aurais oublié des choses importantes dans ton make menuconfig. En particulier il se peut que le noyau que tu compiles de boote pas s'il manque des fonctionnalités "vitales".
Bonne chance
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
9 nov. 2006 à 20:58
9 nov. 2006 à 20:58
Tu as installé make ?
Dans ton Makefile il y a bien une cible modules ?
Bonne chance
which make
Dans ton Makefile il y a bien une cible modules ?
grep -nri modules Makefile
Bonne chance
Bonjour, je suis confronté au même problème et je souhaiterais savoir si une personne a déja réussi à compiler les drivers pour Diva server sous linux.
Si oui, pourrait il m'aider.
Si oui, pourrait il m'aider.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut à toi merci de m'avoir répondu.
Alors make est installé, c'est sur. Et pour être plus précis je vais te dire ce que j'ai fais.
Je suis sous la ETCH qui est passé en version stable donc j'ai la version 2.6.18-4-686. Et donc comme il était dit sur le site eicon pour l'installer et la compilation du driver DIVA SERVER pour linux; il faut télécharger le kernel source qui correspond à ma version de mon noyaux.
Pour cela j'ai fais un apt-get install linux-source-2.6.18, qui correspond à ma version du noyau. Je suis allé sous /usr/src/. Fais un tar xjf linuxXXX. Püis j'ai crée un lien symbolique linux vers ce dossier. Ensuite je suis allé dans le dossier symbolique.
Saisie cette commande => make meneconfig => selectionner les options voulues pour la compilation du driver DIVA SERVER => make
Au final j'obtiens ce message d'erreur lors de la compilation.
drivers/isdn/capi/capi.c:42:35: error: linux/devfs_fs_kernel.h: Aucun fichier ou répertoire de ce type
drivers/isdn/capi/capi.c: In function ‘capi_init’:
drivers/isdn/capi/capi.c:1513: warning: implicit declaration of function ‘devfs_mk_cdev’
drivers/isdn/capi/capi.c: In function ‘capi_exit’:
drivers/isdn/capi/capi.c:1545: warning: implicit declaration of function ‘devfs_remove’
Concernant ta question sur les hearders j'ai pas isntallé les hearders. Je vais essayer pour voir.
En tout cas je te remercie de ton soutien, je me sens bcp moins seul !!! lol !!!
Alors make est installé, c'est sur. Et pour être plus précis je vais te dire ce que j'ai fais.
Je suis sous la ETCH qui est passé en version stable donc j'ai la version 2.6.18-4-686. Et donc comme il était dit sur le site eicon pour l'installer et la compilation du driver DIVA SERVER pour linux; il faut télécharger le kernel source qui correspond à ma version de mon noyaux.
Pour cela j'ai fais un apt-get install linux-source-2.6.18, qui correspond à ma version du noyau. Je suis allé sous /usr/src/. Fais un tar xjf linuxXXX. Püis j'ai crée un lien symbolique linux vers ce dossier. Ensuite je suis allé dans le dossier symbolique.
Saisie cette commande => make meneconfig => selectionner les options voulues pour la compilation du driver DIVA SERVER => make
Au final j'obtiens ce message d'erreur lors de la compilation.
drivers/isdn/capi/capi.c:42:35: error: linux/devfs_fs_kernel.h: Aucun fichier ou répertoire de ce type
drivers/isdn/capi/capi.c: In function ‘capi_init’:
drivers/isdn/capi/capi.c:1513: warning: implicit declaration of function ‘devfs_mk_cdev’
drivers/isdn/capi/capi.c: In function ‘capi_exit’:
drivers/isdn/capi/capi.c:1545: warning: implicit declaration of function ‘devfs_remove’
Concernant ta question sur les hearders j'ai pas isntallé les hearders. Je vais essayer pour voir.
En tout cas je te remercie de ton soutien, je me sens bcp moins seul !!! lol !!!
updatedb
locate devfs_fs_kernel.h => ca donne rien.
J'ai essayé de faire tes liens symbolique vers les hearders mais c'est pire qu'avant car la compilation s'arrête au tout début.
J'ai suivi le tuto qui est sur le site de eicon pour compiler les drivers DIVA SERVER for Linux. Ils disent de télécharger les kernels sources, pui s de créer un lien symbolique linux vers ce kernel source. Et se rendre dans le dossier ou on a téléchargé les drivers et faire ./Build.
Cette commande me retourne cette erreur :
drivers/isdn/capi/capi.c:42:35: error: linux/devfs_fs_kernel.h: Aucun fichier ou répertoire de ce type
drivers/isdn/capi/capi.c: In function ‘capi_init’:
drivers/isdn/capi/capi.c:1513: warning: implicit declaration of function ‘devfs_mk_cdev’
drivers/isdn/capi/capi.c: In function ‘capi_exit’:
drivers/isdn/capi/capi.c:1545: warning: implicit declaration of function ‘devfs_remove’
Je suis en root et j'ai crée un lien symbolique comme tu as dit. Je te tiens au courant du déroulement.
locate devfs_fs_kernel.h => ca donne rien.
J'ai essayé de faire tes liens symbolique vers les hearders mais c'est pire qu'avant car la compilation s'arrête au tout début.
J'ai suivi le tuto qui est sur le site de eicon pour compiler les drivers DIVA SERVER for Linux. Ils disent de télécharger les kernels sources, pui s de créer un lien symbolique linux vers ce kernel source. Et se rendre dans le dossier ou on a téléchargé les drivers et faire ./Build.
Cette commande me retourne cette erreur :
drivers/isdn/capi/capi.c:42:35: error: linux/devfs_fs_kernel.h: Aucun fichier ou répertoire de ce type
drivers/isdn/capi/capi.c: In function ‘capi_init’:
drivers/isdn/capi/capi.c:1513: warning: implicit declaration of function ‘devfs_mk_cdev’
drivers/isdn/capi/capi.c: In function ‘capi_exit’:
drivers/isdn/capi/capi.c:1545: warning: implicit declaration of function ‘devfs_remove’
Je suis en root et j'ai crée un lien symbolique comme tu as dit. Je te tiens au courant du déroulement.
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
15 mai 2007 à 14:12
15 mai 2007 à 14:12
Bon je t'explique le concept. Le module que tu essayes de compiler fait appel à des fonctions du noyau. Concrètement un noyau est écrit en C et comporte :
- des fichiers "déclaratifs" appelés headers (.h), qui donnent les fonctions implémentées dans le noyau. Cet ensemble de fichier correspond au paquet linux-headers.
- des fichiers de sources écrit en langage C (fichiers .c) qui implémentent ces fonctions. La paquet linux-sources comprend cet ensemble de fichiers et les headers. Il est donc a priori inutile d'installer le paquet linux-header si tu as déjà le paquet linux-sources.
Quand tu compiles un noyau, tu formes un fichier binaire (l'image associée au noyau) qui découle de ces fichiers .c et .h. C'est cette fameuse image qui est utilisée lorsque tu démarres sur ledit noyau. Cette image est en fait dans le paquet linux-image.
Si tu souhaites ajouter des fonctionnalités qui ne sont pas dans le noyau debian standard tu as besoin des linux-sources et de recompiler un noyau, de préférence avec la commande make-kpkg. Si tu as juste besoin des headers (ce qui est le cas dans la grande majorité des cas) tu peux te contenter des paquets linux-headers et linux-image, ce qui évite en particulier d'avoir à recompiler un noyau.
Donc on va faire les choses dans l'ordre, à savoir commencer par compiler un nouveau noyau puisque tu sembles avoir ebsoin de choses supplémentaires
As-tu déjà fait le make-kpkg ?
Est-ce que ce nouveau noyau est bootable ?
Pour compiler un noyau ou un module, on utilise un makefile, qui s'occupe a priori de passer les bonnes options pour que tout compile correctement. En particulier une option d'include s'occupe de dire ou se trouvent les headers du style devfs_fs_kernel.h (c'est l'option -I ou -isystem de gcc).
La plupart des modules cherchent les headers dans /usr/src/linux et c'est pourquoi il est important de faire le lien /usr/src/linux.
As-tu créé ce lien ?
Si oui on peut tenter la compilation. En général il faut taper un truc du genre :
L'erreur que as est un problème d'include, normalement évité par le ./configure ou le lien symbolique. Sinon il faut préciser dans le Makefile d'aller chercher dans ton répertoire de sources...
Bonne chance
- des fichiers "déclaratifs" appelés headers (.h), qui donnent les fonctions implémentées dans le noyau. Cet ensemble de fichier correspond au paquet linux-headers.
- des fichiers de sources écrit en langage C (fichiers .c) qui implémentent ces fonctions. La paquet linux-sources comprend cet ensemble de fichiers et les headers. Il est donc a priori inutile d'installer le paquet linux-header si tu as déjà le paquet linux-sources.
Quand tu compiles un noyau, tu formes un fichier binaire (l'image associée au noyau) qui découle de ces fichiers .c et .h. C'est cette fameuse image qui est utilisée lorsque tu démarres sur ledit noyau. Cette image est en fait dans le paquet linux-image.
Si tu souhaites ajouter des fonctionnalités qui ne sont pas dans le noyau debian standard tu as besoin des linux-sources et de recompiler un noyau, de préférence avec la commande make-kpkg. Si tu as juste besoin des headers (ce qui est le cas dans la grande majorité des cas) tu peux te contenter des paquets linux-headers et linux-image, ce qui évite en particulier d'avoir à recompiler un noyau.
Donc on va faire les choses dans l'ordre, à savoir commencer par compiler un nouveau noyau puisque tu sembles avoir ebsoin de choses supplémentaires
As-tu déjà fait le make-kpkg ?
Est-ce que ce nouveau noyau est bootable ?
Pour compiler un noyau ou un module, on utilise un makefile, qui s'occupe a priori de passer les bonnes options pour que tout compile correctement. En particulier une option d'include s'occupe de dire ou se trouvent les headers du style devfs_fs_kernel.h (c'est l'option -I ou -isystem de gcc).
La plupart des modules cherchent les headers dans /usr/src/linux et c'est pourquoi il est important de faire le lien /usr/src/linux.
As-tu créé ce lien ?
Si oui on peut tenter la compilation. En général il faut taper un truc du genre :
cd /le/repertoire/du/module ./configure make make install
L'erreur que as est un problème d'include, normalement évité par le ./configure ou le lien symbolique. Sinon il faut préciser dans le Makefile d'aller chercher dans ton répertoire de sources...
Bonne chance
Re, comme tu prend la peine de m'expliquer en détails je vais faire de même alors:
Objectif: Installer les drivers DIVA SERVER 4BRI PCI V2 sur Debian ETCH Stable, Noyau 2.6.18-4-686. Tout cela dans le but de l'utiliser pour mettre en place Hylafax, serveur de fax sous linux.
J'ai trouvé sur le site de eicon, Diva Server, un tuto pour installer les drivers de ce truc sous linux voici le lien:
http://www.eicon.com/support/helpweb/slnxen/hylafax.asp
1/ J'ai fais ce qu'il a été demandé c'est à dire télécharger les derniers drivers for diva server pour linux debian.
2/ Ensuite je suis passer à la compilation des drivers de DIVA SERVER pour Linux. Mais avant cela il est démandé des prérequis donc j'ai installé les paquets make, g++, module-init-tools, libncurses5, xinetd, libncurses5-dev comme prérequis. Et comme kernel source j'ai installé linux-source-2.6.18.
3/ Ensuite tar xjf linux-source-2.6.18.bz2 => ln -s /usr/src/ linux-source-2.6.18 /usr/src/linux . J’ai crée un lien symbolique linux vers linux-source-2.6.18 comme a été demandé. Donc dans le dossier /usr/src/, nous avons :
hylafax:/usr/src# ls
kernel-patches linux-source-2.6.18 linux-source-2.6.18.tar.bz2 linux
4/ Partie compilation
hylafax:/telecharger# dpkg -i divas4linux_EICON-106.10-1.deb
| Please start Eicon Diva Build Wizard |
| (cd /usr/lib/eicon/divas/src; ./Build) |
| to build and install drivers for Eicon Diva ISDN Adapters |
| - |
| Please start Eicon Diva Configuration Wizard |
| (/usr/lib/eicon/divas/Config) |
| to detect and configure all installed Eicon Diva ISDN Adapters |
| - |
| Diva HTTP Configuration Server started at port '10005' |
| To enable Web interface access please set password in the file |
| '/usr/lib/eicon/divas/httpd/login/login'
Voilà ce que j’ai eu à la fin de l’installation du driver.
5/ Compilation du driver DIVA SERVER pour Linux. Je me suis rendu /usr/lib/eicon/divas/src et tapez ./Build . A la suite de cette commande j’obtiens ce message d’erreurs.
drivers/isdn/capi/capi.c:42:35: error: linux/devfs_fs_kernel.h: Aucun fichier ou répertoire de ce type
drivers/isdn/capi/capi.c: In function ‘capi_init’:
drivers/isdn/capi/capi.c:1513: warning: implicit declaration of function ‘devfs_mk_cdev’
drivers/isdn/capi/capi.c: In function ‘capi_exit’:
drivers/isdn/capi/capi.c:1545: warning: implicit declaration of function ‘devfs_remove’
Voilà ce qu’il en est. Merci de ton aide. Je poursuis dans cette voie.
Objectif: Installer les drivers DIVA SERVER 4BRI PCI V2 sur Debian ETCH Stable, Noyau 2.6.18-4-686. Tout cela dans le but de l'utiliser pour mettre en place Hylafax, serveur de fax sous linux.
J'ai trouvé sur le site de eicon, Diva Server, un tuto pour installer les drivers de ce truc sous linux voici le lien:
http://www.eicon.com/support/helpweb/slnxen/hylafax.asp
1/ J'ai fais ce qu'il a été demandé c'est à dire télécharger les derniers drivers for diva server pour linux debian.
2/ Ensuite je suis passer à la compilation des drivers de DIVA SERVER pour Linux. Mais avant cela il est démandé des prérequis donc j'ai installé les paquets make, g++, module-init-tools, libncurses5, xinetd, libncurses5-dev comme prérequis. Et comme kernel source j'ai installé linux-source-2.6.18.
3/ Ensuite tar xjf linux-source-2.6.18.bz2 => ln -s /usr/src/ linux-source-2.6.18 /usr/src/linux . J’ai crée un lien symbolique linux vers linux-source-2.6.18 comme a été demandé. Donc dans le dossier /usr/src/, nous avons :
hylafax:/usr/src# ls
kernel-patches linux-source-2.6.18 linux-source-2.6.18.tar.bz2 linux
4/ Partie compilation
hylafax:/telecharger# dpkg -i divas4linux_EICON-106.10-1.deb
| Please start Eicon Diva Build Wizard |
| (cd /usr/lib/eicon/divas/src; ./Build) |
| to build and install drivers for Eicon Diva ISDN Adapters |
| - |
| Please start Eicon Diva Configuration Wizard |
| (/usr/lib/eicon/divas/Config) |
| to detect and configure all installed Eicon Diva ISDN Adapters |
| - |
| Diva HTTP Configuration Server started at port '10005' |
| To enable Web interface access please set password in the file |
| '/usr/lib/eicon/divas/httpd/login/login'
Voilà ce que j’ai eu à la fin de l’installation du driver.
5/ Compilation du driver DIVA SERVER pour Linux. Je me suis rendu /usr/lib/eicon/divas/src et tapez ./Build . A la suite de cette commande j’obtiens ce message d’erreurs.
drivers/isdn/capi/capi.c:42:35: error: linux/devfs_fs_kernel.h: Aucun fichier ou répertoire de ce type
drivers/isdn/capi/capi.c: In function ‘capi_init’:
drivers/isdn/capi/capi.c:1513: warning: implicit declaration of function ‘devfs_mk_cdev’
drivers/isdn/capi/capi.c: In function ‘capi_exit’:
drivers/isdn/capi/capi.c:1545: warning: implicit declaration of function ‘devfs_remove’
Voilà ce qu’il en est. Merci de ton aide. Je poursuis dans cette voie.
Voici ce que retourne la commande make kpkg dans le dossier /usr/src/linux/
scripts/kconfig/conf -s arch/i386/Kconfig
***
*** You have not yet configured your kernel!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make[2]: *** [silentoldconfig] Erreur 1
make[1]: *** [silentoldconfig] Erreur 2
make: *** Pas de règle pour fabriquer la cible « include/config/auto.conf », nécessaire pour « include/config/kernel.release ». Arrêt.
scripts/kconfig/conf -s arch/i386/Kconfig
***
*** You have not yet configured your kernel!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make[2]: *** [silentoldconfig] Erreur 1
make[1]: *** [silentoldconfig] Erreur 2
make: *** Pas de règle pour fabriquer la cible « include/config/auto.conf », nécessaire pour « include/config/kernel.release ». Arrêt.
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
16 mai 2007 à 01:34
16 mai 2007 à 01:34
Pour le kernel tu es sensé faire avant le make-kpkg le fameux make menuconfig. Concrètement make menuconfig lance une interface ncurses en vue de générer dans /usr/src/linux un fichier .config (récupérable pour les compilation de kernels ultérieurs avec un make oldconfig). make-kpkg t'envoie aux pelotes car apparemment tu as sauté cette étape.
Une fois que tu arriveras à booter sur ton nouveau kernel, et si la compilation de diva plante toujours, peux-tu me donner le contenu du fichier /usr/lib/eicon/divas/src/Build (s'il n'est pas trop long). En particulier il faudrait voir si tu ne peux pas définir des répertoires d'include.
Bonne chance
Une fois que tu arriveras à booter sur ton nouveau kernel, et si la compilation de diva plante toujours, peux-tu me donner le contenu du fichier /usr/lib/eicon/divas/src/Build (s'il n'est pas trop long). En particulier il faudrait voir si tu ne peux pas définir des répertoires d'include.
Bonne chance
Salut!!! Bon je peux te passer le fichier Build mais il fait plus de 1400 lignes.... mdr!!!!
Par contre après un formatage j'ai fait un make menuconfig => make => make install. J'ai eu aucune erreurs. Donc la je poursuis. Pour voir ce que ca donne.
Si tu veux le fichier ./Build y a pas de souci mais la je continue sur une autre voie je te tiens au courant.
Bye.
Par contre après un formatage j'ai fait un make menuconfig => make => make install. J'ai eu aucune erreurs. Donc la je poursuis. Pour voir ce que ca donne.
Si tu veux le fichier ./Build y a pas de souci mais la je continue sur une autre voie je te tiens au courant.
Bye.
Re moi bon quand j'ai fais un make menuconfig il y avait possibilité de cocher des cases pour mon DIVA SERVER: je l'ai fais. Ensuite j'ai fais un make => make install et reboot de la machine.
Avant j'avais un message d'erreur qui disait qu'un certain fichier n'existait pas , depuis le make menuconfig qui a fonctionné on trouve ce fichier qui je pense pense à été générer.
Now quand je lance ./Build , ca plante tjs et j'ai tjs le message d'erreur suivant :( .
drivers/isdn/capi/capi.c:42:35: error: linux/devfs_fs_kernel.h: Aucun fichier ou répertoire de ce type
drivers/isdn/capi/capi.c: In function ‘capi_init’:
drivers/isdn/capi/capi.c:1513: warning: implicit declaration of function ‘devfs_mk_cdev’
drivers/isdn/capi/capi.c: In function ‘capi_exit’:
drivers/isdn/capi/capi.c:1545: warning: implicit declaration of function ‘devfs_remove’
Alors j'ai installé les headers mais y a rien dedans qui correspondant. Les fichiers qui manquent sont généré par la compilation de make menuconfig non???? ou c'est autre chose?
Avant j'avais un message d'erreur qui disait qu'un certain fichier n'existait pas , depuis le make menuconfig qui a fonctionné on trouve ce fichier qui je pense pense à été générer.
Now quand je lance ./Build , ca plante tjs et j'ai tjs le message d'erreur suivant :( .
drivers/isdn/capi/capi.c:42:35: error: linux/devfs_fs_kernel.h: Aucun fichier ou répertoire de ce type
drivers/isdn/capi/capi.c: In function ‘capi_init’:
drivers/isdn/capi/capi.c:1513: warning: implicit declaration of function ‘devfs_mk_cdev’
drivers/isdn/capi/capi.c: In function ‘capi_exit’:
drivers/isdn/capi/capi.c:1545: warning: implicit declaration of function ‘devfs_remove’
Alors j'ai installé les headers mais y a rien dedans qui correspondant. Les fichiers qui manquent sont généré par la compilation de make menuconfig non???? ou c'est autre chose?
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
16 mai 2007 à 09:59
16 mai 2007 à 09:59
Mmmmh effectivement il n'a pas l'air d'être dans le paquet linux-headers (ou linux-sources) ou linux-sources (comprendre les sources fournies par debian). Par contre il est présent dans les noyaux disponibles sur https://www.kernel.org/
Bonne chance
Bonne chance
Comment je peux faire alors? avec le kernel sur kernel.org? Faire un make menunconfig etc...c'est à dire faire la même procédure?
Si je comprend bien mon erreur, je bloque à la compilation du driver parce qu'il me manque des fichiers.
Peut etre que c'est configurable sur mon menuconfig?
Si je comprend bien mon erreur, je bloque à la compilation du driver parce qu'il me manque des fichiers.
Peut etre que c'est configurable sur mon menuconfig?
Phiphi57
Messages postés
789
Date d'inscription
samedi 26 février 2005
Statut
Contributeur
Dernière intervention
19 juillet 2009
295
16 mai 2007 à 10:37
16 mai 2007 à 10:37
Salut,
pour compiler un kernel récupéré sur kernel.org, voici la marche a suirvre à préférer pour debian :
1/ récupérer les sources et les mettre dans n'importe quel dossier a toi ...
2/ tar xvfj linux-***.tar.bz2
3/ cd linux-2.6.21 (par exemple...)
4/ make xconfig ou make menuconfig ou make oldconfig , enregistrer le fichier .config
5/ fakeroot make-kpkg clean (nettoyer, on sait jamais)
6/ fakeroot make-kpkg --revision 1 kernel-image (ou kernel_image, je ne sais plus. pour les options, man make-kpkg)
7/ passer en root et make-kpkg modules_image
8/ cd .. && ls -rtl
9/ tu dois voir 2 fichiers .deb : on installe d'abord le nouveau noyau, puis les modules dans la foulée
dpkg -i linux-image*.deb
dpkg -i toto.deb
tu peux faire les 6 premieres étapes en tant que simple utilisateur.
L'avantage de cette approche est d'installer le noyau comme un paquet, géré par apt-get et dpkg, idem pour les modules. Je suis toujours cette approche pour les driver nvidia et le noyau entre autre. Ca doit donc pouvoir aussi fonctionner pour toi ?
Phiphi
pour compiler un kernel récupéré sur kernel.org, voici la marche a suirvre à préférer pour debian :
1/ récupérer les sources et les mettre dans n'importe quel dossier a toi ...
2/ tar xvfj linux-***.tar.bz2
3/ cd linux-2.6.21 (par exemple...)
4/ make xconfig ou make menuconfig ou make oldconfig , enregistrer le fichier .config
5/ fakeroot make-kpkg clean (nettoyer, on sait jamais)
6/ fakeroot make-kpkg --revision 1 kernel-image (ou kernel_image, je ne sais plus. pour les options, man make-kpkg)
7/ passer en root et make-kpkg modules_image
8/ cd .. && ls -rtl
9/ tu dois voir 2 fichiers .deb : on installe d'abord le nouveau noyau, puis les modules dans la foulée
dpkg -i linux-image*.deb
dpkg -i toto.deb
tu peux faire les 6 premieres étapes en tant que simple utilisateur.
L'avantage de cette approche est d'installer le noyau comme un paquet, géré par apt-get et dpkg, idem pour les modules. Je suis toujours cette approche pour les driver nvidia et le noyau entre autre. Ca doit donc pouvoir aussi fonctionner pour toi ?
Phiphi
effectivement il est bien dans le kernel que j'ai récupéré sur le site. Mais comment je dois faire pour l'utiliser à la place du kernel source que j'ai pris par apt-get?
Je dois le mettre dans /usr/src/ puis le décompresser? Ensuite un make menuconfig => make => make install ?
Merci encore de ton aide.
Je dois le mettre dans /usr/src/ puis le décompresser? Ensuite un make menuconfig => make => make install ?
Merci encore de ton aide.
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
16 mai 2007 à 14:04
16 mai 2007 à 14:04
Oui c'est exactement pareil qu'avec les sources de kernels que tu as récupéré par apt (make menuconfig, make-kpkg, dpkg -i etc... comme Phiphi a dit). Concrètement le paquet debian ne fait qu'installer l'équivalent du tar.gz que tu as récupéré sur kernel.org et deux trois dépendances pour compiler ton noyau dans de bonnes conditions.
Pense bien à corriger le lien /usr/src/linux en conséquence. Suis le tuto que je t'ai donné dans <5> c'est détaillé.
Ensuite tu rebootes sur ce noyau et tu compiles ton module.
Bonne chance
Pense bien à corriger le lien /usr/src/linux en conséquence. Suis le tuto que je t'ai donné dans <5> c'est détaillé.
Ensuite tu rebootes sur ce noyau et tu compiles ton module.
Bonne chance
Mais avant d'aller plus loin, ai je besoin d'aller aussi loin? mdr!!
Car le tuto sur le site de eicon dit qu'ils ont besoin que du kernel source et pas du noyau recompilé. Je comprend rien.
En tout cas je vais essayer de recompiler le noyau et après recompiler les drivers DIVA SERVER.
On verra bien ce que ça donnera à la fin.
Merci de vos aides. J'apprécie.
Car le tuto sur le site de eicon dit qu'ils ont besoin que du kernel source et pas du noyau recompilé. Je comprend rien.
En tout cas je vais essayer de recompiler le noyau et après recompiler les drivers DIVA SERVER.
On verra bien ce que ça donnera à la fin.
Merci de vos aides. J'apprécie.
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
16 mai 2007 à 14:13
16 mai 2007 à 14:13
Bah si tu rajoutes des trucs via make menuconfig oui il faut le recompiler, bien sûr. De toute façon vu que tu utilises des headers qui ne sont pas dans le noyau fourni par debian (et donc des fonctions qui ne sont pas implémentées dans le noyau debian, cf <7>) il est clair que tu dois compiler le noyau que tu as télécharger sur kernel.org...
Bonne chance
Bonne chance