Skip to content

Commit

Permalink
initramfs-framework: create /dev/console
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
pohly authored and rpurdie committed Sep 6, 2015
1 parent 37741c5 commit 0352841
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
Expand Up @@ -34,6 +34,11 @@ do_install() {

# debug
install -m 0755 ${WORKDIR}/debug ${D}/init.d/00-debug

# Create device nodes expected by some kernels in initramfs
# before even executing /init.
install -d ${D}/dev
mknod -m 622 ${D}/dev/console c 5 1
}

PACKAGES = "${PN}-base \
Expand All @@ -42,7 +47,7 @@ PACKAGES = "${PN}-base \
initramfs-module-e2fs \
initramfs-module-debug"

FILES_${PN}-base = "/init /init.d/99-finish"
FILES_${PN}-base = "/init /init.d/99-finish /dev"

SUMMARY_initramfs-module-mdev = "initramfs support for mdev"
RDEPENDS_initramfs-module-mdev = "${PN}-base"
Expand Down

0 comments on commit 0352841

Please sign in to comment.