#1 Le 12/12/2006, à 10:26
- Crystal Noir
compilation de modules et kernel ????
Bonjour,
j'ai besoin de mettre ne pratique ce tuto http://doc.ubuntu-fr.org/serveur/raid1_over_ip
Mon pb c'est qu'il n'est pas à jour et je coince lors de la compilation du module drbd.
J'ai beau chercher partout, je ne comprend absolument pas comment faire
je suis sous edgy
Pouvez vous m'aider ?
Dernière modification par Crystal Noir (Le 12/12/2006, à 10:27)
Hors ligne
#2 Le 12/12/2006, à 11:26
- bertrand0
Re : compilation de modules et kernel ????
Voilà, en gros la méthode la plus simple sur edgy et feisty
sudo aptitude install module-assistant
sudo m-a a-i drbd0.7
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#3 Le 12/12/2006, à 11:29
- Crystal Noir
Re : compilation de modules et kernel ????
ah va falloir que j'essaie alors, mais tu peux m'expliquer un peu ces lignes de commandes s'il te plait ?
car je pige pas dans le tuto il recompile carrément le kernel ????
Hors ligne
#4 Le 12/12/2006, à 12:01
- Crystal Noir
Re : compilation de modules et kernel ????
camarche pas ca me dit qu'il n'a pas trouvé les headers alors qu'ils sont installés il me dit de faire un module-assistant prepare mais en fait j'ai déjà les headers alors je pige pas trop. et après il me sort qu'il n'a pas pu mettre en place drbd0.7.
Dernière modification par Crystal Noir (Le 12/12/2006, à 12:02)
Hors ligne
#5 Le 12/12/2006, à 12:20
- bertrand0
Re : compilation de modules et kernel ????
Supposons que tu utilises le noyau du paquet "linux-image-2.6.17-10-generic" alors il te faut le paquet "linux-headers-2.6.17-10-generic"
(tu peux faire "uname -r" pour voir la version en train de tourner)
S'il te dit qu'il ne trouve pas les headers, c'est probablement parce que tu utilises un noyau qui a été mis à jour récemment, et dont les headers ne sont plus disponibles au téléchargement. Tu dois booter dans le noyau le plus à jour disponible (pour l'installer fait un "sudo aptitude install "linux-XXX" où tu remplaces XXX par "generic", ou autre chose en fonction de la variation du noyau que tu utilises pour ton pc). Ceci fait module-assistant arrivera à télécharger tout seul les bons headers.
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#6 Le 12/12/2006, à 12:23
- bertrand0
Re : compilation de modules et kernel ????
ah va falloir que j'essaie alors, mais tu peux m'expliquer un peu ces lignes de commandes s'il te plait ?
car je pige pas dans le tuto il recompile carrément le kernel ????
Non, il ne recompilait que le module, mais il utilisait les outils de compilation du noyau (make-kpkg). module-assistant fait un peu la même chose, mais il le fait tout seul sans qu'on ait besoin de tout lui expliquer. La doc est disponible en tapant "man m-a" ou bien "yelp man:m-a" sous gnome.
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#7 Le 12/12/2006, à 14:11
- Crystal Noir
Re : compilation de modules et kernel ????
Et bien justement je ne comprend pas car le noyau en cours c'est bien le 2.6.17-10-generic
et effectivement quand l'assistant essaies de télécharger les headers, évidemment il me dit que j'ai déjà le header le plus à jour, alors je pige pas trop son pb
et le plus étrange c'est que si je regarde via synaptic, la version du kernel correspondant exactement aux headers installés.
Dernière modification par Crystal Noir (Le 12/12/2006, à 14:19)
Hors ligne
#8 Le 12/12/2006, à 15:34
- Crystal Noir
Re : compilation de modules et kernel ????
Bon j'avance, comme je suis dans une machine de test j'ai réinstallé et là j'ai fait aucun update.
J'ai juste fait :
sudo apt-get install module-assistant
ensuite :
sudo module-assistant prepare
là aucun pb. Ensuit j'ai tapé ta commande, là j'ai plus le pb du header par contre il refuse de me faire le paquet du module et de compiler j'ai cette erreur :
│ │
│ KERNEL_SOURCES=/lib/modules/2.6.17-10-generic/build MODVERSIONS=detect ↑
│ KERNEL=linux-2.6.17-10-generic KDIR=/lib/modules/2.6.17-10-generic/build ▒
│ make[2]: entrant dans le répertoire « /usr/src/modules/drbd/drbd » ▒
│ ▒
│ Calling toplevel makefile of kernel source tree, which I believe is ▒
│ in ▒
│ KDIR=/lib/modules/2.6.17-10-generic/build ▒
│ ▒
│ mv: opérande du fichier cible manquant après `drbd_buildtag.c{.new,}' ▒
│ Pour en savoir davantage, faites: « mv --help ». ▒
│ make[2]: *** [drbd_buildtag.c] Erreur 1 ▒
│ make[2]: quittant le répertoire « /usr/src/modules/drbd/drbd » ▒
│ make[1]: *** [binary-modules] Erreur 2 ▒
│ make[1]: quittant le répertoire « /usr/src/modules/drbd » ▮
│ make: *** [kdist_build] Erreur 2
décidément j'y arriverai pas une idée ?
EDIT : même en faisant les mises à jour cela change rien toujours le même message. Il me manque quelque chose ????
Dernière modification par Crystal Noir (Le 12/12/2006, à 16:04)
Hors ligne
#9 Le 12/12/2006, à 18:23
- bertrand0
Re : compilation de modules et kernel ????
Désolé, cela compile parfaitement chez moi. Pour être précis, j'ai utilisé les paquets linux-image-2.6.17-10-generic version 2.6.17-10.33, drbd0.7-module-source version 0.7.20-1 et 0.7.21-3 (les deux marchent), module-assistant version 0.10.8, et linux-headers-2.6.17-10-generic version 2.6.17-10.33
Je ne peux que suggérer que tu supprimes ton paquet linux-headers-2.6.17-10-generic puis que tu le réinstalles. Il est possible que son contenu ait été modifié quand tu as utilisé make-kpkg dessus.
Dernière modification par bertrand0 (Le 12/12/2006, à 18:31)
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#10 Le 13/12/2006, à 08:29
- Crystal Noir
Re : compilation de modules et kernel ????
et bien je ne comprend pas car moi même avec une install propre de ubuntu edgy avec rien dessus juste la distrib après avoir préparé module assistant via la commande prepare je tombe sur cette erreur
Hors ligne
#11 Le 13/12/2006, à 09:14
- bertrand0
Re : compilation de modules et kernel ????
Tu as essayé de réinstaller le paquet des headers ?
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#12 Le 13/12/2006, à 09:14
- Crystal Noir
Re : compilation de modules et kernel ????
bon moi déjà j'ai le module assistant 0.10.6 et non le 0.10.8 donc il faut que je change, ensuite j'ai tout pareil.
seule chose, ubuntu a aussi installé le linux-headers-2.6.17.10 en plus du generic.
Peut être devrais je juste garder la version generic et virer les autres (y compris pour linux-image) ?
car en fait j'ai une version 10.33 comme toi et j'ai aussi une version 10 tout court tout cela en généric et j'ai une version 10 pas marqué "generic" tout ceci a été installé automatiquement.
quand je dis "10" c'est évidement "2.6.17.10" alors j'sais pas si je dois les virer ou pas.
quand à la version de module assistant moi dans les depots je n'ai que la 0.10.6
Dernière modification par Crystal Noir (Le 13/12/2006, à 09:22)
Hors ligne
#13 Le 13/12/2006, à 09:43
- Crystal Noir
Re : compilation de modules et kernel ????
Bon ben même après avoir installé la version 0.10.8 de module assistant et après avoir désinstallé linux-headers-2.6.7-10-generic en version 2.6.7.10.33 et réinstallé ca fait pareil, je ne comprend pas d'où ca vient.
Meme après une réinstall complète de ubuntu en téléchargeant juste module-assistant et en lui faisant faire un "prepare" car il télécharge tout ce dont il a besoin, cela ne fonctionne pas, je comprend rien
EDIT : Bon ben je n'y arrive vraiment pas, j'vois pas ce qui l'embête. Du coup j'ai une question, tu vas peut être pouvoir me dire :
Est ce que cela peut venir du fait que je tourne sur un ordinateur test sous Vmware ? cela peut avoir nu rapport ? car là je ne vois vraiment pas pourquoi cela ne marche pas.
Dernière modification par Crystal Noir (Le 13/12/2006, à 10:27)
Hors ligne
#14 Le 13/12/2006, à 10:47
- Crystal Noir
Re : compilation de modules et kernel ????
Bon je donne le log complet du build, et c'est toujours la même erreur ya pas moyen :
/usr/bin/make -C drbd clean
make[1]: entrant dans le rpertoire /usr/src/modules/drbd/drbd
rm -rf .tmp_versions
rm -f *.[oas] *.ko .*.cmd .*.d .*.tmp *.mod.c .*.flags .depend .kernel*
make[1]: quittant le rpertoire /usr/src/modules/drbd/drbd
/usr/bin/make -f debian/rules kdist_clean kdist_config binary-modules
make[1]: entrant dans le rpertoire /usr/src/modules/drbd
dpatch deapply-all
rm -rf patch-stamp patch-stampT debian/patched
dh_clean
/usr/bin/make -C drbd clean
make[2]: entrant dans le rpertoire /usr/src/modules/drbd/drbd
rm -rf .tmp_versions
rm -f *.[oas] *.ko .*.cmd .*.d .*.tmp *.mod.c .*.flags .depend .kernel*
make[2]: quittant le rpertoire /usr/src/modules/drbd/drbd
for templ in /usr/src/modules/drbd/debian/drbd0.7-module-_KVERS_.postinst /usr/src/modules/drbd/debian/drbd0.7-module-_KVERS_.postinst.backup /usr/src/modules/drbd/debian/drbd0.7-module-_KVERS_.postinst.modules.in; do \
cp $templ `echo $templ | sed -e 's/_KVERS_/2.6.17-10-generic/g'` ; \
done
for templ in `ls debian/*.modules.in` ; do \
test -e ${templ%.modules.in}.backup || cp ${templ%.modules.in} ${templ%.modules.in}.backup 2>/dev/null || true; \
sed -e 's/##KVERS##/2.6.17-10-generic/g ;s/#KVERS#/2.6.17-10-generic/g ; s/_KVERS_/2.6.17-10-generic/g ; s/##KDREV##/2.6.17-10.33/g ; s/#KDREV#/2.6.17-10.33/g ; s/_KDREV_/2.6.17-10.33/g ' < $templ > ${templ%.modules.in}; \
done
dh_testdir
dh_testroot
dh_clean -k
/usr/bin/make -C drbd KERNEL_SOURCES=/lib/modules/2.6.17-10-generic/build MODVERSIONS=detect KERNEL=linux-2.6.17-10-generic KDIR=/lib/modules/2.6.17-10-generic/build
make[2]: entrant dans le rpertoire /usr/src/modules/drbd/drbd
Calling toplevel makefile of kernel source tree, which I believe is in
KDIR=/lib/modules/2.6.17-10-generic/build
mv: oprande du fichier cible manquant aprs `drbd_buildtag.c{.new,}'
Pour en savoir davantage, faites: mv --help .
make[2]: *** [drbd_buildtag.c] Erreur 1
make[2]: quittant le rpertoire /usr/src/modules/drbd/drbd
make[1]: *** [binary-modules] Erreur 2
make[1]: quittant le rpertoire /usr/src/modules/drbd
make: *** [kdist_build] Erreur 2
Hors ligne
#15 Le 13/12/2006, à 12:30
- Crystal Noir
Re : compilation de modules et kernel ????
a priori ce n'est pas un pb isolé, puisque je viens d'essayer sur un vrai PC et donc chez moi et j'ai exactement le même problème que ce soit avec la version 0.10.6 ou 0.10.8.
Même problème, même erreur donc il doit me manquer un package j'en sais rien, mais je commence à perdre patience, je me demande ce qu'on a de différent pour que chez toi cela marche. Ca fait deux jours que je fais des tests sans succès je commence à désespérer.
et oui j'ai bien essayé de réinstaller les headers.
Dernière modification par Crystal Noir (Le 13/12/2006, à 12:31)
Hors ligne
#16 Le 13/12/2006, à 13:42
- bertrand0
Re : compilation de modules et kernel ????
Tu utilise le shell bash ou dash ?
ls -l /bin/sh
moi j'ai sélectionné bash.
Dernière modification par bertrand0 (Le 13/12/2006, à 13:43)
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#17 Le 13/12/2006, à 13:45
- bertrand0
Re : compilation de modules et kernel ????
bingo! J'ai remis dash et j'ai la même erreur que toi !
Tu fais "sudo dpkg-reconfigure dash"
et là tu réponds non à la question "faut-il mettre un lien de /bin/sh vers dash.
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#18 Le 13/12/2006, à 14:13
- Crystal Noir
Re : compilation de modules et kernel ????
Bon ya du mieux, la compilation a l'air de marcher.
c'est quoi exactement ce dash ?
Sinon, je ne sais pas si ca l'a fait comme il faut, car si je tape ensuite :
sudo modprobe drbd
j'ai ce message d'erreur :
FATAL: Error inserting drbd (/lib/modules/2.6.17-10-generic/kernel/drivers/block/drbd.ko): Invalid module format
Dernière modification par Crystal Noir (Le 13/12/2006, à 14:39)
Hors ligne
#19 Le 13/12/2006, à 15:13
- Crystal Noir
Re : compilation de modules et kernel ????
Ha yé ca marche !
Merci pour tout par contre tu peux m'en dire plus sur ce bash et dash ? car je dois dire que je maitrise mal ces notions là
Hors ligne
#20 Le 13/12/2006, à 16:47
- bertrand0
Re : compilation de modules et kernel ????
Ce sont les shells utilisés en lieu et place du l'ancien shell "traditionel" sh. bash est le shell utilisé habituellement pour émuler le comportement de sh, mais dernièrement dash a été introduit afin d'imposer des règles de syntaxe plus strictes. Du coup il génère des erreurs là où bash aurait été plus compréhensif. Les développeurs sont censés modifier leur code pour se conformer à ces règles. (le but final étant, je crois d'améliorer la portabilité des scripts).
Dernière modification par bertrand0 (Le 13/12/2006, à 16:49)
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#21 Le 14/12/2006, à 09:19
- Crystal Noir
Re : compilation de modules et kernel ????
mais concrètement sh on peut le définir comment ? c'est peut être des questions débiles mais bon je commence à peine dans les utilisations avancées de linux (j'en ai besoin et je m'autoforme)
Hors ligne
#22 Le 14/12/2006, à 13:21
- bertrand0
Re : compilation de modules et kernel ????
sh, bash, dash, ksh, csh ce sont des shells. C'est à dire en français des interpréteurs de commandes. Quand tu ouvres un terminal, le programme qui t'affiche le prompt (l'invite de commande) et exécute tes commandes est le shell. À part exécuter les commandes entrées interactivement par l'utilisateur, le shell peut exécuter des scripts, qui ne sont que des fichiers contenant une succession de commandes que l'utilisateur aurait pu taper au prompt (mais en réalité, ils sont bien trop longs et complexez...).
Dans le cas présent, le programme make utilisé pour gérer la compilation et la préparation des paquets utilise énormément de commandes envoyées à un shell. Il utilise par défaut le shell /bin/sh. Et c'est là qu'est le hic, le programmeur du makefile (fichier de config de make) de drbd0.7 utilisait manifestement bash pour émuler sh. Or depuis les deux dernières versions de Ubuntu, le shell par défaut pour émuler sh est devenu dash.
J'espère t'avoir éclairé, salut!
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#23 Le 15/12/2006, à 10:35
- Crystal Noir
Re : compilation de modules et kernel ????
oui super clair, vu que je savais déjà ce qu'était un shell, ca va tout seul, en fait ce que je savais pas c'est que les scripts les utilisaient.
Par contre juste une question, si j'ai une mise à jour des headers et du kernel-image (là en ce moment ya le header 10.34 à télécharger), est ce qu'il faudra que je refasse la compilation de drbd ?
Hors ligne
#24 Le 15/12/2006, à 13:52
- bertrand0
Re : compilation de modules et kernel ????
hélas oui, mais ça ne prend que quelques secondes quand tout se passe bien...
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#25 Le 15/12/2006, à 15:18
- Crystal Noir
Re : compilation de modules et kernel ????
vaut mieux éviter quoi
Hors ligne