busybox: provide /etc/mdev.conf if mdev is used
authorLuca Ceresoli <luca@lucaceresoli.net>
Mon, 11 Jul 2011 10:25:51 +0000 (12:25 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 11 Jul 2011 11:41:25 +0000 (13:41 +0200)
Without an mdev.conf file installed, mdev generates some /dev entries in
an incorrect or non-standard way. Some examples:
 1. /dev/null has permissions 660, but it should be accessible to normal
    users;
 2. alsa devices get created in /dev, not /dev/snd as is more common,
    and as the default value of BR2_PACKAGE_ALSA_LIB_DEVDIR suggests;
 3. event<N> files are created in /dev, not /dev/input.

This mdev.conf is a selection from the examples provided in the busybox
sources with minor tweaks.

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/busybox/busybox.mk
package/busybox/mdev.conf [new file with mode: 0644]

index 509c3bb9f1147a11df8351ac1482701cc8d02b11..8998ca083c646e832d23cc533cb21297369f9b0e 100644 (file)
@@ -33,6 +33,11 @@ ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),y)
 define BUSYBOX_INSTALL_MDEV_SCRIPT
        install -m 0755 package/busybox/S10mdev $(TARGET_DIR)/etc/init.d
 endef
+define BUSYBOX_INSTALL_MDEV_CONF
+       [ -f $(TARGET_DIR)/etc/mdev.conf ] || \
+               install -D -m 0644 package/busybox/mdev.conf \
+                       $(TARGET_DIR)/etc/mdev.conf
+endef
 define BUSYBOX_SET_MDEV
        $(call KCONFIG_ENABLE_OPT,CONFIG_MDEV,$(BUSYBOX_BUILD_CONFIG))
        $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_MDEV_CONF,$(BUSYBOX_BUILD_CONFIG))
@@ -159,6 +164,7 @@ define BUSYBOX_INSTALL_TARGET_CMDS
                        $(TARGET_DIR)/usr/share/udhcpc/default.script; \
        fi
        $(BUSYBOX_INSTALL_MDEV_SCRIPT)
+       $(BUSYBOX_INSTALL_MDEV_CONF)
        $(BUSYBOX_INSTALL_LOGGING_SCRIPT)
 endef
 
diff --git a/package/busybox/mdev.conf b/package/busybox/mdev.conf
new file mode 100644 (file)
index 0000000..247c0ed
--- /dev/null
@@ -0,0 +1,35 @@
+# null may already exist; therefore ownership has to be changed with command
+null           root:root 666 @chmod 666 $MDEV
+zero           root:root 666
+full           root:root 666
+random         root:root 444
+urandom                root:root 444
+hwrandom       root:root 444
+grsec          root:root 660
+
+kmem           root:root 640
+mem            root:root 640
+port           root:root 640
+# console may already exist; therefore ownership has to be changed with command
+console                root:tty 600 @chmod 600 $MDEV
+ptmx           root:tty 666
+pty.*          root:tty 660
+
+# Typical devices
+tty            root:tty 666
+tty[0-9]*      root:tty 660
+vcsa*[0-9]*    root:tty 660
+ttyS[0-9]*     root:root 660
+
+# alsa sound devices
+pcm.*          root:audio 660 =snd/
+control.*      root:audio 660 =snd/
+midi.*         root:audio 660 =snd/
+seq            root:audio 660 =snd/
+timer          root:audio 660 =snd/
+
+# input stuff
+event[0-9]+    root:root 640 =input/
+mice           root:root 640 =input/
+mouse[0-9]     root:root 640 =input/
+ts[0-9]                root:root 600 =input/