summaryrefslogtreecommitdiff
path: root/openembedded/packages/udev
diff options
context:
space:
mode:
authorRichard Purdie <richard@openedhand.com>2005-08-31 10:45:47 +0000
committerRichard Purdie <richard@openedhand.com>2005-08-31 10:45:47 +0000
commit4b46c1f6e891b1ddd5968536440b888661fade3e (patch)
treee0ba2c1f56f61b868bf746da5c4feabb25b800b2 /openembedded/packages/udev
downloadopenembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.tar.gz
openembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.tar.bz2
openembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.tar.xz
openembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.zip
Initial population
git-svn-id: https://svn.o-hand.com/repos/poky@1 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'openembedded/packages/udev')
-rwxr-xr-xopenembedded/packages/udev/files/init178
-rw-r--r--openembedded/packages/udev/files/noasmlinkage.patch27
-rw-r--r--openembedded/packages/udev/files/tmpfs.patch16
-rw-r--r--openembedded/packages/udev/udev-065/fix-alignment.patch24
-rw-r--r--openembedded/packages/udev/udev-065/flags.patch66
-rw-r--r--openembedded/packages/udev/udev-065/noasmlinkage.patch38
-rw-r--r--openembedded/packages/udev/udev-065/tty-symlinks.patch11
-rw-r--r--openembedded/packages/udev/udev.inc42
-rw-r--r--openembedded/packages/udev/udev_065.bb22
9 files changed, 424 insertions, 0 deletions
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 = "<override me>"
+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
+}