On 12/17/20 10:07 PM, Andre McCurdy wrote:
On Thu, Dec 17, 2020 at 7:52 PM Khem Raj <raj.k...@gmail.com> wrote:

On Thu, Dec 17, 2020 at 3:59 PM Andre McCurdy <armccu...@gmail.com> wrote:

On Thu, Dec 17, 2020 at 2:54 PM Khem Raj <raj.k...@gmail.com> wrote:

When busybox is used for device management, kernel needs to support
older/obsolete mechanism via CONFIG_UEVENT_HELPER and
CONFIG_UEVENT_HELPER_PATH to enable /proc/sys/kernel/hotplug but this
would require kernel defconfig change and will always be needed when
mdev is used, intead run it in daemon mode

Update mdev init script to run mdev in daemon mode

Signed-off-by: Khem Raj <raj.k...@gmail.com>
---
  meta/recipes-core/busybox/busybox/mdev.cfg |  2 +
  meta/recipes-core/busybox/files/mdev       | 56 +++++++++++++++-------
  2 files changed, 41 insertions(+), 17 deletions(-)

diff --git a/meta/recipes-core/busybox/busybox/mdev.cfg 
b/meta/recipes-core/busybox/busybox/mdev.cfg
index 6aefe90e43..143e6097cb 100644
--- a/meta/recipes-core/busybox/busybox/mdev.cfg
+++ b/meta/recipes-core/busybox/busybox/mdev.cfg
@@ -9,3 +9,5 @@ CONFIG_SETSID=y
  CONFIG_CTTYHACK=y

  CONFIG_FEATURE_SHADOWPASSWDS=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+CONFIG_FEATURE_MDEV_DAEMON=y
diff --git a/meta/recipes-core/busybox/files/mdev 
b/meta/recipes-core/busybox/files/mdev
index 8c9c06e96c..2fbdfb073e 100755
--- a/meta/recipes-core/busybox/files/mdev
+++ b/meta/recipes-core/busybox/files/mdev
@@ -1,21 +1,43 @@
  #!/bin/sh
-mount -t proc proc /proc
-mount -t sysfs sysfs /sys
-mount -t tmpfs tmpfs /dev  -o size=64k,mode=0755
-mkdir /dev/pts /dev/shm
-chmod 777 /dev/shm
-mount -t devpts devpts /dev/pts
-touch /dev/mdev.seq
-#sysctl -w kernel.hotplug=/sbin/mdev
-echo "/sbin/mdev" > /proc/sys/kernel/hotplug
-mdev -s
-
  #
-# We might have mounted something over /dev, see if /dev/initctl is there.
+# Run the mdev daemon
  #
-if test ! -p /dev/initctl
-then
-        rm -f /dev/initctl
-        mknod -m 600 /dev/initctl p
-fi
+
+DAEMON="mdev"
+PIDFILE="/var/run/$DAEMON.pid"
+
+
+start() {
+  echo -n "Starting $DAEMON... "
+  start-stop-daemon -S -b -m -p $PIDFILE -x /sbin/mdev -- -df

Where do these start-stop-daemon options come from? Using -b for an
application which is designed to run as a daemon (and deliberately
telling that app to run in the foreground) looks odd, etc.

Are there bugs or limitations in mdev which you are trying to workaround?

its using start-stop-daemon applet from busybox which does have these options
implemented, its so that start-stop-daemon takes the control of the daemon

The question is not whether start-stop-daemon supports using PID files
but whether the busybox mdev application supports creating them.

It looks like although most of the busybox daemons do, mdev does not:


right it does not, letting start-stop-daemon works well though and is used in lot of places

.../busybox-1.32.0 $ grep -r write_pidfile *
debianutils/start_stop_daemon.c:        write_pidfile(pidfile);
include/libbb.h:void write_pidfile(const char *path) FAST_FUNC;
include/libbb.h:void write_pidfile_std_path_and_ext(const char *path) FAST_FUNC;
include/libbb.h:#define write_pidfile_std_path_and_ext(path)  ((void)0)
include/libbb.h:#define write_pidfile(path)  ((void)0)
libbb/pidfile.c:void FAST_FUNC write_pidfile(const char *path)
libbb/pidfile.c:void FAST_FUNC write_pidfile_std_path_and_ext(const char *name)
libbb/pidfile.c:    write_pidfile(buf);
miscutils/watchdog.c:    write_pidfile_std_path_and_ext("watchdog");
miscutils/crond.c:    write_pidfile_std_path_and_ext("crond");
networking/ifplugd.c:    write_pidfile(pidfile_name);
networking/ntpd.c:        write_pidfile_std_path_and_ext("ntpd");
networking/inetd.c:    write_pidfile_std_path_and_ext("inetd");
networking/udhcp/dhcpc.c:    write_pidfile(client_data.pidfile);
networking/udhcp/dhcpc.c:    write_pidfile(client_data.pidfile);
networking/udhcp/dhcpd.c:    write_pidfile(server_data.pidfile);
networking/udhcp/d6_dhcpc.c:    write_pidfile(client_data.pidfile);
networking/udhcp/d6_dhcpc.c:    write_pidfile(client_data.pidfile);
sysklogd/syslogd.c:    write_pidfile_std_path_and_ext("syslogd");
sysklogd/klogd.c:    write_pidfile_std_path_and_ext("klogd");
util-linux/acpid.c:    write_pidfile(opt_pidfile);

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#145865): 
https://lists.openembedded.org/g/openembedded-core/message/145865
Mute This Topic: https://lists.openembedded.org/mt/79049549/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to