diff --git a/package/base-files/files/etc/preinit b/package/base-files/files/etc/preinit index 4e706f182a..d5f02ed891 100755 --- 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 diff --git a/package/udev/Makefile b/package/udev/Makefile index 95115a2446..b2b31c37a6 100644 --- a/package/udev/Makefile +++ b/package/udev/Makefile @@ -1,4 +1,4 @@ -# +# # Copyright (C) 2006-2008 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. @@ -8,80 +8,112 @@ include $(TOPDIR)/rules.mk PKG_NAME:=udev -PKG_VERSION:=106 +PKG_VERSION:=142 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=@KERNEL/linux/utils/kernel/hotplug/ -PKG_MD5SUM:=320ccd2d0f4540d10e021bafa14f8985 +PKG_MD5SUM:=3edc4cf383dccb06d866c5156d59ddd5 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 + MAINTAINER:=Geoff Levand 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. + udev allows Linux users to have a dynamic /dev directory and it + provides the ability to have persistent device names. endef -define Package/udevextras -$(call Package/udev) - TITLE:=Utilities for udev scripts, for general device discovery - MENU:=1 +define Package/udev/config + source "$(SOURCE)/udev-config.in" endef -define Package/udevextras/config - source "$(SOURCE)/udevextras-config.in" -endef +udev-args-$(CONFIG_UDEV_DISABLE_LOGGING) += --disable-logging +udev-args-$(CONFIG_UDEV_ENABLE_DEBUG) += --enable-debug -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 -endef +CONFIGURE_ARGS += --prefix=/usr --exec-prefix= --sysconfdir=/etc \ + --sbindir=/sbin $(udev-args-y) + +udev-extra-lib-bin-$(CONFIG_UDEV_EXTRA_ata_id) += ata_id + +udev-extra-lib-bin-$(CONFIG_UDEV_EXTRA_cdrom_id) += cdrom_id +udev-extra-rules-$(CONFIG_UDEV_EXTRA_cdrom_id) += 60-cdrom_id.rules + +udev-extra-lib-bin-$(CONFIG_UDEV_EXTRA_collect) += collect + +udev-extra-lib-bin-$(CONFIG_UDEV_EXTRA_edd_id) += edd_id +udev-extra-rules-$(CONFIG_UDEV_EXTRA_edd_id) += 61-persistent-storage-edd.rules + +udev-extra-lib-bin-$(CONFIG_UDEV_EXTRA_firmware) += firmware.sh +udev-extra-rules-$(CONFIG_UDEV_EXTRA_firmware) += 50-firmware.rules + +udev-extra-lib-bin-$(CONFIG_UDEV_EXTRA_floppy) += create_floppy_devices + +udev-extra-lib-bin-$(CONFIG_UDEV_EXTRA_fstab_import) += fstab_import +udev-extra-rules-$(CONFIG_UDEV_EXTRA_fstab_import) += 79-fstab_import.rules + +udev-extra-lib-bin-$(CONFIG_UDEV_EXTRA_path_id) += path_id + +udev-extra-lib-bin-$(CONFIG_UDEV_EXTRA_rule_generator) += \ + write_cd_rules write_net_rules +udev-extra-lib-data-$(CONFIG_UDEV_EXTRA_rule_generator) += \ + rule_generator.functions +udev-extra-rules-$(CONFIG_UDEV_EXTRA_rule_generator) += \ + 75-cd-aliases-generator.rules 75-persistent-net-generator.rules + +udev-extra-lib-bin-$(CONFIG_UDEV_EXTRA_scsi_id) += scsi_id + +udev-extra-lib-bin-$(CONFIG_UDEV_EXTRA_usb_id) += usb_id 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/ -endef + $(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/udevadm \ + $(PKG_INSTALL_DIR)/sbin/udevd \ + $(1)/sbin + + $(INSTALL_DIR) $(1)/lib/udev/rules.d + $(INSTALL_DATA) \ + $(addprefix $(PKG_INSTALL_DIR)/lib/udev/rules.d/, \ + $(udev-extra-rules-y)) \ + $(addprefix $(PKG_INSTALL_DIR)/lib/udev/rules.d/, \ + 50-udev-default.rules \ + 60-persistent-input.rules \ + 60-persistent-serial.rules \ + 60-persistent-storage.rules \ + 80-drivers.rules \ + 95-udev-late.rules) \ + $(1)/lib/udev/rules.d + + $(INSTALL_DIR) $(1)/lib + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/lib/libudev.so.* \ + $(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/ ; \ - ) +ifneq ($(udev-extra-lib-bin-y),) + $(INSTALL_BIN) \ + $(addprefix $(PKG_INSTALL_DIR)/lib/udev/, \ + $(udev-extra-lib-bin-y)) \ + $(1)/lib/udev/ +endif +ifneq ($(udev-extra-lib-data-y),) + $(INSTALL_DATA) \ + $(addprefix $(PKG_INSTALL_DIR)/lib/udev/, \ + $(udev-extra-lib-data-y)) \ + $(1)/lib/udev/ +endif endef $(eval $(call BuildPackage,udev)) -$(eval $(call BuildPackage,udevextras)) diff --git a/package/udev/files/20-input-grouping.rules b/package/udev/files/20-input-grouping.rules deleted file mode 100644 index b124a1747a..0000000000 --- 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" diff --git a/package/udev/patches/001-no_debug.patch b/package/udev/patches/001-no_debug.patch deleted file mode 100644 index 626181e478..0000000000 --- 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) diff --git a/package/udev/patches/002-udevtrigger_no_config.patch b/package/udev/patches/002-udevtrigger_no_config.patch deleted file mode 100644 index db68ebf760..0000000000 --- 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(); - diff --git a/package/udev/patches/003-portability.patch b/package/udev/patches/003-portability.patch deleted file mode 100644 index f11f969bbc..0000000000 --- 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; diff --git a/package/udev/udev-config.in b/package/udev/udev-config.in new file mode 100644 index 0000000000..c10bb9cc4e --- /dev/null +++ b/package/udev/udev-config.in @@ -0,0 +1,94 @@ +# 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_collect + bool "Install udev collect" + default n + help + Adds ID to the list governed by + +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_firmware + bool "Install firmware support" + default n + help + udev firmware loader + via EDD + +config UDEV_EXTRA_floppy + 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_fstab_import + bool "Install fstab import" + default y + help + find matching entry in fstab and export it + +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_rule_generator + bool "Install udev rule_generator" + default y + help + +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 + +endmenu diff --git a/package/udev/udevextras-config.in b/package/udev/udevextras-config.in deleted file mode 100644 index 20ac1bbc0d..0000000000 --- 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