diff options
author | Andrea Adami <andrea.adami@gmail.com> | 2010-05-29 00:23:46 +0200 |
---|---|---|
committer | Andrea Adami <andrea.adami@gmail.com> | 2010-05-29 00:49:17 +0200 |
commit | 28bc48904e31c3a63cf5a60bc005ed8fb359cc52 (patch) | |
tree | 11931adc91f58fc8e0fd47e85bda300c5cd3808e | |
parent | c027cfceec87f66e5996f098a1ede9f5a33e88fa (diff) |
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.patch | 97 | ||||
-rw-r--r-- | recipes/udev/udev_151.bb | 3 |
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 " |