[oe-commits] org.oe.dev busybox: add mdev support

blaster8 commit openembedded-commits at lists.openembedded.org
Sat Sep 23 15:51:18 UTC 2006


busybox: add mdev support
* adjust SlugOS defconfig to enable mdev
* add mdev startup script (similar to udev init)
* add mdev.conf with correct device permissions/actions

Author: blaster8 at nslu2-linux.org
Branch: org.openembedded.dev
Revision: 10533d3f17b4af0a4b427f743d3be4be9491c528
ViewMTN: http://monotone.openembedded.org/revision.psp?id=10533d3f17b4af0a4b427f743d3be4be9491c528
Files:
1
packages/busybox/busybox-1.2.1/busybox-mdev.sh
packages/busybox/busybox-1.2.1/mdev.conf
packages/busybox/busybox-1.2.1/slugos/mdev.conf
packages/busybox/busybox-1.2.1/slugos/defconfig
packages/busybox/busybox_1.2.1.bb
mtn:execute
true
Diffs:

#
# mt diff -re1ceeb763614eca16eb25024c1a0e9025089ef02 -r10533d3f17b4af0a4b427f743d3be4be9491c528
#
# 
# 
# add_file "packages/busybox/busybox-1.2.1/busybox-mdev.sh"
#  content [53e81510d9f205b624a24eb174744deedf2d55e5]
# 
# add_file "packages/busybox/busybox-1.2.1/mdev.conf"
#  content [da39a3ee5e6b4b0d3255bfef95601890afd80709]
# 
# add_file "packages/busybox/busybox-1.2.1/slugos/mdev.conf"
#  content [b890115ed6afcb6c6900a56d5a59c08b95bf05b3]
# 
# patch "packages/busybox/busybox-1.2.1/slugos/defconfig"
#  from [3cd05b032b976c0a4b4cda77ea0e18baecd57fe0]
#    to [f5dbef8b16c3756ce73b0162e6ad8979ec21fcae]
# 
# patch "packages/busybox/busybox_1.2.1.bb"
#  from [bbe33912384542abb69cc536abf7587f2d742a05]
#    to [6aeb42b7b6426fba0b15b3c8d38ec22cd592d686]
# 
#   set "packages/busybox/busybox-1.2.1/busybox-mdev.sh"
#  attr "mtn:execute"
# value "true"
# 
============================================================
--- packages/busybox/busybox-1.2.1/busybox-mdev.sh	53e81510d9f205b624a24eb174744deedf2d55e5
+++ packages/busybox/busybox-1.2.1/busybox-mdev.sh	53e81510d9f205b624a24eb174744deedf2d55e5
@@ -0,0 +1,69 @@
+#!/bin/sh
+MDEV=/sbin/mdev
+DESC="Busybox mdev setup"
+
+# Complain if thing's aren't right
+if [ ! -e /proc/filesystems ]; then
+  echo "mdev requires a mounted procfs, not started."
+  exit 1
+fi
+
+if ! grep -q '[[:space:]]tmpfs$' /proc/filesystems; then
+  echo "mdev requires tmpfs support, not started."
+  exit 1
+fi
+
+if [ ! -d /sys/class/ ]; then
+  echo "mdev requires a mounted sysfs, not started."
+  exit 1
+fi
+
+if [ ! -e /proc/sys/kernel/hotplug ]; then
+  echo "mdev requires hotplug support, not started."
+  exit 1
+fi
+
+# We need to unmount /dev/pts/ and remount it later over the tmpfs
+if mountpoint -q /dev/pts/; then
+  umount -l /dev/pts/
+fi
+
+if mountpoint -q /dev/shm/; then
+  umount -l /dev/shm/
+fi
+
+# Create tmpfs for /dev
+echo "Creating tmpfs at /dev"
+mount -t tmpfs tmpfs /dev -o size=800k
+
+# Register mdev as hotplug event helper
+echo "$MDEV" > /proc/sys/kernel/hotplug
+
+# Populate /dev from /sys info
+echo "Populating /dev using mdev"
+$MDEV -s
+
+# Touch .udev to inform scripts that /dev needs no further setup
+touch /dev/.udev
+
+# Mount devpts
+TTYGRP=5
+TTYMODE=620
+mkdir -m 755 -p /dev/pts
+if [ ! -e /dev/ptmx ]; then
+    mknod -m 666 /dev/ptmx c 5 2
+fi
+mount -t devpts devpts /dev/pts -onoexec,nosuid,gid=$TTYGRP,mode=$TTYMODE
+
+# Make shm directory
+mkdir -m 755 -p /dev/shm
+
+# Make extraneous links
+ln -sf /proc/self/fd /dev/fd
+ln -sf /proc/self/fd/0 /dev/stdin
+ln -sf /proc/self/fd/1 /dev/stdout
+ln -sf /proc/self/fd/2 /dev/stderr
+ln -sf /proc/kcore /dev/core
+ln -sf /proc/asound/oss/sndstat /dev/sndstat
+
+exit 0
============================================================
--- packages/busybox/busybox-1.2.1/mdev.conf	da39a3ee5e6b4b0d3255bfef95601890afd80709
+++ packages/busybox/busybox-1.2.1/mdev.conf	da39a3ee5e6b4b0d3255bfef95601890afd80709
============================================================
--- packages/busybox/busybox-1.2.1/slugos/mdev.conf	b890115ed6afcb6c6900a56d5a59c08b95bf05b3
+++ packages/busybox/busybox-1.2.1/slugos/mdev.conf	b890115ed6afcb6c6900a56d5a59c08b95bf05b3
@@ -0,0 +1,11 @@
+rtc0 root:root 660 @ln -sf /dev/rtc0 /dev/rtc
+null 0:0 777
+zero 0:0 666
+console 0:5 0600
+kmem 0:9 000
+mem 0:9 0640
+port 0:9 0640
+ptmx 0:5 666
+tty 0:5 0660
+ttyS* 0:20 640
+ucode_dl root:root 600 @sleep 1 && cat /lib/firmware/NPE-B > /dev/ucode_dl
============================================================
--- packages/busybox/busybox-1.2.1/slugos/defconfig	3cd05b032b976c0a4b4cda77ea0e18baecd57fe0
+++ packages/busybox/busybox-1.2.1/slugos/defconfig	f5dbef8b16c3756ce73b0162e6ad8979ec21fcae
@@ -12,7 +12,7 @@ HAVE_DOT_CONFIG=y
 #
 # CONFIG_NITPICK is not set
 # CONFIG_FEATURE_BUFFERS_USE_MALLOC is not set
