J'y avais effectivement pensé au départ mais, malheureusement, ma carte-mère (une ASUS P5E3) ne dispose ni de ports série, ni d'un port parallèle. Je devrais effectivement investir aujourd'hui dans une paire d'adaptateurs USB-Série mais le fait est que je n'en avait jamais eu l'utilité jusque là. J'ai lu serial-console.txt mais, à part cela, je suppose qu'il n'y a pas moyen d'envoyer cela par le réseau (quitte à utiliser le port Ethernet en point-à-point comme un vulgaire port série) ?
J'ai également commencé à mettre mes doigts dans kexec mais je n'arrive pas à grand chose.
J'utilise un kernel 3.6.7 en 64 bits compilé par mes soins avec les options idoines. J'essaie d'utiliser le même noyau avec le même ramdisk pour
Après avoir essayé plusieurs combinaisons pour l'option "crashkernel=" au démarrage, j'ai fini par trouver une combinaison valable qui me permette de charge mon noyau avec kexec -p /usr/src/linux-3.6.7/arch/x86/boot/bzImage --initrd=/boot/initramfs-3.6.7.img --append="1 root=/dev/sda2 irqpoll maxcpus=1 reset_devices selinux=0". Ça fonctionne, mais lorsque que je provoque artificiellement un crash avec SysRq+C, le nouveau noyau démarre mais reste coincé sur Unpacking initramfs.
Ma distrib' est une Fedora 17 mais après quelques recherches, je suis tombé sur ce fil dans un forum Archlinux : https://bbs.archlinux.org/viewtopic.php?id=148264 . On y lit qu'il faut réserver au moins 756 Mo pour les fichiers du ramdisk. Je ne sais pas si c'est vrai ou pas mais, quoi qu'il en soit, disposant moi-même de 4 Gio de RAM et après examen de /proc/iomem, je lis entre autres :
2:00010000-0009f7ff : System RAM
…
10:00100000-cff7ffff : System RAM
…
66:100000000-12fffffff : System RAM
J'ai donc essayé crashkernel=1024M@1024M. Ça passe, mais au chargement, j'obtiens le message
Could not find a free area of memory of n bytes - locate_hole failed
… avec n variant selon les essais entre 9000, b000 et 3b6000. Google renvoie beaucoup d'entrées pour ce message mais peu d'explications concluantes. J'ai quand même lu quelque part que ce serait dû au fait que le système qui alloue de la mémoire le fait par la fin d'un bloc et que celui qui l'utilise le fait par le début et a besoin d'être aligné sur un multiple d'une page. J'ai donc passé le paramètre « crashkernel=1077633024@1024M » ce qui correspond à 403B6000 (1 Gio + 3b6000) et ça fonctionne. Mais avec la commande ci-dessus, j'obtiens cette fois :
Could not put setup code above the kernel parameters
… j'ai lu également que ça pouvait poser problème avec les bzImages. Je suis donc allé chercher directement l'image « vmlinux » fraîchement compilée dans le dépôt de mes sources. Et cette fois-ci :
Invalid memory segment 0x1000000 - 0x1a9cfff
Et je ne vois pas pourquoi. Mon noyau est compilé en relocatable et devrait donc être insensible à l'adresse d'implantation. J'ai changé PHYSICAL_START à 40000000h (1 Gio) à tout hasard et ai recompilé, mais j'obtiens le même message et les mêmes valeurs.
Là, j'arrive un peu à court d'idées. Et oui, je tatonne, mais c'est faute de mieux.
As-tu une idée ou un lien vers la documentation que je devrais suivre ?
[^] # Re: Deuxième PC?
Posté par Obsidian . En réponse au message Comment connaître l'origine d'un Kernel Panic depuis le mode graphique ?. Évalué à 2.
Au temps pour moi, j'ai lu trop vite.
J'y avais effectivement pensé au départ mais, malheureusement, ma carte-mère (une ASUS P5E3) ne dispose ni de ports série, ni d'un port parallèle. Je devrais effectivement investir aujourd'hui dans une paire d'adaptateurs USB-Série mais le fait est que je n'en avait jamais eu l'utilité jusque là. J'ai lu
serial-console.txtmais, à part cela, je suppose qu'il n'y a pas moyen d'envoyer cela par le réseau (quitte à utiliser le port Ethernet en point-à-point comme un vulgaire port série) ?J'ai également commencé à mettre mes doigts dans
kexecmais je n'arrive pas à grand chose.J'utilise un kernel 3.6.7 en 64 bits compilé par mes soins avec les options idoines. J'essaie d'utiliser le même noyau avec le même ramdisk pour
Après avoir essayé plusieurs combinaisons pour l'option "crashkernel=" au démarrage, j'ai fini par trouver une combinaison valable qui me permette de charge mon noyau avec
kexec -p /usr/src/linux-3.6.7/arch/x86/boot/bzImage --initrd=/boot/initramfs-3.6.7.img --append="1 root=/dev/sda2 irqpoll maxcpus=1 reset_devices selinux=0". Ça fonctionne, mais lorsque que je provoque artificiellement un crash avec SysRq+C, le nouveau noyau démarre mais reste coincé surUnpacking initramfs.Ma distrib' est une Fedora 17 mais après quelques recherches, je suis tombé sur ce fil dans un forum Archlinux : https://bbs.archlinux.org/viewtopic.php?id=148264 . On y lit qu'il faut réserver au moins 756 Mo pour les fichiers du ramdisk. Je ne sais pas si c'est vrai ou pas mais, quoi qu'il en soit, disposant moi-même de 4 Gio de RAM et après examen de
/proc/iomem, je lis entre autres :J'ai donc essayé
crashkernel=1024M@1024M. Ça passe, mais au chargement, j'obtiens le message… avec n variant selon les essais entre 9000, b000 et 3b6000. Google renvoie beaucoup d'entrées pour ce message mais peu d'explications concluantes. J'ai quand même lu quelque part que ce serait dû au fait que le système qui alloue de la mémoire le fait par la fin d'un bloc et que celui qui l'utilise le fait par le début et a besoin d'être aligné sur un multiple d'une page. J'ai donc passé le paramètre «
crashkernel=1077633024@1024M» ce qui correspond à 403B6000 (1 Gio + 3b6000) et ça fonctionne. Mais avec la commande ci-dessus, j'obtiens cette fois :… j'ai lu également que ça pouvait poser problème avec les bzImages. Je suis donc allé chercher directement l'image « vmlinux » fraîchement compilée dans le dépôt de mes sources. Et cette fois-ci :
Et je ne vois pas pourquoi. Mon noyau est compilé en relocatable et devrait donc être insensible à l'adresse d'implantation. J'ai changé PHYSICAL_START à 40000000h (1 Gio) à tout hasard et ai recompilé, mais j'obtiens le même message et les mêmes valeurs.
Là, j'arrive un peu à court d'idées. Et oui, je tatonne, mais c'est faute de mieux.
As-tu une idée ou un lien vers la documentation que je devrais suivre ?
Merci.