Boot de kernel homemade impossible

Déjà, ça veut dire que le problème ne vient pas du pilote SATA, ni du noyau a priori. Ou alors il manque le support du système de fichiers du volume racine (ext3, ext4 ?).

Peut-être s’agit-il bêtement d’un problème de temporisation : le disque n’est pas encore détecté quand l’initramfs essaie de monter la racine. Dans ce cas il faudrait essayer en ajoutant le paramètre rootdelay=10 sur la ligne de commande du noyau dans la configuration du chargeur d’amorçage ou à la main dans le menu de démarrage de celui-ci pour tester.

Que se passe-t-il si tu essaies de monter la partition racine à main sur /root avec mount ?
Que se passe-t-il si tu quittes le shell de l’initramfs (ctrl-d) ?

[quote=“PascalHambourg”]Déjà, ça veut dire que le problème ne vient pas du pilote SATA, ni du noyau a priori. Ou alors il manque le support du système de fichiers du volume racine (ext3, ext4 ?).

Peut-être s’agit-il bêtement d’un problème de temporisation : le disque n’est pas encore détecté quand l’initramfs essaie de monter la racine. Dans ce cas il faudrait essayer en ajoutant le paramètre rootdelay=10 sur la ligne de commande du noyau dans la configuration du chargeur d’amorçage ou à la main dans le menu de démarrage de celui-ci pour tester.

Que se passe-t-il si tu essaies de monter la partition racine à main sur /root avec mount ?
Que se passe-t-il si tu quittes le shell de l’initramfs (ctrl-d) ?[/quote]

mount /dev/sda6 /root me sort un failed no such file or directory !!

Si je fais un ctrl+d sur le shell de l’initramfs provoque un kernel panic :

can't open /root/dev/console : no such file kernel panic - not syncing: Attempted to kill init !

Le rootdelay ne change rien. Mais même avec le délai il me met une erreur d’entrée de jeu et la temporisation intervient après :

Loading please wait... mount : mounting none on /dev failed: No such device W: devtmpfs not availablen falling back to tmppfs for /dev

Ext3 et 4 sont compilés en modules.

Le dernier message n’est pas une erreur mais un avertissement (warning), peut-être parce que tu n’as pas activé le support de devtmpfs dans ton noyau.

Concernant le premier message, pourtant /dev/sda6 existe bien. Il y a quelque chose dans les logs du noyau (dmesg) ?

Il y a quand même un truc bizarre, c’est que toutes les partitions ont pour numéro mineur 0 dans /proc/partitions alors que sda1 devrait avoir 1, sda2 2 et ainsi de suite. C’est la même chose avec ls -l /dev/sda* ?

[quote=“PascalHambourg”]Le dernier message n’est pas une erreur mais un avertissement (warning), peut-être parce que tu n’as pas activé le support de devtmpfs dans ton noyau.

Concernant le premier message, pourtant /dev/sda6 existe bien. Il y a quelque chose dans les logs du noyau (dmesg) ?

Il y a quand même un truc bizarre, c’est que toutes les partitions ont pour numéro mineur 0 dans /proc/partitions alors que sda1 devrait avoir 1, sda2 2 et ainsi de suite. C’est la même chose avec ls -l /dev/sda* ?[/quote]

rien dans les logs de bizarre, il voit le disque sda et les partitions.
aucun message d’erreur…
ls -l /dev/sda* me retourne la même chose au détail près qu’avant la date j’ai bien un numéro qui correspond à celui de la partition.
ex :

brw------- 1 0 0 8, 1 Jan 30 18:07 /dev/sda1 brw------- 1 0 0 8, 2 Jan 30 18:07 /dev/sda2

Je soupçonne un problème lié au support du type de système de fichiers de la racine. Quel est le type de système de fichiers de la partition racine ? Que donne une tentative de montage avec -t ? (remplacer par le type du système de fichiers : ext3, ext4…)
Tu peux aussi regarder s’il figure dans /proc/filesystems, et sinon si le module correspondant est présent et peut être chargé avec modprobe.

[quote=“PascalHambourg”]Je soupçonne un problème lié au support du type de système de fichiers de la racine. Quel est le type de système de fichiers de la partition racine ? Que donne une tentative de montage avec -t ? (remplacer par le type du système de fichiers : ext3, ext4…)
Tu peux aussi regarder s’il figure dans /proc/filesystems, et sinon si le module correspondant est présent et peut être chargé avec modprobe.[/quote]

Peut-être approchons nous d’une solution !!
La partition racine est formatée en ext4 et un

me montre qu’il n’y a pas ext4 dedans.
Chose étrange puisque les options de compilation pour ext3 et ext4 sont les mêmes.
je vais recompiler en le mettant en dur plutôt qu’en module.

Si le support d’ext4 est compilé en module, c’est normal qu’il n’apparaisse pas dans /proc/filesystems tant que le module n’est pas chargé. C’est pourquoi je te demandais de vérifier si ce module était présent. En spécifiant le type explicitement,

cela devrait charger le module automatiquement s’il est présent.

Désolé de tous ces errements à propos de l’existence des fichiers et répertoires, j’ai été égaré par les messages d’erreur de la commande mount de busybox incluse dans l’initramfs, qui sont différents de ceux de la commande mount normale.

Je ne comprends pas pourquoi tu dis que les options de configuration sont les mêmes pour ext3 et ext4. D’après ce que je vois elle sont distinctes (CONFIG_EXT3* et CONFIG_EXT4*).

alors le module n’est pas chargé car il me fait une erreur avec -t ext4.

par contre avec -t ext3 me cause une erreur :

could't mount because of unsupported optional features et pour cause le filesystem est ext4.
Ce que je voulais dire par «les mêmes options de compilation» c’est que tous les 2 sont compilés en module. Ce qui est d’autant plus étrange que ext3 se charge bien et pas ext4.

un modprobe de ext4 ne donne rien.
Je viens de regarder dans lib/modules/2.6.37/kernel/fs
pas de ext4 !!

Je vois deux possibilités :

  • soit le support d’ext4 n’est pas activé dans ce noyau, ni en dur ni en module ;
  • soit le module ext4 n’a pas été inclus dans l’initramfs.

Faudrait démarrer sur un autre noyau et vérifier le support d’ext4 du noyau 2.6.37, par exemple avec

et bien j’ai un magnifique : :open_mouth:

Pourtant j’avais vérifié ce point. Pas dans .config mais directement dans le menuconfig. Et c’est d’ailleurs là que j’ai vu que ext3 et 4 étaient compilés en modules.
Bon j’ai relancé une compil avec ext3 et 4 en dur.

et bien cette fois c’est bon !!!
J’ai compilé le support de ext4 en dur est j’ai booté dessus !!
Encore merci PascalHambourg pour tout le temps passé.
Même si je ne suis pas très fier de moi sur ce coup la :confused:

Bah, c’est aussi comme ça qu’on apprend.
La leçon du jour pour toi est : vérifier et revérifier, même quand on est sûr de soi.
La leçon du jour pour moi est : ne faire confiance à personne.

Maintenant j’ai quelques soucis avec les drivers mais ca je vais gérer !!
A+