From: Geoff Levand <geoffrey.lev...@am.sony.com> Update the udev package from udev-106 to udev-139.
The udev package no longer provides separate udev utilities like udevtrigger and udevsettle. These have been incorporated into the udev admin program udevadm. The init scripts have been updated to use udevadm where appropriate. The udevtrigger sub package has been replaced with a udevadm package. The udevextras sub package has been replaced with config options to the udev package. Udev now recommends using the directory '/lib/udev/devices' to initialize the '/dev' directory at startup. I setup the preinit script to check for '/lib/udev/devices', and copy it to '/dev/ if it is found, then to conditionally setup /dev the old way with mknod etc. Signed-off-by: Geoff Levand <geoffrey.lev...@am.sony.com> --- I put my name there as the udev package maintainer. If anyone would like to take that role, please let me know. package/base-files/files/etc/preinit | 12 - package/udev/Makefile | 171 +++++++++++-------- package/udev/files/20-input-grouping.rules | 9 - package/udev/patches/001-no_debug.patch | 22 -- package/udev/patches/002-udevtrigger_no_config.patch | 12 - package/udev/patches/003-portability.patch | 51 ----- package/udev/patches/010-udev-commit-2236dda.diff | 27 +++ package/udev/udev-config.in | 77 ++++++++ package/udev/udevextras-config.in | 57 ------ 9 files changed, 212 insertions(+), 226 deletions(-) --- a/package/base-files/files/etc/preinit +++ b/package/base-files/files/etc/preinit @@ -40,15 +40,19 @@ elif [ -x /sbin/hotplug2 ]; then elif [ -x /sbin/udevd ]; then mount -n -t tmpfs -o mode=0755 udev /dev - /sbin/udevd --daemon - /sbin/udevtrigger - /sbin/udevsettle + [ -d /lib/udev/devices ] && cp -af /lib/udev/devices/* /dev/ + [ -c /dev/console ] || mknod -m 0600 /dev/console c 5 1 + [ -c /dev/null ] || mknod -m 0666 /dev/null c 1 3 + /sbin/udevd --daemon --resolve-names=never + /sbin/udevadm trigger + /sbin/udevadm settle M0=/dev/pty/ptmx M1=/dev/pty/ptmx HOTPLUG= fi -mkdir -p /dev/pts /dev/shm +[ -d /dev/pts ] || mkdir -p /dev/pts +[ -d /dev/shm ] || mkdir -p /dev/shm mount devpts /dev/pts -t devpts # the shell really doesn't like having stdin/out closed --- a/package/udev/Makefile +++ b/package/udev/Makefile @@ -1,101 +1,130 @@ -# +# # Copyright (C) 2006-2008 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # -# $Id$ include $(TOPDIR)/rules.mk PKG_NAME:=udev -PKG_VERSION:=106 +PKG_VERSION:=139 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=...@kernel/linux/utils/kernel/hotplug/ -PKG_MD5SUM:=320ccd2d0f4540d10e021bafa14f8985 +PKG_MD5SUM:=7e705e237d29734c77bc26f6ccbc4594 include $(INCLUDE_DIR)/package.mk +PKG_INSTALL=1 + define Package/udev - SECTION:=utils - CATEGORY:=Utilities - DEPENDS:=...@linux_2_6 - TITLE:=Dynamic device management subsystem - URL:=http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html + SECTION:=base + CATEGORY:=Base system + TITLE:=Dynamic device management subsystem + URL:=http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html + DEPENDS:=+udevadm endef define Package/udev/description - udev provides a dynamic device directory containing only the files for - actually present devices. It creates or removes device node files in - the /dev directory, or it renames network interfaces. -endef - -define Package/udevtrigger -$(call Package/udev) - SECTION:=base - CATEGORY:=Base system - TITLE:=Small utility to request kernel devices events for coldplug -endef - -define Package/udevextras -$(call Package/udev) - TITLE:=Utilities for udev scripts, for general device discovery - MENU:=1 -endef - -define Package/udevextras/config - source "$(SOURCE)/udevextras-config.in" -endef - -UDEV_ALL_EXTRAS=ata_id cdrom_id dasd_id edd_id scsi_id path_id usb_id volume_id -UDEV_EXTRAS=$(strip $(foreach e, $(UDEV_ALL_EXTRAS), \ - $(if $(CONFIG_UDEVEXTRAS_$(e)),extras/$(e)))) - -define Build/Compile - $(MAKE) -C $(PKG_BUILD_DIR) \ - CROSS_COMPILE="$(TARGET_CROSS)" \ - STRIP="/bin/true" \ - OPTFLAGS="$(TARGET_CFLAGS)" \ - DESTDIR="$(PKG_INSTALL_DIR)" \ - INSTALL="install -c" \ - EXTRAS="$(UDEV_EXTRAS)" \ - VOLUME_ID_STATIC=true \ - all install + udev allows Linux users to have a dynamic /dev directory and it + provides the ability to have persistent device names. endef -define Package/udev/install - install -d -m0775 $(1)/etc/udev - $(CP) $(PKG_INSTALL_DIR)/etc/udev/* $(1)/etc/udev/ - install -d -m0775 $(1)/lib/udev - install -d -m0775 $(1)/sbin/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/udevcontrol $(1)/sbin/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/udevd $(1)/sbin/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/udevsettle $(1)/sbin/ - install -d -m0775 $(1)/usr/bin/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/udevinfo $(1)/usr/bin/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/udevtest $(1)/usr/bin/ - install -d -m0775 $(1)/usr/sbin/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/udevmonitor $(1)/usr/sbin/ - install -d -m0775 $(1)/etc/udev/rules.d - $(CP) files/20-input-grouping.rules $(1)/etc/udev/rules.d/ +define Package/udev/config + source "$(SOURCE)/udev-config.in" endef -define Package/udevtrigger/install +udev-args-$(CONFIG_UDEV_DISABLE_LOGGING) += --disable-logging +udev-args-$(CONFIG_UDEV_ENABLE_DEBUG) += --enable-debug + +CONFIGURE_ARGS += --prefix=/usr --exec-prefix= --sysconfdir=/etc \ + --sbindir=/sbin $(udev-args-y) + +udev-extra-bin-$(CONFIG_UDEVEXTRAS_ata_id) += /lib/udev/ata_id +udev-extra-bin-$(CONFIG_UDEVEXTRAS_cdrom_id) += /lib/udev/cdrom_id +udev-extra-bin-$(CONFIG_UDEVEXTRAS_create_floppy_devices) += \ + /lib/udev/create_floppy_devices +udev-extra-bin-$(CONFIG_UDEVEXTRAS_edd_id) += /lib/udev/edd_id +udev-extra-bin-$(CONFIG_UDEVEXTRAS_path_id) += /lib/udev/path_id +udev-extra-bin-$(CONFIG_UDEVEXTRAS_scsi_id) += /lib/udev/scsi_id +udev-extra-bin-$(CONFIG_UDEVEXTRAS_usb_id) += /lib/udev/usb_id +udev-extra-bin-$(CONFIG_UDEVEXTRAS_vol_id) += /lib/udev/vol_id + +define Package/udev/install + $(INSTALL_DIR) $(1)/etc/udev/rules.d + $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/udev/udev.conf $(1)/etc/udev + $(INSTALL_DIR) $(1)/sbin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/udevtrigger $(1)/sbin/ -endef + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/sbin/udevd \ + $(1)/sbin + + $(INSTALL_DIR) $(1)/lib/udev/rules.d + $(INSTALL_DATA) \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/50-firmware.rules \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/50-udev-default.rules \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/60-cdrom_id.rules \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/60-persistent-input.rules \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/60-persistent-serial.rules \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/60-persistent-storage.rules \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/60-persistent-storage-tape.rules \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/60-persistent-v4l.rules \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/61-persistent-storage-edd.rules \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/75-cd-aliases-generator.rules \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/75-persistent-net-generator.rules \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/79-fstab_import.rules \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/80-drivers.rules \ + $(PKG_INSTALL_DIR)/lib/udev/rules.d/95-udev-late.rules \ + $(1)/lib/udev/rules.d + + $(INSTALL_DIR) $(1)/lib + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/lib/libvolume_id.so.1 \ + $(PKG_INSTALL_DIR)/lib/libvolume_id.so.1.0.9 \ + $(1)/lib -define Package/udevextras/install - $(INSTALL_DIR) $(1)/etc/udev - $(CP) $(PKG_BUILD_DIR)/etc/udev/rules.d $(1)/etc/udev/ $(INSTALL_DIR) $(1)/lib/udev - $$(foreach f, $$(shell $(FIND) $(PKG_INSTALL_DIR)/lib/udev/ -type f), \ - $(CP) $$(f) $(1)/lib/udev/ ; \ - ) + $(INSTALL_BIN) \ + $(addprefix $(PKG_INSTALL_DIR),$(udev-extra-bin-y)) \ + $(PKG_INSTALL_DIR)/lib/udev/collect \ + $(PKG_INSTALL_DIR)/lib/udev/firmware.sh \ + $(PKG_INSTALL_DIR)/lib/udev/fstab_import \ + $(PKG_INSTALL_DIR)/lib/udev/write_cd_rules \ + $(PKG_INSTALL_DIR)/lib/udev/write_net_rules \ + $(1)/lib/udev/ + $(INSTALL_DATA) \ + $(PKG_INSTALL_DIR)/lib/udev/rule_generator.functions \ + $(1)/lib/udev/ +endef + +define Package/udevadm + $(call Package/udev) + SECTION:=base + CATEGORY:=Base system + DEPENDS:=...@linux_2_6 + TITLE:=The udev management tool +endef + +define Package/udevadm/description + udevadm controls the runtime behavior of udev, requests + kernel events, manages the event queue, and provides + simple debugging mechanisms. +endef + +define Package/udevadm/install + $(INSTALL_DIR) $(1)/sbin + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/sbin/udevadm \ + $(1)/sbin + + $(INSTALL_DIR) $(1)/lib + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/lib/libudev.so.0 \ + $(PKG_INSTALL_DIR)/lib/libudev.so.0.0.9 \ + $(1)/lib endef $(eval $(call BuildPackage,udev)) -$(eval $(call BuildPackage,udevtrigger)) -$(eval $(call BuildPackage,udevextras)) +$(eval $(call BuildPackage,udevadm)) --- a/package/udev/files/20-input-grouping.rules +++ /dev/null @@ -1,9 +0,0 @@ -# Input devices, group under /dev/input -SUBSYSTEM!="input", GOTO="input_grouping_end" - -KERNEL=="event[0-9]*", NAME="input/%k" -KERNEL=="mice", NAME="input/%k" -KERNEL=="mouse[0-9]*", NAME="input/%k" -KERNEL=="js[0-9]*", NAME="input/%k" - -LABEL="input_grouping_end" --- a/package/udev/patches/001-no_debug.patch +++ /dev/null @@ -1,22 +0,0 @@ -Index: udev-106/Makefile -=================================================================== ---- udev-106.orig/Makefile 2007-06-04 13:22:17.765154568 +0200 -+++ udev-106/Makefile 2007-06-04 13:22:17.831144536 +0200 -@@ -113,7 +113,7 @@ - AR = $(CROSS_COMPILE)ar - RANLIB = $(CROSS_COMPILE)ranlib - --CFLAGS = -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -+CFLAGS = -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 - WARNINGS = -Wstrict-prototypes -Wsign-compare -Wshadow \ - -Wchar-subscripts -Wmissing-declarations -Wnested-externs \ - -Wpointer-arith -Wcast-align -Wsign-compare -Wmissing-prototypes -@@ -130,7 +130,7 @@ - - # if DEBUG is enabled, then we do not strip - ifeq ($(strip $(DEBUG)),true) -- CFLAGS += -DDEBUG -+ CFLAGS += -g -DDEBUG - endif - - ifeq ($(strip $(USE_GCOV)),true) --- a/package/udev/patches/002-udevtrigger_no_config.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: udev-106/udevtrigger.c -=================================================================== ---- udev-106.orig/udevtrigger.c 2007-06-04 13:22:17.745157608 +0200 -+++ udev-106/udevtrigger.c 2007-06-04 13:22:18.022115504 +0200 -@@ -446,7 +446,6 @@ - }; - - logging_init("udevtrigger"); -- udev_config_init(); - dbg("version %s", UDEV_VERSION); - sysfs_init(); - --- a/package/udev/patches/003-portability.patch +++ /dev/null @@ -1,51 +0,0 @@ -Index: udev-106/Makefile -=================================================================== ---- udev-106.orig/Makefile 2007-06-04 13:22:17.831144536 +0200 -+++ udev-106/Makefile 2007-06-04 13:22:18.210086928 +0200 -@@ -246,13 +246,15 @@ - .PHONY: install-config - - install-man: -- $(INSTALL_DATA) -D udev.7 $(DESTDIR)$(mandir)/man7/udev.7 -- $(INSTALL_DATA) -D udevinfo.8 $(DESTDIR)$(mandir)/man8/udevinfo.8 -- $(INSTALL_DATA) -D udevtest.8 $(DESTDIR)$(mandir)/man8/udevtest.8 -- $(INSTALL_DATA) -D udevd.8 $(DESTDIR)$(mandir)/man8/udevd.8 -- $(INSTALL_DATA) -D udevtrigger.8 $(DESTDIR)$(mandir)/man8/udevtrigger.8 -- $(INSTALL_DATA) -D udevsettle.8 $(DESTDIR)$(mandir)/man8/udevsettle.8 -- $(INSTALL_DATA) -D udevmonitor.8 $(DESTDIR)$(mandir)/man8/udevmonitor.8 -+ $(INSTALL) -d $(DESTDIR)$(mandir)/man7 -+ $(INSTALL) -d $(DESTDIR)$(mandir)/man8 -+ $(INSTALL_DATA) udev.7 $(DESTDIR)$(mandir)/man7/udev.7 -+ $(INSTALL_DATA) udevinfo.8 $(DESTDIR)$(mandir)/man8/udevinfo.8 -+ $(INSTALL_DATA) udevtest.8 $(DESTDIR)$(mandir)/man8/udevtest.8 -+ $(INSTALL_DATA) udevd.8 $(DESTDIR)$(mandir)/man8/udevd.8 -+ $(INSTALL_DATA) udevtrigger.8 $(DESTDIR)$(mandir)/man8/udevtrigger.8 -+ $(INSTALL_DATA) udevsettle.8 $(DESTDIR)$(mandir)/man8/udevsettle.8 -+ $(INSTALL_DATA) udevmonitor.8 $(DESTDIR)$(mandir)/man8/udevmonitor.8 - - ln -f -s udevd.8 $(DESTDIR)$(mandir)/man8/udevcontrol.8 - @extras="$(EXTRAS)"; for target in $$extras; do \ - $(MAKE) -C $$target $@ || exit 1; \ -@@ -275,13 +277,16 @@ - - install-bin: - $(INSTALL) -d $(DESTDIR)$(udevdir) -- $(INSTALL_PROGRAM) -D udevd $(DESTDIR)$(sbindir)/udevd -- $(INSTALL_PROGRAM) -D udevtrigger $(DESTDIR)$(sbindir)/udevtrigger -- $(INSTALL_PROGRAM) -D udevsettle $(DESTDIR)$(sbindir)/udevsettle -- $(INSTALL_PROGRAM) -D udevcontrol $(DESTDIR)$(sbindir)/udevcontrol -- $(INSTALL_PROGRAM) -D udevmonitor $(DESTDIR)$(usrsbindir)/udevmonitor -- $(INSTALL_PROGRAM) -D udevinfo $(DESTDIR)$(usrbindir)/udevinfo -- $(INSTALL_PROGRAM) -D udevtest $(DESTDIR)$(usrbindir)/udevtest -+ $(INSTALL) -d $(DESTDIR)$(sbindir) -+ $(INSTALL) -d $(DESTDIR)$(usrbindir) -+ $(INSTALL) -d $(DESTDIR)$(usrsbindir) -+ $(INSTALL_PROGRAM) udevd $(DESTDIR)$(sbindir)/udevd -+ $(INSTALL_PROGRAM) udevtrigger $(DESTDIR)$(sbindir)/udevtrigger -+ $(INSTALL_PROGRAM) udevsettle $(DESTDIR)$(sbindir)/udevsettle -+ $(INSTALL_PROGRAM) udevcontrol $(DESTDIR)$(sbindir)/udevcontrol -+ $(INSTALL_PROGRAM) udevmonitor $(DESTDIR)$(usrsbindir)/udevmonitor -+ $(INSTALL_PROGRAM) udevinfo $(DESTDIR)$(usrbindir)/udevinfo -+ $(INSTALL_PROGRAM) udevtest $(DESTDIR)$(usrbindir)/udevtest - @extras="$(EXTRAS)"; for target in $$extras; do \ - $(MAKE) -C $$target $@ || exit 1; \ - done; --- /dev/null +++ b/package/udev/patches/010-udev-commit-2236dda.diff @@ -0,0 +1,27 @@ +Only needed for udev-139 + +commit 2236ddae2dc1c7d7b380452341b3beefeb471bd9 +Author: Michael Prokop <m...@grml.org> +Date: Tue Mar 3 16:50:58 2009 +0100 + + fix compile error in debug mode + + When building with './configure --enable-debug && make' it fails with: + udev-rules.c: In function âdump_tokenâ: + udev-rules.c:366: error: âstruct <anonymous>â has no member named âiâ + + Signed-off-by: Michael Prokop <m...@grml.org> + +diff --git a/udev/udev-rules.c b/udev/udev-rules.c +index 905a1a0..663a6d4 100644 +--- a/udev/udev-rules.c ++++ b/udev/udev-rules.c +@@ -363,7 +363,7 @@ static void dump_token(struct udev_rules *rules, struct token *token) + token_str(type), operation_str(op), value, string_glob_str(glob), token->key.mode); + break; + case TK_A_INOTIFY_WATCH: +- dbg(rules->udev, "%s %u\n", token_str(type), token->key.i); ++ dbg(rules->udev, "%s %u\n", token_str(type), token->key.watch); + break; + case TK_A_NUM_FAKE_PART: + dbg(rules->udev, "%s %u\n", token_str(type), token->key.num_fake_part); --- /dev/null +++ b/package/udev/udev-config.in @@ -0,0 +1,77 @@ +# udev package config + +menu "udev configuration" +depends on PACKAGE_udev + +config UDEV_DISABLE_LOGGING + bool "Disable udev logging to syslog" + depends on PACKAGE_udev + default n + help + Disable logging of udev messages to the syslog. If + unsure, choose the default N. + +config UDEV_ENABLE_DEBUG + bool "Enable debug build of the udev package" + depends on PACKAGE_udev + default n + help + Compile in udev debug messages. If unsure, choose + the default N. + +config UDEV_EXTRA_ata_id + bool "Install udev ata_id callout" + default y + help + ata_id - udev callout to read product/serial number + from ATA drives + +config UDEV_EXTRA_cdrom_id + bool "Install udev cdrom_id callout" + default y + help + cdrom_id - udev callout to determine the capabilities + of optical drives and media + +config UDEV_EXTRA_create_floppy_devices + bool "Install create_floppy_devices callout" + default n + help + create_floppy_devices - udev callout to create all + possible floppy device based on the CMOS type + +config UDEV_EXTRA_edd_id + bool "Install udev edd_id callout" + default n + help + edd_id - udev callout to identify BIOS disk drives + via EDD + +config UDEV_EXTRA_path_id + bool "Install udev path_id callout" + default y + help + path_id - udev callout to create a device path based + unique name for a device to implement the Linux + Persistent Device Naming scheme + +config UDEV_EXTRA_scsi_id + bool "Install udev scsi_id callout" + default y + help + scsi_id - retrieve and generate a unique SCSI identifier + +config UDEV_EXTRA_usb_id + bool "Install udev usb_id callout" + default y + help + usb_id - can find the unique id of USB devices + +config UDEV_EXTRA_vol_id + bool + prompt "vol_id" if PACKAGE_udevextras + default n + help + vol_id - probe filesystem type and read label and uuid + +endmenu --- a/package/udev/udevextras-config.in +++ /dev/null @@ -1,57 +0,0 @@ - -config UDEVEXTRAS_ata_id - bool - prompt "ata_id" if PACKAGE_udevextras - default n - help - ata_id can find unique identifiers for ATA devices - -config UDEVEXTRAS_cdrom_id - bool - prompt "cdrom_id" if PACKAGE_udevextras - default n - help - cdrom_id can find unique identifiers for CDROM devices - -config UDEVEXTRAS_dasd_id - bool - prompt "dasd_id" if PACKAGE_udevextras - default n - help - dasd_id can find unique identifiers for DASD devices - -config UDEVEXTRAS_edd_id - bool - prompt "edd_id" if PACKAGE_udevextras - default n - help - edd_id can find unique identifiers for EDD devices - -config UDEVEXTRAS_path_id - bool - prompt "path_id" if PACKAGE_udevextras - default n - help - path_id can find the full path (eg. bus-device-partition) - of devices - -config UDEVEXTRAS_scsi_id - bool - prompt "scsi_id" if PACKAGE_udevextras - default n - help - scsi_id can find unique identifiers for SCSI devices - -config UDEVEXTRAS_usb_id - bool - prompt "usb_id" if PACKAGE_udevextras - default n - help - usb_id can find the unique id of USB devices - -config UDEVEXTRAS_volume_id - bool - prompt "volume_id" if PACKAGE_udevextras - default n - help - volume_id can find the volume label of storage devices --
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel