Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/08/2009, à 16:37

Laserpithium

[Résolu] Je n'arrive pas à compiler mon noyau

Bonjour,

Je suis donc en train d'essayer vainement de compiler mon premier noyau, mais misère...

Je récapitule ce que j'ai déjà fait jusque là:
1) Téléchargement sur kernel.org des sources du 2.6.30.5: OK
2) Inscription de mon utilisateur dans le groupe src: OK
3) Décompression dans un répertoire de mon /home: OK
4) make gconfig, et choix des options: OK (enfin, on verra au premier boot si ça boot...)
5) sudo su, pour passer en root: OK
6) make-kpkg --initrd buildpackage

Et là, ça ne marche pas. La compilation se déroule normalement, et dure environ 15minutes.
Mais à la fin de la compilation, au moment où il essaye de créer le .deb (si je comprends bien), j'obtiens le message d'erreur suivant:

/home/achille/src/linux-2.6.30.5/debian/linux-headers-2.6.30.5
chown -R root:root                  /home/achille/src/linux-2.6.30.5/debian/linux-headers-2.6.30.5
chmod -R og=rX                      /home/achille/src/linux-2.6.30.5/debian/linux-headers-2.6.30.5
dpkg --build                        /home/achille/src/linux-2.6.30.5/debian/linux-headers-2.6.30.5 ..
dpkg-deb : construction du paquet « linux-headers-2.6.30.5 » dans « ../linux-headers-2.6.30.5_2.6.30.5-10.00.Custom_amd64.deb ».
dpkg-deb: le répertoire de contrôle n'a pas les bonnes permissions 2755 (doit être >=0755 et <=0775)
make[3]: *** [debian/stamp/binary/linux-headers-2.6.30.5] Erreur 2
make[3]: quittant le répertoire « /home/achille/src/linux-2.6.30.5 »
make[2]: *** [debian/stamp/binary/pre-linux-headers-2.6.30.5] Erreur 2
make[2]: quittant le répertoire « /home/achille/src/linux-2.6.30.5 »
make[1]: *** [debian/stamp/do-binary-arch] Erreur 2
make[1]: quittant le répertoire « /home/achille/src/linux-2.6.30.5 »
dpkg-buildpackage: échec: debian/rules binary a produit une erreur de sortie de type 2
make: *** [debian/stamp/build/buildpackage] Erreur 2
debianLPB:/home/achille/src/linux-2.6.30.5#

Si je comprends bien, je me fais jeter pour une bête erreur de droit ? Mais là où je ne comprends pas, c'est que:
1) Je compile en root, pourquoi est-ce qu'il m'embête alors ?
2) Il semble que les droits du répertoire soient à 2755 ? Supérieurs à 777 ? C'est possible ça ?

J'ai essayé, sans succès, les choses suivantes:
1) Utilisation de fakeroot au lieu de compiler directement en root: sans succès
2) chmod 775 -R sur le dossier de compilation: sans succès
3) Compilation dans le dossier /usr/src qui semble fait pour: même problème (en root ou non)
Là, je suis coincé et je ne vois plus trop.

Dernière modification par Laserpithium (Le 24/08/2009, à 19:04)


Portable Toshiba P300-220, proc P8300 Core2Duo 4Go RAM CG ATI HD4650 Mobility
Archlinux 64bits
GE>$ d s++:-- a- C++ L+++ P W++(+++) w--@ PE+ Y+ !R tv-() b+++ e+++ r-->r y>y+

Hors ligne

#2 Le 24/08/2009, à 17:36

Aldian

Re : [Résolu] Je n'arrive pas à compiler mon noyau

Bonjour

Je ne connais pas vraiment le problème car je n'ai jamais essayé de compiler un noyau, mais je peux peut être vous fournir quelques pistes de résolution.

1) Je compile en root, pourquoi est-ce qu'il m'embête alors ?

=> c'est peut être justement ça qui l'embête. Pour quelle raison exactement avez vous besoin d'être en root?


2) Il semble que les droits du répertoire soient à 2755 ? Supérieurs à 777 ? C'est possible ça ?

=>c'est possible si on compte le bit 'd' normalement à zéro qui indique si un fichier qui apartient au root peut être exécuté par un simple utilisateur (de mémoire).

Dernière modification par Aldian (Le 24/08/2009, à 17:38)

Hors ligne

#3 Le 24/08/2009, à 19:03

Laserpithium

Re : [Résolu] Je n'arrive pas à compiler mon noyau

Victoire, victoire, victoire !

Alors c'était vicieux:

Acte 1: Comme le dit Aldian, il apparaît que le bit "d" est mis à 1 "par défaut" (cad après l'installation) pour le dossier /usr/src. Le droit sur ce dossier est donc 2755, et pas 0755

Acte 2: Le programme make-kpkg vérifie, au moment de la création du paquet (donc une fois la compilation terminée), que les droits sont OK pour créer le nouveau paquet (afin d'éviter de s'embêter à le créer si c'est pour ne pas pouvoir l'écrire à la fin).
Dans le code, on vérifie si donc si le droit est compris entre 755 et 775. Sinon, on jette.
A cause du bit "d", on se retrouve avec un droit à 2755, donc supérieur à 775. Conclusion: même si en pratique on peut écrire (car logué en root), le programme, raide dans ses bottes, nous jette car le test est négatif.

Acte final: mettre à 0, comme c'est le cas partout ailleurs (sauf quelques programmes type sudo, crontab etc, mais là ce qui se passe dans /usr/src ne va pas mettre en danger le coeur du système) le bit "d".

Donc solution:

sudo chmod -R a-s /usr/src

Et là ça marche !

Bon sinon, je viens de rebooter sur mon nouveau kernel qui m'a accueilli par un gentil kernel panik. Mais ça, c'est une autre histoire !


Portable Toshiba P300-220, proc P8300 Core2Duo 4Go RAM CG ATI HD4650 Mobility
Archlinux 64bits
GE>$ d s++:-- a- C++ L+++ P W++(+++) w--@ PE+ Y+ !R tv-() b+++ e+++ r-->r y>y+

Hors ligne