summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/udev
diff options
context:
space:
mode:
authorHongxu Jia <hongxu.jia@windriver.com>2017-11-17 01:08:04 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-12-02 11:25:32 +0000
commit915b99bb8faa29ce3d35c0d6a1e96fa9bcc5c6f1 (patch)
tree11b09133e8914b4f03441d399cac9251111a83a2 /meta/recipes-core/udev
parentbfd899ae342b2aae80790bda283c322301b7e64a (diff)
downloadpoky-915b99bb8faa29ce3d35c0d6a1e96fa9bcc5c6f1.tar.gz
eudev: sync rules with systemd
- Add whitelist hd* devices - Backport latest rules from upstream - Fix formatting IDE storage does not trigger "change" uevents (From OE-Core rev: 52ea08c615118b2d34ea8cbf0a466069ed75f70a) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/udev')
-rw-r--r--meta/recipes-core/udev/eudev/0001-rules-whitelist-hd-devices.patch33
-rw-r--r--meta/recipes-core/udev/eudev/0002-rules-update.patch196
-rw-r--r--meta/recipes-core/udev/eudev/0003-rules-watch-metadata-changes-in-ide-devices.patch43
-rw-r--r--meta/recipes-core/udev/eudev_3.2.2.bb3
4 files changed, 275 insertions, 0 deletions
diff --git a/meta/recipes-core/udev/eudev/0001-rules-whitelist-hd-devices.patch b/meta/recipes-core/udev/eudev/0001-rules-whitelist-hd-devices.patch
new file mode 100644
index 0000000000..1cc4332e85
--- /dev/null
+++ b/meta/recipes-core/udev/eudev/0001-rules-whitelist-hd-devices.patch
@@ -0,0 +1,33 @@
1From 676864191d1855ce23a31026b74c7f64b15e5062 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 9 Nov 2016 19:41:13 -0800
4Subject: [PATCH 1/3] rules: whitelist hd* devices
5
6qemu by default emulates IDE and the linux-yocto kernel(s) use
7CONFIG_IDE instead of the more modern libsata, so disks appear as
8/dev/hd*. Patch rejected upstream because CONFIG_IDE is deprecated.
9
10Upstream-Status: Denied [https://github.com/systemd/systemd/pull/1276]
11
12Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 rules/60-persistent-storage.rules | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules
19index 6f60ae9..bcd573a 100644
20--- a/rules/60-persistent-storage.rules
21+++ b/rules/60-persistent-storage.rules
22@@ -7,7 +7,7 @@ ACTION=="remove", GOTO="persistent_storage_end"
23 ENV{UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG}=="1", GOTO="persistent_storage_end"
24
25 SUBSYSTEM!="block", GOTO="persistent_storage_end"
26-KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|scm*|pmem*|nbd*", GOTO="persistent_storage_end"
27+KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|scm*|pmem*|nbd*|hd*", GOTO="persistent_storage_end"
28
29 # ignore partitions that span the entire disk
30 TEST=="whole_disk", GOTO="persistent_storage_end"
31--
321.8.3.1
33
diff --git a/meta/recipes-core/udev/eudev/0002-rules-update.patch b/meta/recipes-core/udev/eudev/0002-rules-update.patch
new file mode 100644
index 0000000000..7cc4d06d73
--- /dev/null
+++ b/meta/recipes-core/udev/eudev/0002-rules-update.patch
@@ -0,0 +1,196 @@
1From d29a20381bc6bd85e86bdc5b2adb48fa12ccd22a Mon Sep 17 00:00:00 2001
2From: "Anthony G. Basile" <blueness@gentoo.org>
3Date: Sun, 3 Sep 2017 13:20:33 -0400
4Subject: [PATCH 2/3] rules: update
5
6Upstream-Status: Backport [https://github.com/gentoo/eudev/commit/47367bc4df6f05a49cf4b5b0209153d77a9ade83]
7
8Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
9---
10 rules/50-udev-default.rules | 3 ++-
11 rules/60-block.rules | 5 +----
12 rules/60-cdrom_id.rules | 6 +++++-
13 rules/60-drm.rules | 5 +++++
14 rules/60-evdev.rules | 6 +++++-
15 rules/60-persistent-input.rules | 2 ++
16 rules/60-persistent-storage.rules | 11 +++++++----
17 rules/60-sensor.rules | 8 ++++++++
18 rules/78-sound-card.rules | 7 +++++++
19 9 files changed, 42 insertions(+), 11 deletions(-)
20
21diff --git a/rules/50-udev-default.rules b/rules/50-udev-default.rules
22index e9eeb85..87438c0 100644
23--- a/rules/50-udev-default.rules
24+++ b/rules/50-udev-default.rules
25@@ -11,7 +11,6 @@ SUBSYSTEM=="rtc", ATTR{hctosys}=="1", SYMLINK+="rtc"
26 SUBSYSTEM=="rtc", KERNEL=="rtc0", SYMLINK+="rtc", OPTIONS+="link_priority=-100"
27
28 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", IMPORT{builtin}="usb_id", IMPORT{builtin}="hwdb --subsystem=usb"
29-SUBSYSTEM=="input", ENV{ID_INPUT}=="", IMPORT{builtin}="input_id"
30 ENV{MODALIAS}!="", IMPORT{builtin}="hwdb --subsystem=$env{SUBSYSTEM}"
31
32 ACTION!="add", GOTO="default_end"
33@@ -34,6 +33,8 @@ SUBSYSTEM=="video4linux", GROUP="video"
34 SUBSYSTEM=="graphics", GROUP="video"
35 SUBSYSTEM=="drm", GROUP="video"
36 SUBSYSTEM=="dvb", GROUP="video"
37+SUBSYSTEM=="media", GROUP="video"
38+SUBSYSTEM=="cec", GROUP="video"
39
40 SUBSYSTEM=="sound", GROUP="audio", \
41 OPTIONS+="static_node=snd/seq", OPTIONS+="static_node=snd/timer"
42diff --git a/rules/60-block.rules b/rules/60-block.rules
43index 5e38e12..343fc06 100644
44--- a/rules/60-block.rules
45+++ b/rules/60-block.rules
46@@ -8,7 +8,4 @@ ACTION=="add", SUBSYSTEM=="module", KERNEL=="block", ATTR{parameters/events_dfl_
47 ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", ATTR{block/*/uevent}="change"
48
49 # watch metadata changes, caused by tools closing the device node which was opened for writing
50-ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*", OPTIONS+="watch"
51-
52-# set noop on solid state drives
53-SUBSYSTEM=="block", ACTION=="add", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"
54+ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*", OPTIONS+="watch"
55diff --git a/rules/60-cdrom_id.rules b/rules/60-cdrom_id.rules
56index 5c3b52e..288f8ce 100644
57--- a/rules/60-cdrom_id.rules
58+++ b/rules/60-cdrom_id.rules
59@@ -2,12 +2,16 @@
60
61 ACTION=="remove", GOTO="cdrom_end"
62 SUBSYSTEM!="block", GOTO="cdrom_end"
63-KERNEL!="sr[0-9]*|xvd*", GOTO="cdrom_end"
64+KERNEL!="sr[0-9]*|vdisk*|xvd*", GOTO="cdrom_end"
65 ENV{DEVTYPE}!="disk", GOTO="cdrom_end"
66
67 # unconditionally tag device as CDROM
68 KERNEL=="sr[0-9]*", ENV{ID_CDROM}="1"
69
70+# stop automatically any mount units bound to the device if the media eject
71+# button is pressed.
72+ENV{ID_CDROM}=="1", ENV{SYSTEMD_MOUNT_DEVICE_BOUND}="1"
73+
74 # media eject button pressed
75 ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"
76
77diff --git a/rules/60-drm.rules b/rules/60-drm.rules
78index 1ed3e44..f7f3435 100644
79--- a/rules/60-drm.rules
80+++ b/rules/60-drm.rules
81@@ -1,3 +1,8 @@
82 # do not edit this file, it will be overwritten on update
83
84 ACTION!="remove", SUBSYSTEM=="drm", SUBSYSTEMS=="pci|usb|platform", IMPORT{builtin}="path_id"
85+
86+# by-path
87+ENV{ID_PATH}=="?*", KERNEL=="card*", SYMLINK+="dri/by-path/$env{ID_PATH}-card"
88+ENV{ID_PATH}=="?*", KERNEL=="controlD*", SYMLINK+="dri/by-path/$env{ID_PATH}-control"
89+ENV{ID_PATH}=="?*", KERNEL=="renderD*", SYMLINK+="dri/by-path/$env{ID_PATH}-render"
90diff --git a/rules/60-evdev.rules b/rules/60-evdev.rules
91index ade7e7f..e5e608a 100644
92--- a/rules/60-evdev.rules
93+++ b/rules/60-evdev.rules
94@@ -8,10 +8,14 @@ IMPORT{builtin}="hwdb --subsystem=input --lookup-prefix=evdev:", \
95 RUN{builtin}+="keyboard", GOTO="evdev_end"
96
97 # AT keyboard matching by the machine's DMI data
98-ENV{ID_INPUT_KEY}=="?*", DRIVERS=="atkbd", \
99+DRIVERS=="atkbd", \
100 IMPORT{builtin}="hwdb 'evdev:atkbd:$attr{[dmi/id]modalias}'", \
101 RUN{builtin}+="keyboard", GOTO="evdev_end"
102
103+# device matching the input device name + properties + the machine's DMI data
104+KERNELS=="input*", IMPORT{builtin}="hwdb 'evdev:name:$attr{name}:phys:$attr{phys}:ev:$attr{capabilities/ev}:$attr{[dmi/id]modalias}'", \
105+ RUN{builtin}+="keyboard", GOTO="evdev_end"
106+
107 # device matching the input device name and the machine's DMI data
108 KERNELS=="input*", IMPORT{builtin}="hwdb 'evdev:name:$attr{name}:$attr{[dmi/id]modalias}'", \
109 RUN{builtin}+="keyboard", GOTO="evdev_end"
110diff --git a/rules/60-persistent-input.rules b/rules/60-persistent-input.rules
111index 607144b..91efbe7 100644
112--- a/rules/60-persistent-input.rules
113+++ b/rules/60-persistent-input.rules
114@@ -3,6 +3,8 @@
115 ACTION=="remove", GOTO="persistent_input_end"
116 SUBSYSTEM!="input", GOTO="persistent_input_end"
117 SUBSYSTEMS=="bluetooth", ENV{ID_BUS}="bluetooth", GOTO="persistent_input_end"
118+# Bluetooth devices don't always have the bluetooth subsystem
119+ATTRS{id/bustype}=="0005", ENV{ID_BUS}="bluetooth", GOTO="persistent_input_end"
120 SUBSYSTEMS=="rmi4", ENV{ID_BUS}="rmi", GOTO="persistent_input_end"
121 SUBSYSTEMS=="serio", ENV{ID_BUS}="i8042", GOTO="persistent_input_end"
122
123diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules
124index bcd573a..63f472b 100644
125--- a/rules/60-persistent-storage.rules
126+++ b/rules/60-persistent-storage.rules
127@@ -20,6 +20,7 @@ KERNEL=="nvme*[0-9]n*[0-9]", ATTR{wwid}=="?*", SYMLINK+="disk/by-id/nvme-$attr{w
128 KERNEL=="nvme*[0-9]n*[0-9]p*[0-9]", ENV{DEVTYPE}=="partition", ATTRS{wwid}=="?*", SYMLINK+="disk/by-id/nvme-$attr{wwid}-part%n"
129
130 KERNEL=="nvme*[0-9]n*[0-9]", ENV{DEVTYPE}=="disk", ATTRS{serial}=="?*", ENV{ID_SERIAL_SHORT}="$attr{serial}"
131+KERNEL=="nvme*[0-9]n*[0-9]", ENV{DEVTYPE}=="disk", ATTRS{wwid}=="?*", ENV{ID_WWN}="$attr{wwid}"
132 KERNEL=="nvme*[0-9]n*[0-9]", ENV{DEVTYPE}=="disk", ATTRS{model}=="?*", ENV{ID_SERIAL_SHORT}=="?*", ENV{ID_SERIAL}="$attr{model}_$env{ID_SERIAL_SHORT}", SYMLINK+="disk/by-id/nvme-$env{ID_SERIAL}"
133
134 KERNEL=="nvme*[0-9]n*[0-9]p*[0-9]", ENV{DEVTYPE}=="partition", ATTRS{serial}=="?*", ENV{ID_SERIAL_SHORT}="$attr{serial}"
135@@ -63,9 +64,14 @@ KERNEL=="msblk[0-9]p[0-9]|mspblk[0-9]p[0-9]", ENV{ID_NAME}=="?*", ENV{ID_SERIAL}
136
137 # by-path
138 ENV{DEVTYPE}=="disk", DEVPATH!="*/virtual/*", IMPORT{builtin}="path_id"
139-ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}"
140+KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-boot%n"
141+KERNEL!="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}"
142 ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n"
143
144+# legacy virtio-pci by-path links (deprecated)
145+KERNEL=="vd*[!0-9]", ENV{ID_PATH}=="pci-*", SYMLINK+="disk/by-path/virtio-$env{ID_PATH}"
146+KERNEL=="vd*[0-9]", ENV{ID_PATH}=="pci-*", SYMLINK+="disk/by-path/virtio-$env{ID_PATH}-part%n"
147+
148 # probe filesystem metadata of optical drives which have a media inserted
149 KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="?*", \
150 IMPORT{builtin}="blkid --offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}"
151@@ -88,7 +94,4 @@ ENV{DEVTYPE}=="partition", ENV{ID_WWN_WITH_EXTENSION}=="?*", SYMLINK+="disk/by-i
152 ENV{ID_PART_ENTRY_UUID}=="?*", SYMLINK+="disk/by-partuuid/$env{ID_PART_ENTRY_UUID}"
153 ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_NAME}=="?*", SYMLINK+="disk/by-partlabel/$env{ID_PART_ENTRY_NAME}"
154
155-# add symlink to GPT root disk
156-ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_GPT_AUTO_ROOT}=="1", SYMLINK+="gpt-auto-root"
157-
158 LABEL="persistent_storage_end"
159diff --git a/rules/60-sensor.rules b/rules/60-sensor.rules
160index 82e44f8..7ad2c36 100644
161--- a/rules/60-sensor.rules
162+++ b/rules/60-sensor.rules
163@@ -7,4 +7,12 @@ SUBSYSTEM=="iio", KERNEL=="iio*", SUBSYSTEMS=="usb|i2c", \
164 IMPORT{builtin}="hwdb 'sensor:modalias:$attr{modalias}:$attr{[dmi/id]modalias}'", \
165 GOTO="sensor_end"
166
167+SUBSYSTEM=="input", ENV{ID_INPUT_ACCELEROMETER}=="1", SUBSYSTEMS=="acpi", \
168+ IMPORT{builtin}="hwdb 'sensor:modalias:acpi:$attr{hid}:$attr{[dmi/id]modalias}'", \
169+ GOTO="sensor_end"
170+
171+SUBSYSTEM=="input", ENV{ID_INPUT_ACCELEROMETER}=="1", SUBSYSTEMS=="platform", \
172+ IMPORT{builtin}="hwdb 'sensor:modalias:platform:$id:$attr{[dmi/id]modalias}'", \
173+ GOTO="sensor_end"
174+
175 LABEL="sensor_end"
176diff --git a/rules/78-sound-card.rules b/rules/78-sound-card.rules
177index 04740e8..f2fc277 100644
178--- a/rules/78-sound-card.rules
179+++ b/rules/78-sound-card.rules
180@@ -48,6 +48,13 @@ SUBSYSTEMS=="firewire", ATTRS{guid}=="?*", \
181 SUBSYSTEMS=="firewire", GOTO="skip_pci"
182
183 SUBSYSTEMS=="pci", ENV{ID_BUS}="pci", ENV{ID_VENDOR_ID}="$attr{vendor}", ENV{ID_MODEL_ID}="$attr{device}"
184+SUBSYSTEMS=="pci", GOTO="skip_pci"
185+
186+# If we reach here, the device nor any of its parents are USB/PCI/firewire bus devices.
187+# If we now find a parent that is a platform device, assume that we're working with
188+# an internal sound card.
189+SUBSYSTEMS=="platform", ENV{SOUND_FORM_FACTOR}="internal", GOTO="sound_end"
190+
191 LABEL="skip_pci"
192
193 # Define ID_ID if ID_BUS and ID_SERIAL are set. This will work for both
194--
1951.8.3.1
196
diff --git a/meta/recipes-core/udev/eudev/0003-rules-watch-metadata-changes-in-ide-devices.patch b/meta/recipes-core/udev/eudev/0003-rules-watch-metadata-changes-in-ide-devices.patch
new file mode 100644
index 0000000000..17d698a06c
--- /dev/null
+++ b/meta/recipes-core/udev/eudev/0003-rules-watch-metadata-changes-in-ide-devices.patch
@@ -0,0 +1,43 @@
1From 8207d645582e96c56950674e104653d0cd552d60 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Fri, 17 Nov 2017 09:46:00 +0800
4Subject: [PATCH] rules: watch metadata changes in ide devices
5
6Formatting IDE storage does not trigger "change" uevents. As a result
7clients using udev API don't get any updates afterwards and get outdated
8information about the device.
9...
10root@qemux86-64:~# mkfs.ext4 -F /dev/hda1
11Creating filesystem with 262144 4k blocks and 65536 inodes
12Filesystem UUID: 98791eb2-2bf3-47ad-b4d8-4cf7e914eee2
13
14root@qemux86-64:~# ls /dev/disk/by-uuid/98791eb2-2bf3-47ad-b4d8-4cf7e914eee2
15ls: cannot access '/dev/disk/by-uuid/98791eb2-2bf3-47ad-b4d8-4cf7e914eee2': No such file or directory
16...
17Include hd* in a match for watch option assignment.
18
19Upstream-Status: Denied
20
21qemu by default emulates IDE and the linux-yocto kernel(s) use
22CONFIG_IDE instead of the more modern libsata, so disks appear as
23/dev/hd*. A similar patch rejected by upstream because CONFIG_IDE
24is deprecated.
25
26Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
27---
28 rules/60-block.rules | 2 +-
29 1 file changed, 1 insertion(+), 1 deletion(-)
30
31diff --git a/rules/60-block.rules b/rules/60-block.rules
32index 343fc06..b5237da 100644
33--- a/rules/60-block.rules
34+++ b/rules/60-block.rules
35@@ -8,4 +8,4 @@ ACTION=="add", SUBSYSTEM=="module", KERNEL=="block", ATTR{parameters/events_dfl_
36 ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", ATTR{block/*/uevent}="change"
37
38 # watch metadata changes, caused by tools closing the device node which was opened for writing
39-ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*", OPTIONS+="watch"
40+ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*|hd*", OPTIONS+="watch"
41--
421.8.3.1
43
diff --git a/meta/recipes-core/udev/eudev_3.2.2.bb b/meta/recipes-core/udev/eudev_3.2.2.bb
index 70e3568dc2..5cee06120c 100644
--- a/meta/recipes-core/udev/eudev_3.2.2.bb
+++ b/meta/recipes-core/udev/eudev_3.2.2.bb
@@ -11,6 +11,9 @@ PROVIDES = "udev"
11SRC_URI = "http://dev.gentoo.org/~blueness/${BPN}/${BP}.tar.gz \ 11SRC_URI = "http://dev.gentoo.org/~blueness/${BPN}/${BP}.tar.gz \
12 file://0014-Revert-rules-remove-firmware-loading-rules.patch \ 12 file://0014-Revert-rules-remove-firmware-loading-rules.patch \
13 file://Revert-udev-remove-userspace-firmware-loading-suppor.patch \ 13 file://Revert-udev-remove-userspace-firmware-loading-suppor.patch \
14 file://0001-rules-whitelist-hd-devices.patch \
15 file://0002-rules-update.patch \
16 file://0003-rules-watch-metadata-changes-in-ide-devices.patch \
14 file://devfs-udev.rules \ 17 file://devfs-udev.rules \
15 file://init \ 18 file://init \
16 file://links.conf \ 19 file://links.conf \