[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