-CONFIG_FEATURE_BUFFERS_GO_ON_STACK=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
 # CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
 CONFIG_SHOW_USAGE=y
 CONFIG_FEATURE_VERBOSE_USAGE=y
@@ -287,12 +287,24 @@ CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
 # Finding Utilities
 #
 # CONFIG_FIND is not set
-CONFIG_FEATURE_FIND_EXEC=y
+# CONFIG_FEATURE_FIND_PRINT0 is not set
+# CONFIG_FEATURE_FIND_MTIME is not set
+# CONFIG_FEATURE_FIND_MMIN is not set
+# CONFIG_FEATURE_FIND_PERM is not set
+# CONFIG_FEATURE_FIND_TYPE is not set
+# CONFIG_FEATURE_FIND_XDEV is not set
+# CONFIG_FEATURE_FIND_NEWER is not set
+# CONFIG_FEATURE_FIND_INUM is not set
+# CONFIG_FEATURE_FIND_EXEC is not set
 CONFIG_GREP=y
 CONFIG_FEATURE_GREP_EGREP_ALIAS=y
 CONFIG_FEATURE_GREP_FGREP_ALIAS=y
 CONFIG_FEATURE_GREP_CONTEXT=y
 # CONFIG_XARGS is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set
 
 #
 # Init Utilities
