From 4b46c1f6e891b1ddd5968536440b888661fade3e Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 31 Aug 2005 10:45:47 +0000 Subject: Initial population git-svn-id: https://svn.o-hand.com/repos/poky@1 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- openembedded/packages/udev/files/init | 178 +++++++++++++++++++++ .../packages/udev/files/noasmlinkage.patch | 27 ++++ openembedded/packages/udev/files/tmpfs.patch | 16 ++ .../packages/udev/udev-065/fix-alignment.patch | 24 +++ openembedded/packages/udev/udev-065/flags.patch | 66 ++++++++ .../packages/udev/udev-065/noasmlinkage.patch | 38 +++++ .../packages/udev/udev-065/tty-symlinks.patch | 11 ++ openembedded/packages/udev/udev.inc | 42 +++++ openembedded/packages/udev/udev_065.bb | 22 +++ 9 files changed, 424 insertions(+) create mode 100755 openembedded/packages/udev/files/init create mode 100644 openembedded/packages/udev/files/noasmlinkage.patch create mode 100644 openembedded/packages/udev/files/tmpfs.patch create mode 100644 openembedded/packages/udev/udev-065/fix-alignment.patch create mode 100644 openembedded/packages/udev/udev-065/flags.patch create mode 100644 openembedded/packages/udev/udev-065/noasmlinkage.patch create mode 100644 openembedded/packages/udev/udev-065/tty-symlinks.patch create mode 100644 openembedded/packages/udev/udev.inc create mode 100644 openembedded/packages/udev/udev_065.bb (limited to 'openembedded/packages/udev') diff --git a/openembedded/packages/udev/files/init b/openembedded/packages/udev/files/init new file mode 100755 index 000000000..16efb3154 --- /dev/null +++ b/openembedded/packages/udev/files/init @@ -0,0 +1,178 @@ +#!/bin/sh -e + +PATH="/usr/sbin:/usr/bin:/sbin:/bin" + +UDEVSTART=/sbin/udevstart + +# default maximum size of the /dev ramfs +ramfs_size="1M" + +[ -x $UDEVSTART ] || exit 0 + +. /etc/udev/udev.conf + +case "$(uname -r)" in + 2.[012345].*) + echo "udev requires a kernel >= 2.6, not started." + exit 0 + ;; +esac + +if ! grep -q '[[:space:]]ramfs$' /proc/filesystems; then + echo "udev requires ramfs support, not started." + exit 0 +fi + +if [ ! -e /proc/sys/kernel/hotplug ]; then + echo "udev requires hotplug support, not started." + exit 0 +fi + +############################################################################## + +# we need to unmount /dev/pts/ and remount it later over the ramfs +unmount_devpts() { + if mountpoint -q /dev/pts/; then + umount -l /dev/pts/ + fi + + if mountpoint -q /dev/shm/; then + umount -l /dev/shm/ + fi +} + +# mount a ramfs over /dev, if somebody did not already do it +mount_ramfs() { + if grep -E -q "^[^[:space:]]+ /dev ramfs" /proc/mounts; then + return 0 + fi + + # /.dev is used by /sbin/MAKEDEV to access the real /dev directory. + # if you don't like this, remove /.dev/. + [ -d /.dev ] && mount --bind /dev /.dev + + echo -n "Mounting a ramfs over /dev..." + mount -n -o size=$ramfs_size,mode=0755 -t ramfs none /dev + echo "done." +} + +# I hate this hack. -- Md +make_extra_nodes() { + if [ -f /etc/udev/links.conf ]; then + grep '^[^#]' /etc/udev/links.conf | \ + while read type name arg1; do + [ "$type" -a "$name" -a ! -e "/dev/$name" -a ! -L "/dev/$name" ] ||continue + case "$type" in + L) + ln -s $arg1 /dev/$name + ;; + D) + mkdir -p /dev/$name + ;; + M) + mknod -m 600 /dev/$name $arg1 + ;; + *) + echo "unparseable line ($type $name $arg1)" + ;; + esac + done + fi +} + +############################################################################## + +if [ "$udev_root" != "/dev" ]; then + echo "WARNING: udev_root != /dev" + +case "$1" in + start) + if [ -e "$udev_root/.udev.tdb" ]; then + if mountpoint -q /dev/; then + echo "FATAL: udev is already active on $udev_root." + exit 1 + else + echo "WARNING: .udev.tdb already exists on the old $udev_root!" + fi + fi + mount -n -o size=$ramfs_size,mode=0755 -t ramfs none $udev_root + echo -n "Creating initial device nodes..." + $UDEVSTART + echo "done." + ;; + stop) + start-stop-daemon -K -x /sbin/udevd + echo -n "Unmounting $udev_root..." + # unmounting with -l should never fail + if umount -l $udev_root; then + echo "done." + else + echo "failed." + fi + ;; + restart|force-reload) + $0 stop + $0 start + ;; + *) + echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}" + exit 1 + ;; +esac + + exit 0 +fi # udev_root != /dev/ + +############################################################################## +# When modifying this script, do not forget that between the time that +# the new /dev has been mounted and udevstart has been run there will be +# no /dev/null. This also means that you cannot use the "&" shell command. + +case "$1" in + start) + if [ -e "$udev_root/.udev.tdb" ]; then + if mountpoint -q /dev/; then + echo "FATAL: udev is already active on $udev_root." + exit 1 + else + echo "WARNING: .udev.tdb already exists on the old $udev_root!" + fi + fi + unmount_devpts + mount_ramfs + ACTION=add + echo -n "Creating initial device nodes..." + $UDEVSTART + make_extra_nodes + echo "done." +# /etc/init.d/mountvirtfs start + ;; + stop) + start-stop-daemon -K -x /sbin/udevd + unmount_devpts + echo -n "Unmounting /dev..." + # unmounting with -l should never fail + if umount -l /dev; then + echo "done." + umount -l /.dev || true +# /etc/init.d/mountvirtfs start + else + echo "failed." + fi + ;; + restart|force-reload) + start-stop-daemon -K -x /sbin/udevd + echo -n "Recreating device nodes..." + ACTION=add + $UDEVSTART + make_extra_nodes + echo "done." + ;; + *) + echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}" + exit 1 + ;; +esac + +exit 0 + diff --git a/openembedded/packages/udev/files/noasmlinkage.patch b/openembedded/packages/udev/files/noasmlinkage.patch new file mode 100644 index 000000000..1694d4d66 --- /dev/null +++ b/openembedded/packages/udev/files/noasmlinkage.patch @@ -0,0 +1,27 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- udev-042/udev.c~noasmlinkage ++++ udev-042/udev.c +@@ -60,7 +60,7 @@ + } + #endif + +-static void asmlinkage sig_handler(int signum) ++static void sig_handler(int signum) + { + switch (signum) { + case SIGALRM: +--- udev-042/udevd.c~noasmlinkage ++++ udev-042/udevd.c +@@ -308,7 +308,7 @@ + return; + } + +-static void asmlinkage sig_handler(int signum) ++static void sig_handler(int signum) + { + int rc; + diff --git a/openembedded/packages/udev/files/tmpfs.patch b/openembedded/packages/udev/files/tmpfs.patch new file mode 100644 index 000000000..9d0d8b451 --- /dev/null +++ b/openembedded/packages/udev/files/tmpfs.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- udev-031/extras/start_udev~tmpfs 2004-09-10 17:10:03.000000000 -0400 ++++ udev-031/extras/start_udev 2004-09-11 15:18:15.560789160 -0400 +@@ -85,7 +85,7 @@ + fi + + echo "mounting... ramfs at $udev_root" +-mount -n -t ramfs none $udev_root ++mount -n -t ramfs none $udev_root || mount -n -t tmpfs none $udev_root + + # propogate /udev from /sys + echo "Creating initial udev device nodes:" diff --git a/openembedded/packages/udev/udev-065/fix-alignment.patch b/openembedded/packages/udev/udev-065/fix-alignment.patch new file mode 100644 index 000000000..8c7b8b5ac --- /dev/null +++ b/openembedded/packages/udev/udev-065/fix-alignment.patch @@ -0,0 +1,24 @@ +diff --git a/udev_rules_parse.c b/udev_rules_parse.c +--- a/udev_rules_parse.c ++++ b/udev_rules_parse.c +@@ -241,6 +241,7 @@ static int add_to_rules(struct udev_rule + int valid; + char *linepos; + char *attr; ++ size_t padding; + int retval; + + /* get all the keys */ +@@ -506,6 +507,11 @@ static int add_to_rules(struct udev_rule + + /* grow buffer and add rule */ + rule_size = sizeof(struct udev_rule) + rule->bufsize; ++ padding = (sizeof(size_t) - rule_size % sizeof(size_t)) % sizeof(size_t); ++ dbg("add %zi padding bytes", padding); ++ rule_size += padding; ++ rule->bufsize += padding; ++ + rules->buf = realloc(rules->buf, rules->bufsize + rule_size); + if (!rules->buf) { + err("realloc failed"); + diff --git a/openembedded/packages/udev/udev-065/flags.patch b/openembedded/packages/udev/udev-065/flags.patch new file mode 100644 index 000000000..d95daa51e --- /dev/null +++ b/openembedded/packages/udev/udev-065/flags.patch @@ -0,0 +1,66 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- udev-065/Makefile~flags ++++ udev-065/Makefile +@@ -106,11 +106,11 @@ + # check if compiler option is supported + cc-supports = ${shell if $(CC) ${1} -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi;} + +-CFLAGS += -Wall -fno-builtin -Wchar-subscripts -Wpointer-arith \ ++override CFLAGS += -Wall -fno-builtin -Wchar-subscripts -Wpointer-arith \ + -Wstrict-prototypes -Wsign-compare +-CFLAGS += $(call cc-supports, -Wdeclaration-after-statement, ) +-CFLAGS += -pipe +-CFLAGS += -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 ++override CFLAGS += $(call cc-supports, -Wdeclaration-after-statement, ) ++override CFLAGS += -pipe ++override CFLAGS += -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 + + # use '-Os' optimization if available, else use -O2 + OPTFLAGS := $(call cc-supports, -Os, -O2) +@@ -154,16 +154,16 @@ + + SYSFS = $(PWD)/libsysfs/sysfs.a + +-CFLAGS += -I$(PWD)/libsysfs/sysfs \ ++override CFLAGS += -I$(PWD)/libsysfs/sysfs \ + -I$(PWD)/libsysfs + + ifeq ($(strip $(USE_LOG)),true) +- CFLAGS += -DUSE_LOG ++ override CFLAGS += -DUSE_LOG + endif + + # if DEBUG is enabled, then we do not strip or optimize + ifeq ($(strip $(DEBUG)),true) +- CFLAGS += -O1 -g -DDEBUG ++ override CFLAGS += -DDEBUG + LDFLAGS += -Wl + STRIPCMD = /bin/true -Since_we_are_debugging + else +@@ -180,18 +180,18 @@ + CC = $(KLCC) + LD = $(KLCC) + else +- CFLAGS += -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations ++ override CFLAGS += -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations + endif + + ifeq ($(strip $(USE_SELINUX)),true) + UDEV_OBJS += udev_selinux.o + LIB_OBJS += -lselinux +- CFLAGS += -DUSE_SELINUX ++ override CFLAGS += -DUSE_SELINUX + endif + + ifeq ($(strip $(USE_STATIC)),true) +- CFLAGS += -DUSE_STATIC +- LDFLAGS += -static ++ override CFLAGS += -DUSE_STATIC ++ override LDFLAGS += -static + endif + + ifeq ($(strip $(V)),false) diff --git a/openembedded/packages/udev/udev-065/noasmlinkage.patch b/openembedded/packages/udev/udev-065/noasmlinkage.patch new file mode 100644 index 000000000..0d8e854c0 --- /dev/null +++ b/openembedded/packages/udev/udev-065/noasmlinkage.patch @@ -0,0 +1,38 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- udev-062/udev.c~noasmlinkage.patch ++++ udev-062/udev.c +@@ -54,7 +54,7 @@ + } + #endif + +-static void asmlinkage sig_handler(int signum) ++static void sig_handler(int signum) + { + switch (signum) { + case SIGALRM: +--- udev-062/udevd.c~noasmlinkage.patch ++++ udev-062/udevd.c +@@ -639,7 +639,7 @@ + return msg; + } + +-static void asmlinkage sig_handler(int signum) ++static void sig_handler(int signum) + { + int rc; + +--- udev-062/udevstart.c~noasmlinkage.patch ++++ udev-062/udevstart.c +@@ -323,7 +323,7 @@ + exec_list(&device_list); + } + +-static void asmlinkage sig_handler(int signum) ++static void sig_handler(int signum) + { + switch (signum) { + case SIGALRM: diff --git a/openembedded/packages/udev/udev-065/tty-symlinks.patch b/openembedded/packages/udev/udev-065/tty-symlinks.patch new file mode 100644 index 000000000..6a458de64 --- /dev/null +++ b/openembedded/packages/udev/udev-065/tty-symlinks.patch @@ -0,0 +1,11 @@ +--- udev-063/etc/udev/udev.rules.devfs.orig 2005-07-27 19:55:51 +0200 ++++ udev-063/etc/udev/udev.rules.devfs 2005-07-27 19:56:49 +0200 +@@ -103,3 +103,8 @@ + + # raw devices + KERNEL="raw[0-9]*", NAME="raw/%k" ++ ++# tty devices ++KERNEL=="tty[0-9]*", SYMLINK="%k" ++KERNEL=="ttyS[0-9]*", SYMLINK="%k" ++ diff --git a/openembedded/packages/udev/udev.inc b/openembedded/packages/udev/udev.inc new file mode 100644 index 000000000..0b51df479 --- /dev/null +++ b/openembedded/packages/udev/udev.inc @@ -0,0 +1,42 @@ +DESCRIPTION = "udev is a program which dynamically creates and removes device nodes from \ +/dev/. It responds to /sbin/hotplug device events and requires a 2.6 kernel." +LICENSE = "GPL" + +UDEV_DEVFS_RULES ?= "0" + +PACKAGES =+ "udev-utils" +FILES_udev-utils = "${usrbindir}/udevinfo ${usrbindir}/udevtest" + +inherit update-rc.d + +INITSCRIPT_NAME = "udev" +INITSCRIPT_PARAMS = "start 04 S ." + +export CROSS = "${TARGET_PREFIX}" +export HOSTCC = "${BUILD_CC}" +export udevdir ?= "/dev" +export usrbindir := "${bindir}" +export usrsbindir := "${sbindir}" +export etcdir = "${sysconfdir}" +LD = "${CC}" +bindir = "/bin" +sbindir = "/sbin" + +UDEV_EXTRAS = "" +FILES_${PN} += "${usrbindir} ${usrsbindir}" +EXTRA_OEMAKE = "-e \ + 'EXTRAS=${UDEV_EXTRAS}' \ + 'STRIP=echo'" + +do_install () { + install -d ${D}${usrsbindir} \ + ${D}${sbindir} + oe_runmake 'DESTDIR=${D}' INSTALL=install install + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev + if [ "${UDEV_DEVFS_RULES}" = "1" ]; then + install -m 0644 ${S}/etc/udev/udev.rules.devfs ${D}${sysconfdir}/udev/rules.d/50-udev.rules + fi + install -d ${D}${sysconfdir}/udev/rules.d/ + install -m 0644 ${S}/etc/udev/debian/permissions.rules ${D}${sysconfdir}/udev/rules.d/ +} diff --git a/openembedded/packages/udev/udev_065.bb b/openembedded/packages/udev/udev_065.bb new file mode 100644 index 000000000..f6a278313 --- /dev/null +++ b/openembedded/packages/udev/udev_065.bb @@ -0,0 +1,22 @@ +SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \ + file://tmpfs.patch;patch=1 \ + file://noasmlinkage.patch;patch=1 \ + file://flags.patch;patch=1 \ + file://tty-symlinks.patch;patch=1 \ + file://init" + +include udev.inc + +PR = "r0" +UDEV_EXTRAS = "extras/scsi_id/ extras/volume_id/ extras/run_directory/" + +#FIXME UDEV MIGRATION PLAN: +#FIXME a) udevd is now a netlink daemon and needs to be started by the init script (ours is way too old) +#FIXME b) sbin/hotplug should no longer be called by the kernel, i.e. echo "" >/proc/sys/kernel/hotplug +#FIXME done c) until d) happens, udev will emulate hotplugd behaviour (see do_install_append() +#FIXME d) eventually hotplug should no longer be used at all, all agents shall be converted to udev rules + +do_install_append() { + install -m 0755 extras/run_directory/udev_run_hotplugd ${D}${sbindir}/ + echo RUN+="/sbin/udev_run_hotplugd" >>${D}${sysconfdir}/udev/rules.d/50-udev.rules +} -- cgit v1.2.3