[Buildroot] [PATCH 2/2] sysvinit: add /dev/std{in, out, err} symlinks to inittab

Peter Korsgaard peter at korsgaard.com
Sun Jun 17 15:58:37 UTC 2018


>>>>> "Peter" == Peter Korsgaard <peter at korsgaard.com> writes:

>>>>> "Jörg" == Jörg Krause <joerg.krause at embedded.rocks> writes:
 >> Some applications, e.g. bashs process subsitution feature, rely on the
 >> convention of `/dev/fd` being a symbolic link to `/proc/self/fd`.

 >> This symbolic link and his companions `/dev/std*` are created by (e)udev [1],
 >> but not by mdev, resulting in the following error when using the following
 >> expression:

 >> ```
 >> bash: /dev/fd/62: No such file or directory
 >> ```

 >> For the sake of simplicity, lets fix this by creating the symlinks in inittab.
 >> It is only really needed if eudev isn't used, but it doesn't really hurt to
 >> create them even if eudev will recreate them afterwards.

 >> Note, that we do not create the symlink `/dev/core` as `/proc/kcore` is
 >> not available on all platforms, e.g. ARM, and the feature is not much
 >> appreciated [2].

 >> [1]
 >> https://github.com/gentoo/eudev/blob/8943501993322c59a6eb5be456b0d716aafff21e/src/shared/dev-setup.c#L35-L40
 >> [2] https://lwn.net/Articles/45315/

 >> Signed-off-by: Jörg Krause <joerg.krause at embedded.rocks>
 >> ---
 >> package/sysvinit/inittab | 6 +++++-
 >> 1 file changed, 5 insertions(+), 1 deletion(-)

 >> diff --git a/package/sysvinit/inittab b/package/sysvinit/inittab
 >> index fad91eae8b..608aabce07 100644
 >> --- a/package/sysvinit/inittab
 >> +++ b/package/sysvinit/inittab
 >> @@ -9,7 +9,11 @@ si1::sysinit:/bin/mount -o remount,rw /
 >> si2::sysinit:/bin/mkdir -p /dev/pts
 >> si3::sysinit:/bin/mkdir -p /dev/shm
 >> si4::sysinit:/bin/mount -a
 >> -si5::sysinit:/bin/hostname -F /etc/hostname
 >> +si5::sysinit:/bin/ln -sf /proc/self/fd /dev/fd
 >> +si6::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin
 >> +si7::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout
 >> +si8::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr

 > This will fail on static /dev on a readonly rootfs, so I've redirected
 > errors to /dev/null.

 > Committed with that changed, thanks.

 > I have also added a patch adding these symlinks in the default skeleton
 > to handle static /dev on readonly rootfs setups.

Committed to 2018.02.x, thanks.

-- 
Bye, Peter Korsgaard


More information about the buildroot mailing list