@@ -343,16 +355,19 @@ CONFIG_MKE2FS=y
 # Linux Module Utilities
 #
 # CONFIG_INSMOD is not set
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
 # CONFIG_RMMOD is not set
 # CONFIG_LSMOD is not set
+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
 # CONFIG_MODPROBE is not set
-
-#
-# Options common to multiple modutils
-#
-CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+# CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS is not set
+# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
 # CONFIG_FEATURE_2_4_MODULES is not set
-CONFIG_FEATURE_2_6_MODULES=y
+# CONFIG_FEATURE_2_6_MODULES is not set
 # CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
 
 #
@@ -360,6 +375,8 @@ CONFIG_DMESG=y
 #
 CONFIG_DMESG=y
 # CONFIG_FBSET is not set
+# CONFIG_FEATURE_FBSET_FANCY is not set
+# CONFIG_FEATURE_FBSET_READMODE is not set
 # CONFIG_FDFLUSH is not set
 # CONFIG_FDFORMAT is not set
 CONFIG_FDISK=y
@@ -373,6 +390,7 @@ CONFIG_FEATURE_OSF_LABEL=y
 # CONFIG_FREERAMDISK is not set
 # CONFIG_FSCK_MINIX is not set
 # CONFIG_MKFS_MINIX is not set
+# CONFIG_FEATURE_MINIX2 is not set
 # CONFIG_GETOPT is not set
 CONFIG_HEXDUMP=y
 CONFIG_HWCLOCK=y
@@ -381,9 +399,9 @@ CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
 # CONFIG_IPCRM is not set
 # CONFIG_IPCS is not set
 # CONFIG_LOSETUP is not set
-# CONFIG_MDEV is not set
-# CONFIG_FEATURE_MDEV_CONF is not set
-# CONFIG_FEATURE_MDEV_EXEC is not set
+CONFIG_MDEV=y
+CONFIG_FEATURE_MDEV_CONF=y
+CONFIG_FEATURE_MDEV_EXEC=y
 CONFIG_MKSWAP=y
 # CONFIG_FEATURE_MKSWAP_V0 is not set
 CONFIG_MORE=y
@@ -398,6 +416,8 @@ CONFIG_RDATE=y
 # CONFIG_SWITCH_ROOT is not set
 # CONFIG_UMOUNT is not set
 # CONFIG_FEATURE_UMOUNT_ALL is not set
+# CONFIG_FEATURE_MOUNT_LOOP is not set
+# CONFIG_FEATURE_MTAB_SUPPORT is not set
 
 #
 # Miscellaneous Utilities
@@ -486,6 +506,11 @@ CONFIG_FEATURE_IFUPDOWN_IPV6=y
 # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
 # CONFIG_FEATURE_INETD_RPC is not set
 # CONFIG_IP is not set
+# CONFIG_FEATURE_IP_ADDRESS is not set
+# CONFIG_FEATURE_IP_LINK is not set
+# CONFIG_FEATURE_IP_ROUTE is not set
+# CONFIG_FEATURE_IP_TUNNEL is not set
+# CONFIG_FEATURE_IP_SHORT_FORMS is not set
 # CONFIG_IPADDR is not set
 # CONFIG_IPLINK is not set
 # CONFIG_IPROUTE is not set
@@ -523,7 +548,7 @@ CONFIG_APP_UDHCPC=y
 #
 # CONFIG_APP_UDHCPD is not set
 CONFIG_APP_UDHCPC=y
-CONFIG_APP_DUMPLEASES=y
+# CONFIG_APP_DUMPLEASES is not set
 CONFIG_FEATURE_UDHCP_SYSLOG=y
 # CONFIG_FEATURE_UDHCP_DEBUG is not set
 # CONFIG_VCONFIG is not set
============================================================
--- packages/busybox/busybox_1.2.1.bb	bbe33912384542abb69cc536abf7587f2d742a05
+++ packages/busybox/busybox_1.2.1.bb	6aeb42b7b6426fba0b15b3c8d38ec22cd592d686
@@ -10,7 +10,7 @@ PRIORITY = "required"
 LICENSE = "GPL"
 SECTION = "base"
 PRIORITY = "required"
