aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrea Adami <andrea.adami@gmail.com>2010-05-29 00:23:46 +0200
committerAndrea Adami <andrea.adami@gmail.com>2010-05-29 00:49:17 +0200
commit28bc48904e31c3a63cf5a60bc005ed8fb359cc52 (patch)
tree11931adc91f58fc8e0fd47e85bda300c5cd3808e
parentc027cfceec87f66e5996f098a1ede9f5a33e88fa (diff)
downloadopenembedded-28bc48904e31c3a63cf5a60bc005ed8fb359cc52.tar.gz
udev: patch init of version 151 and support older kernels
* Some devices don't function properly when using a recent udev on an old * kernel, so udev will now try to fall back to an older version is present Signed-off-by: Koen Kooi <koen@openembedded.org>
-rw-r--r--recipes/udev/udev-151/udev-compat-static.patch97
-rw-r--r--recipes/udev/udev_151.bb3
2 files changed, 99 insertions, 1 deletions
diff --git a/recipes/udev/udev-151/udev-compat-static.patch b/recipes/udev/udev-151/udev-compat-static.patch
new file mode 100644
index 0000000000..22f1b99fe5
--- /dev/null
+++ b/recipes/udev/udev-151/udev-compat-static.patch
@@ -0,0 +1,97 @@
+--- /dev/null
++++ b/recipes/udev/udev-151/init
+@@ -0,0 +1,91 @@
++#!/bin/sh -e
++
++### BEGIN INIT INFO
++# Provides: udev
++# Required-Start: mountvirtfs
++# Required-Stop:
++# Default-Start: S
++# Default-Stop:
++# Short-Description: Start udevd, populate /dev and load drivers.
++### END INIT INFO
++
++export TZ=/etc/localtime
++
++KERNELMICROVER="$(uname -r | awk -F. '{print $3}')"
++
++DAEMON="/sbin/udevd"
++UDEVADM="/sbin/udevadm"
++
++# If we are running an old kernel and have a static udev present use that instead
++if [ -e /sbin/udevd-124-static ] ; then
++ if [ $KERNELMICROVER -lt 27 ] ; then
++ DAEMON="/sbin/udevd-124-static"
++ UDEVADM="/sbin/udevadm-124-static"
++ fi
++fi
++
++[ -d /sys/class ] || exit 1
++[ -r /proc/mounts ] || exit 1
++[ -x $DAEMON ] || exit 1
++[ -f /etc/default/udev ] && . /etc/default/udev
++[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
++
++kill_udevd() {
++ if [ -x /sbin/pidof ]; then
++ pid=`/sbin/pidof -x udevd`
++ [ -n "$pid" ] && kill $pid
++ fi
++}
++
++export ACTION=add
++# propagate /dev from /sys
++echo "Starting udev"
++
++# mount the tmpfs on /dev, if not already done
++LANG=C awk "\$2 == \"/dev\" && \$4 == \"tmpfs\" { exit 1 }" /proc/mounts && {
++ mount -n -o mode=0755 -t tmpfs none "/dev"
++ mkdir -m 0755 /dev/pts
++ mkdir -m 1777 /dev/shm
++}
++
++if [ "$DEVCACHE" != "" ]; then
++ # Invalidate udev cache if the kernel or its bootargs/cmdline have changed
++ [ -x /bin/uname ] && /bin/uname -mrspv > /tmp/uname || touch /tmp/uname
++ [ -r /proc/cmdline ] && cat /proc/cmdline > /tmp/cmdline || touch /tmp/cmdline
++ [ -r /proc/atags ] && cat /proc/atags > /tmp/atags || touch /tmp/atags
++ if [ -e $DEVCACHE ] && \
++ cmp -s /tmp/uname /etc/udev/saved.uname && \
++ cmp -s /tmp/cmdline /etc/udev/saved.cmdline && \
++ cmp -s /tmp/atags /etc/udev/saved.atags; then
++ (cd /; tar xf $DEVCACHE > /dev/null 2>&1)
++ not_first_boot=1
++ fi
++fi
++
++if [ ! -e "/lib/modules/$(uname -r)"/modules.dep ] ; then
++ mkdir -p /lib/modules/$(uname -r)
++ depmod -ae
++fi
++
++# make_extra_nodes
++kill_udevd > "/dev/null" 2>&1
++
++ # trigger the sorted events
++ echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
++ $DAEMON -d
++
++ $UDEVADM control --env STARTUP=1
++ if [ "$not_first_boot" != "" ];then
++ $UDEVADM trigger --subsystem-nomatch=tty --subsystem-nomatch=mem \
++ --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc \
++ --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics \
++ --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform
++ ($UDEVADM settle --timeout=3; $UDEVADM control --env STARTUP=)&
++ if [ "$DEVCACHE" != "" ]; then
++ rm -f /tmp/uname
++ rm -f /tmp/cmdline
++ rm -f /tmp/atags
++ fi
++ else
++ $UDEVADM trigger
++ $UDEVADM settle
++ fi
++
++exit 0
diff --git a/recipes/udev/udev_151.bb b/recipes/udev/udev_151.bb
index 9bf0872b8a..d4dfc53a75 100644
--- a/recipes/udev/udev_151.bb
+++ b/recipes/udev/udev_151.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "udev is a daemon which dynamically creates and removes device nod
the hotplug package and requires a kernel not older than 2.6.12."
LICENSE = "GPLv2+"
-PR = "r11"
+PR = "r12"
# Untested
DEFAULT_PREFERENCE = "-1"
@@ -27,6 +27,7 @@ SRC_URI += " \
file://default \
file://init \
file://cache \
+ file://udev-compat-static.patch \
"
SRC_URI_append_h2200 = " file://50-hostap_cs.rules "