[Buildroot] [PATCH] initramfs/init: make sure that 0, 1, 2 fds are available

Peter Korsgaard jacmet at uclibc.org
Thu Aug 4 19:52:43 UTC 2011

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni at free-electrons.com> writes:

 Thomas> As the kernel doesn't automatically mount devtmpfs when an initramfs
 Thomas> is used, commit 424888e47431db738f5f9b3c6392435bfce7a842 has
 Thomas> introduced a small wrapper script that mounts devtmpfs before starting
 Thomas> the real init.

 Thomas> Unfortunately, the problem is that in this case, the init process runs
 Thomas> without any 0, 1 and 2 file descriptors, so none of the
 Thomas> messages/errors printed by the various initialization scripts can be
 Thomas> seen. This is due to the fact the init process relies on 0, 1 and 2
 Thomas> being opened by the kernel before init is started. However, as
 Thomas> /dev/console isn't present on the filesystem at the time the kernel
 Thomas> tries to open the console to create the 0, 1 and 2 file descriptors,
 Thomas> the kernel fails on this and prints the famous "Warning: unable to
 Thomas> open an initial console".

 Thomas> The proposed workaround is to actually open 0, 1 and 2 to /dev/console
 Thomas> in the wrapper script, right after mounting the devtmpfs filesystem,
 Thomas> and before starting the real init. The "Warning" from the kernel is
 Thomas> still shown, but at least the messages from the init scripts are
 Thomas> visible.

Committed, thanks.

Bye, Peter Korsgaard

More information about the buildroot mailing list