[Buildroot] [PATCH 2/2] sysvinit: add /dev/std{in, out, err} symlinks to inittab
Peter Korsgaard
peter at korsgaard.com
Tue May 1 19:53:35 UTC 2018
>>>>> "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.
--
Bye, Peter Korsgaard
More information about the buildroot
mailing list