-PR = "r1.3"
+PR = "r1.5"
 
 SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \
 	   file://dhcp-hostname.patch;patch=1 \
@@ -26,30 +26,36 @@ SRC_URI = "http://www.busybox.net/downlo
 	   file://default.script \
 	   file://syslog.conf \
 	   file://mount.busybox \
-	   file://umount.busybox"
+	   file://umount.busybox \
+	   file://busybox-mdev.sh \
+	   file://mdev.conf \
+	   "
 
 SRC_URI_append_nylon = " file://xargs-double-size.patch;patch=1"
 
 export EXTRA_CFLAGS = "${CFLAGS}"
 EXTRA_OEMAKE_append = " CROSS=${HOST_PREFIX}"
-PACKAGES =+ "${PN}-httpd ${PN}-udhcpd"
+PACKAGES =+ "${PN}-httpd ${PN}-udhcpd ${PN}-mdev"
 
 FILES_${PN}-httpd = "${sysconfdir}/init.d/busybox-httpd /srv/www"
 FILES_${PN}-udhcpd = "${sysconfdir}/init.d/busybox-udhcpd"
+FILES_${PN}-mdev = "${sysconfdir}/init.d/busybox-mdev.sh ${sysconfdir}/mdev.conf"
 
 FILES_${PN} += " ${datadir}/udhcpc"
 
-INITSCRIPT_PACKAGES = "${PN} ${PN}-httpd ${PN}-udhcpd"
+INITSCRIPT_PACKAGES = "${PN} ${PN}-httpd ${PN}-udhcpd ${PN}-mdev"
 INITSCRIPT_NAME_${PN}-httpd = "busybox-httpd"
 INITSCRIPT_NAME_${PN}-udhcpd = "busybox-udhcpd" 
+INITSCRIPT_NAME_${PN}-mdev = "busybox-mdev.sh"
+INITSCRIPT_PARAMS_${PN}-mdev = "start 04 S ."
 INITSCRIPT_NAME_${PN} = "syslog"
 CONFFILES_${PN} = "${sysconfdir}/syslog.conf"
 
+inherit cml1 update-rc.d  
+
 # This disables the syslog startup links in openslug (see openslug-init)
-INITSCRIPT_PARAMS_${PN}_openslug = "start 20 ."
+# INITSCRIPT_PARAMS_${PN}_openslug = "start 20 ." #out-of-date?
 
-inherit cml1 update-rc.d
-
 do_configure () {
 	install -m 0644 ${WORKDIR}/defconfig ${S}/.config.oe
 
@@ -115,7 +121,7 @@ do_install () {
 		install -m 0755 ${WORKDIR}/hwclock.sh ${D}${sysconfdir}/init.d/
 	fi
 	if grep "CONFIG_APP_UDHCPC=y" ${WORKDIR}/defconfig; then 
-		# Move dhcpc back to /usr/sbin/udhcpc
+		# Move dhcpc back to /sbin/udhcpc
 		install -d ${D}${base_sbindir}
 		mv ${D}/busybox${base_sbindir}/udhcpc ${D}${base_sbindir}/
 
@@ -125,6 +131,15 @@ do_install () {
 		install -m 0755 ${WORKDIR}/default.script ${D}${datadir}/udhcpc/default.script
 	fi
 
+	if grep "CONFIG_MDEV=y" ${WORKDIR}/defconfig; then
+		# Move mdev back to /sbin/mdev
+		install -d ${D}${base_sbindir}
+		mv ${D}/busybox${base_sbindir}/mdev ${D}${base_sbindir}/
+
+		install -m 644 ${WORKDIR}/mdev.conf ${D}${sysconfdir}/
+		install -m 0755 ${WORKDIR}/busybox-mdev.sh ${D}${sysconfdir}/init.d/
+	fi
+
 	install -m 0644 ${S}/busybox.links ${D}${sysconfdir}
 }
 






More information about the Openembedded-commits mailing list