summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshua Lock <josh@openedhand.com>2008-07-15 09:51:02 +0000
committerJoshua Lock <josh@openedhand.com>2008-07-15 09:51:02 +0000
commit47780f8c430bb66be796a95b948865b2aff52200 (patch)
tree0e8b44aff6f03a4c594f20194e5caec37a1eff26
parent4c78c04481b6326a11499d10b139f2af35478ca0 (diff)
downloadpoky-47780f8c430bb66be796a95b948865b2aff52200.tar.gz
Recipe for udev-124
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4837 311d38ba-8fff-0310-9ca6-ca027cbcb966
-rw-r--r--meta/packages/udev/udev-124/flags.patch56
-rw-r--r--meta/packages/udev/udev-124/init49
-rw-r--r--meta/packages/udev/udev-124/local.rules31
-rw-r--r--meta/packages/udev/udev-124/noasmlinkage.patch45
-rw-r--r--meta/packages/udev/udev-124/permissions.rules101
-rw-r--r--meta/packages/udev/udev-124/udev.rules105
-rw-r--r--meta/packages/udev/udev-124/udevtrigger_add_devname_filtering.patch99
-rw-r--r--meta/packages/udev/udev-124/vol_id_ld.patch17
-rw-r--r--meta/packages/udev/udev_124.bb56
9 files changed, 559 insertions, 0 deletions
diff --git a/meta/packages/udev/udev-124/flags.patch b/meta/packages/udev/udev-124/flags.patch
new file mode 100644
index 0000000000..13f20eb6a8
--- /dev/null
+++ b/meta/packages/udev/udev-124/flags.patch
@@ -0,0 +1,56 @@
1---
2 Makefile | 16 ++++++++--------
3 1 file changed, 8 insertions(+), 8 deletions(-)
4
5Index: udev-115/Makefile
6===================================================================
7--- udev-115.orig/Makefile 2007-08-24 01:29:54.000000000 +0200
8+++ udev-115/Makefile 2007-09-20 17:21:45.000000000 +0200
9@@ -112,39 +112,39 @@
10 AR = $(CROSS_COMPILE)ar
11 RANLIB = $(CROSS_COMPILE)ranlib
12
13-CFLAGS += -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
14+override CFLAGS = -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
15 WARNINGS = -Wstrict-prototypes -Wsign-compare -Wshadow \
16 -Wchar-subscripts -Wmissing-declarations -Wnested-externs \
17 -Wpointer-arith -Wcast-align -Wsign-compare -Wmissing-prototypes
18-CFLAGS += $(WARNINGS)
19+override CFLAGS += $(WARNINGS)
20
21 LDFLAGS += -Wl,-warn-common,--as-needed
22
23 OPTFLAGS = -Os
24-CFLAGS += $(OPTFLAGS)
25+override CFLAGS += $(OPTFLAGS)
26
27 ifeq ($(strip $(USE_LOG)),true)
28- CFLAGS += -DUSE_LOG
29+ override CFLAGS += -DUSE_LOG
30 endif
31
32 # if DEBUG is enabled, then we do not strip
33 ifeq ($(strip $(DEBUG)),true)
34- CFLAGS += -DDEBUG
35+ override CFLAGS += -DDEBUG
36 endif
37
38 ifeq ($(strip $(USE_GCOV)),true)
39- CFLAGS += -fprofile-arcs -ftest-coverage
40+ override CFLAGS += -fprofile-arcs -ftest-coverage
41 LDFLAGS += -fprofile-arcs
42 endif
43
44 ifeq ($(strip $(USE_SELINUX)),true)
45 UDEV_OBJS += udev_selinux.o
46 LIB_OBJS += -lselinux -lsepol
47- CFLAGS += -DUSE_SELINUX
48+ override CFLAGS += -DUSE_SELINUX
49 endif
50
51 ifeq ($(strip $(USE_STATIC)),true)
52- CFLAGS += -DUSE_STATIC
53+ override CFLAGS += -DUSE_STATIC
54 LDFLAGS += -static
55 endif
56
diff --git a/meta/packages/udev/udev-124/init b/meta/packages/udev/udev-124/init
new file mode 100644
index 0000000000..2e3019324f
--- /dev/null
+++ b/meta/packages/udev/udev-124/init
@@ -0,0 +1,49 @@
1export TZ=/etc/localtime
2
3[ -d /sys/class ] || exit 1
4[ -r /proc/mounts ] || exit 1
5[ -x /sbin/udevd ] || exit 1
6[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
7
8kill_udevd() {
9 if [ -x /sbin/pidof ]; then
10 pid=`/sbin/pidof -x udevd`
11 [ -n "$pid" ] && kill $pid
12 fi
13}
14
15export ACTION=add
16# propagate /dev from /sys
17echo -n "Starting udev"
18
19# mount the tmpfs on /dev, if not already done
20LANG=C awk "\$2 == \"/dev\" && \$4 == \"tmpfs\" { exit 1 }" /proc/mounts && {
21 mount -n -o mode=0755 -t tmpfs none "/dev"
22 mkdir -m 0755 /dev/pts
23 mkdir -m 0755 /dev/shm
24}
25
26if [ -e /etc/dev.tar ]; then
27 (cd /; tar xf /etc/dev.tar)
28 not_first_boot=1
29fi
30
31# make_extra_nodes
32kill_udevd > "/dev/null" 2>&1
33
34 # trigger the sorted events
35 echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
36 /sbin/udevd -d
37
38 /sbin/udevadm control env STARTUP=1
39 if [ "$not_first_boot" != "" ];then
40 /sbin/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
41 (/sbin/udevsettle --timeout=3; /sbin/udevcontrol env STARTUP=)&
42 else
43 /sbin/udevadm trigger
44 /sbin/udevsettle
45 (cd /; tar cf /etc/dev.tar /dev)
46 fi
47
48echo
49exit 0
diff --git a/meta/packages/udev/udev-124/local.rules b/meta/packages/udev/udev-124/local.rules
new file mode 100644
index 0000000000..5b926018f5
--- /dev/null
+++ b/meta/packages/udev/udev-124/local.rules
@@ -0,0 +1,31 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# Media automounting
17SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh"
18SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh"
19
20# Handle network interface setup
21SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh"
22SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh"
23
24# The first rtc device is symlinked to /dev/rtc
25KERNEL=="rtc0", SYMLINK+="rtc"
26
27# Try and modprobe for drivers for new hardware
28ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}"
29
30# Create a symlink to any touchscreen input device
31SUBSYSTEM=="input", KERNEL=="event[0-9]*", SYSFS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
diff --git a/meta/packages/udev/udev-124/noasmlinkage.patch b/meta/packages/udev/udev-124/noasmlinkage.patch
new file mode 100644
index 0000000000..d58a7ea4de
--- /dev/null
+++ b/meta/packages/udev/udev-124/noasmlinkage.patch
@@ -0,0 +1,45 @@
1diff -pru udev-124.orig/test-udev.c udev-124/test-udev.c
2--- udev-124.orig/test-udev.c 2008-06-12 06:24:30.000000000 +0100
3+++ udev-124/test-udev.c 2008-07-07 14:43:37.000000000 +0100
4@@ -46,7 +46,7 @@ void log_message(int priority, const cha
5 }
6 #endif
7
8-static void asmlinkage sig_handler(int signum)
9+static void sig_handler(int signum)
10 {
11 switch (signum) {
12 case SIGALRM:
13diff -pru udev-124.orig/udevd.c udev-124/udevd.c
14--- udev-124.orig/udevd.c 2008-06-12 06:24:30.000000000 +0100
15+++ udev-124/udevd.c 2008-07-07 14:43:58.000000000 +0100
16@@ -87,7 +87,7 @@ void log_message(int priority, const cha
17
18 #endif
19
20-static void asmlinkage udev_event_sig_handler(int signum)
21+static void udev_event_sig_handler(int signum)
22 {
23 if (signum == SIGALRM)
24 exit(1);
25@@ -798,7 +798,7 @@ static struct udevd_uevent_msg *get_netl
26 return msg;
27 }
28
29-static void asmlinkage sig_handler(int signum)
30+static void sig_handler(int signum)
31 {
32 switch (signum) {
33 case SIGINT:
34diff -pru udev-124.orig/udevmonitor.c udev-124/udevmonitor.c
35--- udev-124.orig/udevmonitor.c 2008-06-12 06:24:30.000000000 +0100
36+++ udev-124/udevmonitor.c 2008-07-07 14:44:24.000000000 +0100
37@@ -97,7 +97,7 @@ static int init_uevent_netlink_sock(void
38 return 0;
39 }
40
41-static void asmlinkage sig_handler(int signum)
42+static void sig_handler(int signum)
43 {
44 if (signum == SIGINT || signum == SIGTERM)
45 udev_exit = 1;
diff --git a/meta/packages/udev/udev-124/permissions.rules b/meta/packages/udev/udev-124/permissions.rules
new file mode 100644
index 0000000000..99e03b1036
--- /dev/null
+++ b/meta/packages/udev/udev-124/permissions.rules
@@ -0,0 +1,101 @@
1ACTION!="add", GOTO="permissions_end"
2
3# workarounds needed to synchronize with sysfs
4DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
5SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt"
6# only needed for kernels < 2.6.16
7SUBSYSTEM=="net", WAIT_FOR_SYSFS="address"
8# only needed for kernels < 2.6.17
9SUBSYSTEM=="net", ENV{PHYSDEVDRIVER}=="?*", WAIT_FOR_SYSFS="device/driver"
10
11# default permissions for block devices
12SUBSYSTEM=="block", GROUP="disk"
13SUBSYSTEM=="block", SYSFS{removable}=="1", GROUP="floppy"
14
15# IDE devices
16BUS=="ide", KERNEL=="hd[a-z]|pcd[0-9]*", DRIVER=="ide-cdrom|pcd", \
17 IMPORT{program}="cdrom_id --export $tempnode"
18ENV{ID_CDROM}=="?*", GROUP="cdrom"
19BUS=="ide", KERNEL=="ht[0-9]*", GROUP="tape"
20BUS=="ide", KERNEL=="nht[0-9]*", GROUP="tape"
21
22# SCSI devices
23BUS=="scsi", SYSFS{type}=="1", GROUP="tape"
24BUS=="scsi", SYSFS{type}=="5", GROUP="cdrom"
25
26# USB devices
27BUS=="usb", KERNEL=="legousbtower*", MODE="0666"
28BUS=="usb", KERNEL=="lp[0-9]*", GROUP="lp"
29
30# usbfs-like devices
31SUBSYSTEM=="usb_device", MODE="0664"
32
33# iRiver music players
34SUBSYSTEM=="usb_device", GROUP="plugdev", \
35 SYSFS{idVendor}=="4102", SYSFS{idProduct}=="10[01][135789]"
36
37# serial devices
38SUBSYSTEM=="tty", GROUP="dialout"
39SUBSYSTEM=="capi", GROUP="dialout"
40SUBSYSTEM=="slamr", GROUP="dialout"
41SUBSYSTEM=="zaptel", GROUP="dialout"
42
43# vc devices (all members of the tty subsystem)
44KERNEL=="ptmx", MODE="0666", GROUP="root"
45KERNEL=="console", MODE="0600", GROUP="root"
46KERNEL=="tty", MODE="0666", GROUP="root"
47KERNEL=="tty[0-9]*", GROUP="root"
48KERNEL=="pty*", MODE="0666", GROUP="tty"
49
50# video devices
51SUBSYSTEM=="video4linux", GROUP="video"
52SUBSYSTEM=="drm", GROUP="video"
53SUBSYSTEM=="dvb", GROUP="video"
54SUBSYSTEM=="em8300", GROUP="video"
55SUBSYSTEM=="graphics", GROUP="video"
56SUBSYSTEM=="nvidia", GROUP="video"
57
58# misc devices
59KERNEL=="random", MODE="0666"
60KERNEL=="urandom", MODE="0666"
61KERNEL=="mem", MODE="0640", GROUP="kmem"
62KERNEL=="kmem", MODE="0640", GROUP="kmem"
63KERNEL=="port", MODE="0640", GROUP="kmem"
64KERNEL=="full", MODE="0666"
65KERNEL=="null", MODE="0666"
66KERNEL=="zero", MODE="0666"
67KERNEL=="inotify", MODE="0666"
68KERNEL=="sgi_fetchop", MODE="0666"
69KERNEL=="sonypi", MODE="0666"
70KERNEL=="agpgart", GROUP="video"
71KERNEL=="rtc", GROUP="audio"
72
73KERNEL=="cdemu[0-9]*", GROUP="cdrom"
74KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
75KERNEL=="pktcdvd", MODE="0644"
76
77# printers and parallel devices
78SUBSYSTEM=="printer", GROUP="lp"
79SUBSYSTEM=="ppdev", GROUP="lp"
80KERNEL=="pt[0-9]*", GROUP="tape"
81KERNEL=="pht[0-9]*", GROUP="tape"
82
83# sound devices
84SUBSYSTEM=="sound", GROUP="audio"
85
86# ieee1394 devices
87KERNEL=="raw1394", GROUP="disk"
88KERNEL=="dv1394*", GROUP="video"
89KERNEL=="video1394*", GROUP="video"
90
91# input devices
92KERNEL=="event[0-9]*", SYSFS{name}=="*dvb*|*DVB*|* IR *" \
93 MODE="0664", GROUP="video"
94KERNEL=="js[0-9]*", MODE="0664"
95
96# AOE character devices
97SUBSYSTEM=="aoe", MODE="0220", GROUP="disk"
98SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440"
99
100LABEL="permissions_end"
101
diff --git a/meta/packages/udev/udev-124/udev.rules b/meta/packages/udev/udev-124/udev.rules
new file mode 100644
index 0000000000..4d29acac0c
--- /dev/null
+++ b/meta/packages/udev/udev-124/udev.rules
@@ -0,0 +1,105 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# SCSI devices
17BUS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n"
18
19# USB devices
20BUS=="usb", KERNEL=="auer[0-9]*", NAME="usb/%k"
21BUS=="usb", KERNEL=="cpad[0-9]*", NAME="usb/%k"
22BUS=="usb", KERNEL=="dabusb*", NAME="usb/%k"
23BUS=="usb", KERNEL=="hiddev*", NAME="usb/%k"
24BUS=="usb", KERNEL=="legousbtower*", NAME="usb/%k"
25BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"
26BUS=="usb", KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", \
27 SYMLINK+="pilot"
28
29# usbfs-like devices
30SUBSYSTEM=="usb_device", \
31 PROGRAM="/bin/sh -c 'export X=%k; export X=$${X#usbdev}; export B=$${X%%%%.*}; export D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK+="%c"
32
33# serial devices
34KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20"
35KERNEL=="capi[0-9]*", NAME="capi/%n"
36
37# video devices
38KERNEL=="card[0-9]*", NAME="dri/%k"
39
40# misc devices
41KERNEL=="hw_random", NAME="hwrng"
42KERNEL=="tun", NAME="net/%k"
43
44KERNEL=="cdemu[0-9]*", NAME="cdemu/%n"
45KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%n"
46KERNEL=="pktcdvd", NAME="pktcdvd/control"
47
48KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid"
49KERNEL=="msr[0-9]*", NAME="cpu/%n/msr"
50KERNEL=="microcode", NAME="cpu/microcode"
51
52KERNEL=="umad*", NAME="infiniband/%k"
53KERNEL=="issm*", NAME="infiniband/%k"
54KERNEL=="uverbs*", NAME="infiniband/%k"
55KERNEL=="ucm", NAME="infiniband/%k"
56
57KERNEL=="buzzer", NAME="misc/buzzer"
58
59# ALSA devices
60KERNEL=="controlC[0-9]*", NAME="snd/%k"
61KERNEL=="hwC[D0-9]*", NAME="snd/%k"
62KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k"
63KERNEL=="midiC[D0-9]*", NAME="snd/%k"
64KERNEL=="timer", NAME="snd/%k"
65KERNEL=="seq", NAME="snd/%k"
66
67# ieee1394 devices
68KERNEL=="dv1394*", NAME="dv1394/%n"
69KERNEL=="video1394*", NAME="video1394/%n"
70
71# input devices
72KERNEL=="mice", NAME="input/%k"
73KERNEL=="mouse[0-9]*", NAME="input/%k"
74KERNEL=="event[0-9]*", NAME="input/%k"
75KERNEL=="js[0-9]*", NAME="input/%k"
76KERNEL=="ts[0-9]*", NAME="input/%k"
77KERNEL=="uinput", NAME="input/%k"
78
79# Zaptel
80KERNEL=="zapctl", NAME="zap/ctl"
81KERNEL=="zaptimer", NAME="zap/timer"
82KERNEL=="zapchannel", NAME="zap/channel"
83KERNEL=="zappseudo", NAME="zap/pseudo"
84KERNEL=="zap[0-9]*", NAME="zap/%n"
85
86# AOE character devices
87SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k"
88SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k"
89SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k"
90
91# device mapper creates its own device nodes, so ignore these
92KERNEL=="dm-[0-9]*", OPTIONS+="ignore_device"
93KERNEL=="device-mapper", NAME="mapper/control"
94
95KERNEL=="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660"
96
97# Firmware Helper
98ACTION=="add", SUBSYSTEM=="firmware", RUN+="/lib/udev/firmware_helper"
99
100# Samsung UARTS
101KERNEL=="s3c2410_serial[0-9]", NAME="ttySAC%n"
102
103# MXC UARTs
104KERNEL=="ttymxc[0-4]", NAME="ttymxc%n"
105
diff --git a/meta/packages/udev/udev-124/udevtrigger_add_devname_filtering.patch b/meta/packages/udev/udev-124/udevtrigger_add_devname_filtering.patch
new file mode 100644
index 0000000000..5182542461
--- /dev/null
+++ b/meta/packages/udev/udev-124/udevtrigger_add_devname_filtering.patch
@@ -0,0 +1,99 @@
1diff -pru udev-124.orig/udevtrigger.c udev-124/udevtrigger.c
2--- udev-124.orig/udevtrigger.c 2008-06-12 06:24:30.000000000 +0100
3+++ udev-124/udevtrigger.c 2008-07-07 15:10:09.000000000 +0100
4@@ -42,6 +42,8 @@ static int dry_run;
5 LIST_HEAD(device_list);
6 LIST_HEAD(filter_subsystem_match_list);
7 LIST_HEAD(filter_subsystem_nomatch_list);
8+LIST_HEAD(filter_kernel_match_list);
9+LIST_HEAD(filter_kernel_nomatch_list);
10 LIST_HEAD(filter_attr_match_list);
11 LIST_HEAD(filter_attr_nomatch_list);
12 static int sock = -1;
13@@ -331,6 +333,26 @@ static int attr_match(const char *path,
14 return 0;
15 }
16
17+static int kernel_filtered(const char *kernel)
18+{
19+ struct name_entry *loop_name;
20+
21+ /* skip devices matching the prohibited kernel device names */
22+ list_for_each_entry(loop_name, &filter_kernel_nomatch_list, node)
23+ if (fnmatch(loop_name->name, kernel, 0) == 0)
24+ return 1;
25+
26+ /* skip devices not matching the listed kernel device names */
27+ if (!list_empty(&filter_kernel_match_list)) {
28+ list_for_each_entry(loop_name, &filter_kernel_match_list, node)
29+ if (fnmatch(loop_name->name, kernel, 0) == 0)
30+ return 0;
31+ return 1;
32+ }
33+
34+ return 0;
35+}
36+
37 static int attr_filtered(const char *path)
38 {
39 struct name_entry *loop_name;
40@@ -409,6 +431,9 @@ static void scan_subsystem(const char *s
41 if (dent2->d_name[0] == '.')
42 continue;
43
44+ if (kernel_filtered(dent2->d_name))
45+ continue;
46+
47 strlcpy(dirname2, dirname, sizeof(dirname2));
48 strlcat(dirname2, "/", sizeof(dirname2));
49 strlcat(dirname2, dent2->d_name, sizeof(dirname2));
50@@ -465,6 +490,9 @@ static void scan_block(void)
51 if (!strcmp(dent2->d_name,"device"))
52 continue;
53
54+ if (kernel_filtered(dent2->d_name))
55+ continue;
56+
57 strlcpy(dirname2, dirname, sizeof(dirname2));
58 strlcat(dirname2, "/", sizeof(dirname2));
59 strlcat(dirname2, dent2->d_name, sizeof(dirname2));
60@@ -576,6 +604,8 @@ int udevtrigger(int argc, char *argv[],
61 { "subsystem-nomatch", 1, NULL, 'S' },
62 { "attr-match", 1, NULL, 'a' },
63 { "attr-nomatch", 1, NULL, 'A' },
64+ { "kernel-match", 1, NULL, 'k' },
65+ { "kernel-nomatch", 1, NULL, 'K' },
66 { "env", 1, NULL, 'e' },
67 {}
68 };
69@@ -622,6 +652,12 @@ int udevtrigger(int argc, char *argv[],
70 case 'A':
71 name_list_add(&filter_attr_nomatch_list, optarg, 0);
72 break;
73+ case 'k':
74+ name_list_add(&filter_kernel_match_list, optarg, 0);
75+ break;
76+ case 'K':
77+ name_list_add(&filter_kernel_nomatch_list, optarg, 0);
78+ break;
79 case 'h':
80 printf("Usage: udevadm trigger OPTIONS\n"
81 " --verbose print the list of devices while running\n"
82@@ -632,6 +668,8 @@ int udevtrigger(int argc, char *argv[],
83 " --env=<KEY>=<value> pass an additional key (works only with --socket=)\n"
84 " --subsystem-match=<subsystem> trigger devices from a matching subystem\n"
85 " --subsystem-nomatch=<subsystem> exclude devices from a matching subystem\n"
86+ " --kernel-match=<subsystem> trigger devices from a matching kernel device name\n"
87+ " --kernel-nomatch=<subsystem> exclude devices from a matching kernel device name\n"
88 " --attr-match=<file[=<value>]> trigger devices with a matching sysfs\n"
89 " attribute\n"
90 " --attr-nomatch=<file[=<value>]> exclude devices with a matching sysfs\n"
91@@ -701,6 +739,8 @@ int udevtrigger(int argc, char *argv[],
92 exit:
93 name_list_cleanup(&filter_subsystem_match_list);
94 name_list_cleanup(&filter_subsystem_nomatch_list);
95+ name_list_cleanup(&filter_kernel_match_list);
96+ name_list_cleanup(&filter_kernel_nomatch_list);
97 name_list_cleanup(&filter_attr_match_list);
98 name_list_cleanup(&filter_attr_nomatch_list);
99
diff --git a/meta/packages/udev/udev-124/vol_id_ld.patch b/meta/packages/udev/udev-124/vol_id_ld.patch
new file mode 100644
index 0000000000..11126eef8d
--- /dev/null
+++ b/meta/packages/udev/udev-124/vol_id_ld.patch
@@ -0,0 +1,17 @@
1---
2 extras/volume_id/Makefile | 2 +-
3 1 file changed, 1 insertion(+), 1 deletion(-)
4
5Index: udev-115/extras/volume_id/Makefile
6===================================================================
7--- udev-115.orig/extras/volume_id/Makefile 2007-09-20 18:17:59.000000000 +0200
8+++ udev-115/extras/volume_id/Makefile 2007-09-20 18:18:08.000000000 +0200
9@@ -44,7 +44,7 @@
10 ifeq ($(strip $(VOLUME_ID_STATIC)),true)
11 $(Q) $(LD) $(LDFLAGS) -o $@ $@.o $(LIBUDEV) lib/libvolume_id.a $(LIB_OBJS)
12 else
13- $(Q) $(LD) $(LDFLAGS) -o $@ $@.o $(LIBUDEV) -Llib -lvolume_id $(LIB_OBJS)
14+ $(Q) $(LD) -Llib $(LDFLAGS) -o $@ $@.o $(LIBUDEV) -lvolume_id $(LIB_OBJS)
15 endif
16
17 # man pages
diff --git a/meta/packages/udev/udev_124.bb b/meta/packages/udev/udev_124.bb
new file mode 100644
index 0000000000..84c891021f
--- /dev/null
+++ b/meta/packages/udev/udev_124.bb
@@ -0,0 +1,56 @@
1DESCRIPTION = "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 \
3the hotplug package and requires a kernel not older than 2.6.12."
4RPROVIDES_${PN} = "hotplug"
5
6SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
7 file://noasmlinkage.patch;patch=1 \
8 file://flags.patch;patch=1 \
9 file://vol_id_ld.patch;patch=1 \
10 file://udevtrigger_add_devname_filtering.patch;patch=1 \
11 file://mount.blacklist \
12 "
13
14SRC_URI_append_h2200 = " file://50-hostap_cs.rules "
15PACKAGE_ARCH_h2200 = "h2200"
16
17require udev.inc
18
19DEFAULT_PREFERENCE = "-1"
20
21INITSCRIPT_PARAMS = "start 03 S ."
22
23FILES_${PN} += "${base_libdir}/udev/*"
24FILES_${PN}-dbg += "${base_libdir}/udev/.debug"
25UDEV_EXTRAS = "extras/firmware/ extras/scsi_id/ extras/volume_id/"
26EXTRA_OEMAKE += "libudevdir=/lib/udev libdir=${base_libdir} prefix="
27
28do_install () {
29 install -d ${D}${usrsbindir} \
30 ${D}${sbindir}
31 oe_runmake 'DESTDIR=${D}' INSTALL=install install
32 install -d ${D}${sysconfdir}/init.d
33 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
34
35 install -d ${D}${sysconfdir}/udev/rules.d/
36
37 install -m 0644 ${WORKDIR}/mount.blacklist ${D}${sysconfdir}/udev/
38 install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
39 install -m 0644 ${WORKDIR}/permissions.rules ${D}${sysconfdir}/udev/rules.d/permissions.rules
40 install -m 0644 ${WORKDIR}/udev.rules ${D}${sysconfdir}/udev/rules.d/udev.rules
41 install -m 0644 ${WORKDIR}/links.conf ${D}${sysconfdir}/udev/links.conf
42 if [ "${UDEV_DEVFS_RULES}" = "1" ]; then
43 install -m 0644 ${WORKDIR}/devfs-udev.rules ${D}${sysconfdir}/udev/rules.d/devfs-udev.rules
44 fi
45
46 install -d ${D}${sysconfdir}/udev/scripts/
47
48 install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh
49 install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts
50
51 install -d ${D}${base_libdir}/udev/
52}
53
54do_install_append_h2200() {
55 install -m 0644 ${WORKDIR}/50-hostap_cs.rules ${D}${sysconfdir}/udev/rules.d/50-hostap_cs.rules
56}