summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@intel.com>2015-09-03 20:42:28 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-09-06 15:24:24 +0100
commit1b64664f0c388f41084f5db6e46e3e68c53fb6d9 (patch)
treeec9f01f879c596c59f064cd0edb8a58d8acb085f
parent0352841cd92f6316bcac092e2fff9d28c352b36b (diff)
downloadopenembedded-core-1b64664f0c388f41084f5db6e46e3e68c53fb6d9.tar.gz
openembedded-core-1b64664f0c388f41084f5db6e46e3e68c53fb6d9.tar.bz2
openembedded-core-1b64664f0c388f41084f5db6e46e3e68c53fb6d9.zip
initramfs-live-boot: create /dev/console
Some kernels, for example linux-yocto 3.19 for qemux86, fail to execute /init in an initramfs unless there is already a /dev/console char device in the initramfs. Booting then fails with: Kernel panic - not syncing: /dev/console is missing or not a character device! Please ensure your rootfs is properly configured The panic itself comes from a linux-yocto specific patch to kernel_init_freeable in init/main.c, but even without it, that function will print an error when /dev/console is missing. The kernel's Documentation/initrd.txt also mentions creating that device. It remained unclear why this is not a problem on other machines. On intel-corei7-64 from meta-intel, something (the kernel?) creates /dev/console and /dev/[012] before transfering control to the init script. In that case, creating /dev/console in advance is not necessary, but does not cause any problem either. Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb4
1 files changed, 3 insertions, 1 deletions
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
index b54cb619f1..57b30254a6 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
@@ -11,9 +11,11 @@ S = "${WORKDIR}"
do_install() {
install -m 0755 ${WORKDIR}/init-live.sh ${D}/init
+ install -d ${D}/dev
+ mknod -m 622 ${D}/dev/console c 5 1
}
-FILES_${PN} += " /init "
+FILES_${PN} += " /init /dev "
# Due to kernel dependency
PACKAGE_ARCH = "${MACHINE_ARCH}"