aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/udev
diff options
context:
space:
mode:
authorStanislav Brabec <sbrabec@suse.cz>2010-07-24 15:37:21 +0200
committerStanislav Brabec <sbrabec@suse.cz>2010-07-24 15:37:21 +0200
commitbf242510ce91aef3472a1ac4521410a867ea0964 (patch)
treeeee010f06431e2b9567b19d1bfadeb5f034b62cc /recipes/udev
parente5dd04945be46561a37f9c4401f4169cb63a7598 (diff)
downloadopenembedded-bf242510ce91aef3472a1ac4521410a867ea0964.tar.gz
udev: Added support for udev-compat.
* http://lists.linuxtogo.org/pipermail/openembedded-devel/2010-July/021662.html Signed-off-by: Stanislav Brabec <utx@penguin.cz> Acked-by: Andrea Adami <andrea.adami@gmail.com>
Diffstat (limited to 'recipes/udev')
-rw-r--r--recipes/udev/files/udev-compat-wrapper-patch37
-rw-r--r--recipes/udev/udev.inc19
-rw-r--r--recipes/udev/udev_151.bb17
-rw-r--r--recipes/udev/udev_154.bb17
4 files changed, 89 insertions, 1 deletions
diff --git a/recipes/udev/files/udev-compat-wrapper-patch b/recipes/udev/files/udev-compat-wrapper-patch
new file mode 100644
index 0000000000..a3e312d6a6
--- /dev/null
+++ b/recipes/udev/files/udev-compat-wrapper-patch
@@ -0,0 +1,37 @@
+This patch should be applied on platforms which support kernels < 2.6.27 and need udev-compat package.
+
+It should be applied after:
+sed -i "s:/sbin/udevd:\$UDEVD:g;s:/sbin/udevadm:\$UDEVADM:g" init
+
+It has not .patch suffix, because such files would not be copied to
+WORKDIR and cannot be selectively applied on another source file.
+
+--- init
++++ init
+@@ -11,6 +11,17 @@
+
+ export TZ=/etc/localtime
+
++UDEVD="/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-compat ] ; then
++ KERNELMICROVER="$(uname -r | awk -F. '{print $3}')"
++ if [ $KERNELMICROVER -lt 27 ] ; then
++ UDEVD="/sbin/udevd-compat"
++ UDEVADM="/sbin/udevadm-compat"
++ fi
++fi
++
+ [ -d /sys/class ] || exit 1
+ [ -r /proc/mounts ] || exit 1
+ [ -x $UDEVD ] || exit 1
+@@ -21,6 +32,8 @@
+ if [ -x /sbin/pidof ]; then
+ pid=`/sbin/pidof -x udevd`
+ [ -n "$pid" ] && kill $pid
++ pid=`/sbin/pidof -x udevd-compat`
++ [ -n "$pid" ] && kill $pid
+ fi
+ }
+
diff --git a/recipes/udev/udev.inc b/recipes/udev/udev.inc
index c79da97074..f4f1c4008d 100644
--- a/recipes/udev/udev.inc
+++ b/recipes/udev/udev.inc
@@ -11,7 +11,8 @@ SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
file://mount.sh \
file://network.sh \
file://local.rules \
- file://init"
+ file://init \
+ file://udev-compat-wrapper-patch"
INC_PR = "r27"
@@ -42,6 +43,22 @@ EXTRA_OEMAKE = "-e \
'EXTRAS=${UDEV_EXTRAS}' \
'STRIP=echo'"
+RPROVIDES_udev_spitz = "udev-compat-wrapper"
+do_unpack_append_spitz() {
+ bb.build.exec_func('do_apply_compat_wrapper', d)
+}
+RPROVIDES_udev_akita = "udev-compat-wrapper"
+do_unpack_append_akita() {
+ bb.build.exec_func('do_apply_compat_wrapper', d)
+}
+# Modify init script on platforms that need to boot old kernels:
+do_apply_compat_wrapper() {
+ cd ${WORKDIR}
+ sed -i "s:/sbin/udevd:\$UDEVD:g;s:/sbin/udevadm:\$UDEVADM:g" init
+ patch <udev-compat-wrapper-patch
+ cd -
+}
+
do_install () {
install -d ${D}${usrsbindir} \
${D}${sbindir}
diff --git a/recipes/udev/udev_151.bb b/recipes/udev/udev_151.bb
index 7be56d29cb..ce97a7b675 100644
--- a/recipes/udev/udev_151.bb
+++ b/recipes/udev/udev_151.bb
@@ -29,6 +29,7 @@ SRC_URI += " \
file://default \
file://init \
file://cache \
+ file://udev-compat-wrapper-patch \
"
SRC_URI_append_h2200 = " file://50-hostap_cs.rules "
@@ -74,6 +75,22 @@ FILES_${PN}-dbg += "${usrbindir}/.debug ${usrsbindir}/.debug"
FILES_${PN} += "/lib/udev* ${libdir}/ConsoleKit"
FILES_${PN}-dbg += "/lib/udev/.debug"
+RPROVIDES_udev_spitz = "udev-compat-wrapper"
+do_unpack_append_spitz() {
+ bb.build.exec_func('do_apply_compat_wrapper', d)
+}
+RPROVIDES_udev_akita = "udev-compat-wrapper"
+do_unpack_append_akita() {
+ bb.build.exec_func('do_apply_compat_wrapper', d)
+}
+# Modify init script on platforms that need to boot old kernels:
+do_apply_compat_wrapper() {
+ cd ${WORKDIR}
+ sed -i "s:/sbin/udevd:\$UDEVD:g;s:/sbin/udevadm:\$UDEVADM:g" init
+ patch <udev-compat-wrapper-patch
+ cd -
+}
+
do_install () {
install -d ${D}${usrsbindir} \
${D}${sbindir}
diff --git a/recipes/udev/udev_154.bb b/recipes/udev/udev_154.bb
index 5e90e88f58..60322151f3 100644
--- a/recipes/udev/udev_154.bb
+++ b/recipes/udev/udev_154.bb
@@ -30,6 +30,7 @@ SRC_URI += " \
file://default \
file://init \
file://cache \
+ file://udev-compat-wrapper-patch \
"
SRC_URI_append_h2200 = " file://50-hostap_cs.rules "
@@ -75,6 +76,22 @@ FILES_${PN}-dbg += "${usrbindir}/.debug ${usrsbindir}/.debug"
FILES_${PN} += "/lib/udev* ${libdir}/ConsoleKit"
FILES_${PN}-dbg += "/lib/udev/.debug"
+RPROVIDES_udev_spitz = "udev-compat-wrapper"
+do_unpack_append_spitz() {
+ bb.build.exec_func('do_apply_compat_wrapper', d)
+}
+RPROVIDES_udev_akita = "udev-compat-wrapper"
+do_unpack_append_akita() {
+ bb.build.exec_func('do_apply_compat_wrapper', d)
+}
+# Modify init script on platforms that need to boot old kernels:
+do_apply_compat_wrapper() {
+ cd ${WORKDIR}
+ sed -i "s:/sbin/udevd:\$UDEVD:g;s:/sbin/udevadm:\$UDEVADM:g" init
+ patch <udev-compat-wrapper-patch
+ cd -
+}
+
do_install () {
install -d ${D}${usrsbindir} \
${D}${sbindir}