1 DESCRIPTION = "udev is a daemon which dynamically creates and removes device nodes from \
2 /dev/, handles hotplug events and loads drivers at boot time. It replaces \
3 the hotplug package and requires a kernel not older than 2.6.12."
7 DEFAULT_PREFERENCE = "-1"
11 # needed for init.d script
12 RDEPENDS_${PN} += "udev-utils"
14 SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
15 file://mount.blacklist \
20 file://devfs-udev.rules \
22 file://permissions.rules \
31 SRC_URI_append_h2200 = " file://50-hostap_cs.rules "
32 PACKAGE_ARCH_h2200 = "h2200"
35 SRC_URI_append_bug = " \
37 file://10-mx31.rules \
38 file://bmi_eventpipe.sh "
40 PACKAGE_ARCH_bug = "bug"
42 inherit update-rc.d autotools_stage
44 # Put stuff in /lib and /sbin
45 export sbindir="${base_sbindir}"
47 EXTRA_OECONF += " --with-udev-prefix= \
48 --with-libdir-name=${base_libdir} \
51 INITSCRIPT_NAME = "udev"
52 INITSCRIPT_PARAMS = "start 03 S ."
54 PACKAGES =+ "udev-utils libvolume-id libvolume-id-dev"
56 FILES_libvolume-id-dev = "${includedir}/libvolume_id.h ${libdir}/libvolume_id.a ${libdir}/libvolume_id.so ${libdir}/pkgconfig/libvolume_id.pc"
57 FILES_udev-utils = "${usrbindir}/udevinfo ${sbindir}/udevadm ${usrbindir}/udevtest"
58 FILES_libvolume-id = "${base_libdir}/libvolume_id.so.*"
60 RPROVIDES_${PN} = "hotplug"
61 FILES_${PN} += "${usrbindir}/* ${usrsbindir}/udevd"
62 FILES_${PN}-dbg += "${usrbindir}/.debug ${usrsbindir}/.debug"
64 # udev installs binaries under $(udev_prefix)/lib/udev, even if ${libdir}
66 FILES_${PN} += "/lib/udev/* /lib/udev/*"
67 FILES_${PN}-dbg += "/lib/udev/.debug"
70 install -d ${D}${usrsbindir} \
72 oe_runmake 'DESTDIR=${D}' INSTALL=install install
73 install -d ${D}${sysconfdir}/init.d
74 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
75 install -m 0755 ${WORKDIR}/cache ${D}${sysconfdir}/init.d/udev-cache
77 install -d ${D}${sysconfdir}/default
78 install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/udev
80 # Move udev rules from $(udev_prefix)/lib to /etc.
81 # This is hardcoded to $(udev_prefix)/lib/udev/rules.d in the
82 # Makefile, even if libdir is lib64.
83 mv ${D}/lib/udev/rules.d ${D}${sysconfdir}/udev/
85 cp ${S}/rules/rules.d/* ${D}${sysconfdir}/udev/rules.d/
86 cp ${S}/rules/packages/* ${D}${sysconfdir}/udev/rules.d/
88 install -m 0644 ${WORKDIR}/mount.blacklist ${D}${sysconfdir}/udev/
89 install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
90 install -m 0644 ${WORKDIR}/permissions.rules ${D}${sysconfdir}/udev/rules.d/permissions.rules
91 install -m 0644 ${WORKDIR}/run.rules ${D}${sysconfdir}/udev/rules.d/run.rules
92 install -m 0644 ${WORKDIR}/udev.rules ${D}${sysconfdir}/udev/rules.d/udev.rules
93 install -m 0644 ${WORKDIR}/links.conf ${D}${sysconfdir}/udev/links.conf
94 if [ "${UDEV_DEVFS_RULES}" = "1" ]; then
95 install -m 0644 ${WORKDIR}/devfs-udev.rules ${D}${sysconfdir}/udev/rules.d/devfs-udev.rules
98 touch ${D}${sysconfdir}/udev/saved.uname
99 touch ${D}${sysconfdir}/udev/saved.cmdline
100 touch ${D}${sysconfdir}/udev/saved.atags
102 install -d ${D}${sysconfdir}/udev/scripts/
104 install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh
105 install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts
108 do_install_append_h2200() {
109 install -m 0644 ${WORKDIR}/50-hostap_cs.rules ${D}${sysconfdir}/udev/rules.d/50-hostap_cs.rules
112 do_install_append_bug() {
113 install -m 0644 ${WORKDIR}/30-BUG.rules ${D}${sysconfdir}/udev/rules.d/30-BUG.rules
114 install -m 0644 ${WORKDIR}/10-mx31.rules ${D}${sysconfdir}/udev/rules.d/10-mx31.rules
115 install -m 0644 ${WORKDIR}/bmi_eventpipe.sh ${D}${sysconfdir}/udev/scripts/bmi_eventpipe.sh
118 # Create the cache after checkroot has run
119 pkg_postinst_${PN}_append() {
120 update-rc.d $OPT udev-cache start 12 S .
122 if [ -d $D/lib/udev/rules.d ] ; then
123 echo "$D/lib/udev/rules.d is not a symlink, fixing that"
124 mv $D/lib/udev/rules.d/* $D${sysconfdir}/udev/rules.d/
125 rm -rf $D/lib/udev/rules.d
126 ln -sf ${sysconfdir}/udev/rules.d $D/lib/udev/
131 install -m 0644 ${S}/extras/volume_id/lib/libvolume_id.h ${STAGING_INCDIR}
132 oe_libinstall -C extras/volume_id/lib -so libvolume_id ${STAGING_LIBDIR}
133 oe_libinstall -C udev/lib -so libudev ${STAGING_LIBDIR}
134 # Since we change exec_prefix above, autotools_stage_all will not see the .pc files
135 # When we upgrade to 145 with the path bugs fixed we can drop all this (see poky)
136 install -d ${STAGING_DIR_TARGET}${prefix}${libdir}/pkgconfig/
137 install ${S}/extras/volume_id/lib/libvolume_id.pc ${STAGING_DIR_TARGET}${prefix}${libdir}/pkgconfig/
138 install ${S}/udev/lib/libudev.pc ${STAGING_DIR_TARGET}${prefix}${libdir}/pkgconfig/
139 install -d ${STAGING_DIR_TARGET}${prefix}${includedir}/
140 install ${S}/extras/volume_id/lib/libvolume_id.h ${STAGING_DIR_TARGET}${prefix}${includedir}/
141 install ${S}/udev/lib/libudev.h ${STAGING_DIR_TARGET}${prefix}${includedir}/