diff options
author | Michael-Luke Jones <mlj28@cam.ac.uk> | 2006-09-23 15:26:05 +0000 |
---|---|---|
committer | Michael-Luke Jones <mlj28@cam.ac.uk> | 2006-09-23 15:26:05 +0000 |
commit | 45184c3c6fefe0d04d3821a712bb97f0fbca245a (patch) | |
tree | a685081d74f8a5e7540cac2e109089676d715817 /packages/busybox | |
parent | 7460aa74e45f13b05f479550b3d2c9d9afdae494 (diff) |
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
Diffstat (limited to 'packages/busybox')
-rwxr-xr-x | packages/busybox/busybox-1.2.1/busybox-mdev.sh | 69 | ||||
-rw-r--r-- | packages/busybox/busybox-1.2.1/mdev.conf | 0 | ||||
-rw-r--r-- | packages/busybox/busybox-1.2.1/slugos/defconfig | 49 | ||||
-rw-r--r-- | packages/busybox/busybox-1.2.1/slugos/mdev.conf | 11 | ||||
-rw-r--r-- | packages/busybox/busybox_1.2.1.bb | 31 |
5 files changed, 140 insertions, 20 deletions
diff --git a/packages/busybox/busybox-1.2.1/busybox-mdev.sh b/packages/busybox/busybox-1.2.1/busybox-mdev.sh new file mode 100755 index 0000000000..9744322fa9 --- /dev/null +++ b/packages/busybox/busybox-1.2.1/busybox-mdev.sh @@ -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 diff --git a/packages/busybox/busybox-1.2.1/mdev.conf b/packages/busybox/busybox-1.2.1/mdev.conf new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/busybox/busybox-1.2.1/mdev.conf diff --git a/packages/busybox/busybox-1.2.1/slugos/defconfig b/packages/busybox/busybox-1.2.1/slugos/defconfig index c35b4f7f70..2985e0fbca 100644 --- a/packages/busybox/busybox-1.2.1/slugos/defconfig +++ b/packages/busybox/busybox-1.2.1/slugos/defconfig @@ -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_FEATURE_2_6_MODULES=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_TRACEROUTE=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 diff --git a/packages/busybox/busybox-1.2.1/slugos/mdev.conf b/packages/busybox/busybox-1.2.1/slugos/mdev.conf new file mode 100644 index 0000000000..31acaf83a3 --- /dev/null +++ b/packages/busybox/busybox-1.2.1/slugos/mdev.conf @@ -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 diff --git a/packages/busybox/busybox_1.2.1.bb b/packages/busybox/busybox_1.2.1.bb index c27544303a..8e1204ef78 100644 --- a/packages/busybox/busybox_1.2.1.bb +++ b/packages/busybox/busybox_1.2.1.bb @@ -10,7 +10,7 @@ HOMEPAGE = "http://www.busybox.net" 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,29 +26,35 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \ 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" -# This disables the syslog startup links in openslug (see openslug-init) -INITSCRIPT_PARAMS_${PN}_openslug = "start 20 ." +inherit cml1 update-rc.d -inherit cml1 update-rc.d +# This disables the syslog startup links in openslug (see openslug-init) +# INITSCRIPT_PARAMS_${PN}_openslug = "start 20 ." #out-of-date? 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} } |