Openembedded Core Discussions
 help / color / mirror / Atom feed
* udev + 60-persistent-storage.rules + IDE
@ 2015-09-16 12:11 Patrick Ohly
  2015-09-17  6:44 ` Patrick Ohly
  0 siblings, 1 reply; 5+ messages in thread
From: Patrick Ohly @ 2015-09-16 12:11 UTC (permalink / raw)
  To: OpenEmbedded

Hello!

I just noticed that udev (no longer) creates /dev/disk/by-uuid links for
my boot partition under qemu when booting a whole-disk image
(hdddirect). The device is then /dev/hda, with /dev/hda2 being the root
partition.

systemd's 60-persistent-storage.rules indeed skips the relevant rules
because "hd" is not listed:

KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*", GOTO="persistent_storage_end"

Adding "hd*" to that line fixes the problem. I'll send patches to
systemd and for OE-core.

I'm a bit puzzled a) that plain-old IDE block devices have never been
matched by 60-persistent-storage.rules (I checked the history) and b)
that this suddenly broke. I'm fairly sure that I had tested that (but I
cannot 100% guarantee that anymore).

Did indeed something change recently that led to /dev/hda?

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: udev + 60-persistent-storage.rules + IDE
  2015-09-16 12:11 udev + 60-persistent-storage.rules + IDE Patrick Ohly
@ 2015-09-17  6:44 ` Patrick Ohly
  2015-09-17  6:49   ` [PATCH] systemd: apply persistent storage udev rules also for /dev/hd* Patrick Ohly
                     ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Patrick Ohly @ 2015-09-17  6:44 UTC (permalink / raw)
  To: OpenEmbedded

On Wed, 2015-09-16 at 14:11 +0200, Patrick Ohly wrote:
> I just noticed that udev (no longer) creates /dev/disk/by-uuid links for
> my boot partition under qemu when booting a whole-disk image
> (hdddirect). The device is then /dev/hda, with /dev/hda2 being the root
> partition.
> 
> systemd's 60-persistent-storage.rules indeed skips the relevant rules
> because "hd" is not listed:
> 
> KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*", GOTO="persistent_storage_end"
> 
> Adding "hd*" to that line fixes the problem. I'll send patches to
> systemd and for OE-core.

Lennart argued that /dev/hd* is caused by using the deprecated
CONFIG_IDE in the kernel and therefore rejected adding "hd*" to upstream
udev.

CONFIG_IDE seems to come from common-pc-drivers.cfg [1] but that's just
a guess - I'm not entirely sure how to identify the actual kernel config
fragments that were used during a build. Anyway, it has been there since
2011 and modernizing that is a different topic, so I'll just send the
patch for systemd/udev.

[1]
http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/bsp/common-pc/common-pc-drivers.cfg

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] systemd: apply persistent storage udev rules also for /dev/hd*
  2015-09-17  6:44 ` Patrick Ohly
@ 2015-09-17  6:49   ` Patrick Ohly
  2015-09-17 12:24   ` udev + 60-persistent-storage.rules + IDE Bruce Ashfield
  2015-09-21 14:30   ` [PATCH v2] systemd: apply persistent storage udev rules also for /dev/hd* Patrick Ohly
  2 siblings, 0 replies; 5+ messages in thread
From: Patrick Ohly @ 2015-09-17  6:49 UTC (permalink / raw)
  To: openembedded-core

This fixes booting with initramfs and root=UUID on machines with IDE
disks, like "runqemu hdddirect", and kernels which still use the
deprecated CONFIG_IDE.

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
---
 .../systemd/rules-whitelist-hd-devices.patch       | 32 ++++++++++++++++++++++
 meta/recipes-core/systemd/systemd_225.bb           |  1 +
 2 files changed, 33 insertions(+)
 create mode 100644 meta/recipes-core/systemd/systemd/rules-whitelist-hd-devices.patch

diff --git a/meta/recipes-core/systemd/systemd/rules-whitelist-hd-devices.patch b/meta/recipes-core/systemd/systemd/rules-whitelist-hd-devices.patch
new file mode 100644
index 0000000..8975b05
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/rules-whitelist-hd-devices.patch
@@ -0,0 +1,32 @@
+From f77b7e5626e70c3a775e993816a33af5a61dea42 Mon Sep 17 00:00:00 2001
+From: Patrick Ohly <patrick.ohly@intel.com>
+Date: Wed, 16 Sep 2015 13:55:58 +0200
+Subject: [PATCH] rules: whitelist hd* devices
+
+qemu by default emulates IDE and the linux-yocto kernel(s) use
+CONFIG_IDE instead of the more modern libsata, so disks appear as
+/dev/hd*. Patch rejected upstream because CONFIG_IDE is deprecated.
+
+Upstream-Status: Denied [https://github.com/systemd/systemd/pull/1276]
+
+Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
+---
+ rules/60-persistent-storage.rules | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules
+index 0b14bb4..1c4d97a 100644
+--- a/rules/60-persistent-storage.rules
++++ b/rules/60-persistent-storage.rules
+@@ -6,7 +6,7 @@
+ ACTION=="remove", GOTO="persistent_storage_end"
+ 
+ SUBSYSTEM!="block", GOTO="persistent_storage_end"
+-KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*", GOTO="persistent_storage_end"
++KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|hd*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*", GOTO="persistent_storage_end"
+ 
+ # ignore partitions that span the entire disk
+ TEST=="whole_disk", GOTO="persistent_storage_end"
+-- 
+2.1.4
+
diff --git a/meta/recipes-core/systemd/systemd_225.bb b/meta/recipes-core/systemd/systemd_225.bb
index 6ac99cd..b1a1818 100644
--- a/meta/recipes-core/systemd/systemd_225.bb
+++ b/meta/recipes-core/systemd/systemd_225.bb
@@ -45,6 +45,7 @@ SRC_URI = "git://github.com/systemd/systemd.git;protocol=git \
            file://00-create-volatile.conf \
            file://init \
            file://run-ptest \
+           file://rules-whitelist-hd-devices.patch \
           "
 SRC_URI_append_qemuall = "file://qemuall_io_latency-core-device.c-Change-the-default-device-timeout-to-2.patch"
 
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: udev + 60-persistent-storage.rules + IDE
  2015-09-17  6:44 ` Patrick Ohly
  2015-09-17  6:49   ` [PATCH] systemd: apply persistent storage udev rules also for /dev/hd* Patrick Ohly
@ 2015-09-17 12:24   ` Bruce Ashfield
  2015-09-21 14:30   ` [PATCH v2] systemd: apply persistent storage udev rules also for /dev/hd* Patrick Ohly
  2 siblings, 0 replies; 5+ messages in thread
From: Bruce Ashfield @ 2015-09-17 12:24 UTC (permalink / raw)
  To: Patrick Ohly; +Cc: OpenEmbedded

On Thu, Sep 17, 2015 at 2:44 AM, Patrick Ohly <patrick.ohly@intel.com> wrote:
> On Wed, 2015-09-16 at 14:11 +0200, Patrick Ohly wrote:
>> I just noticed that udev (no longer) creates /dev/disk/by-uuid links for
>> my boot partition under qemu when booting a whole-disk image
>> (hdddirect). The device is then /dev/hda, with /dev/hda2 being the root
>> partition.
>>
>> systemd's 60-persistent-storage.rules indeed skips the relevant rules
>> because "hd" is not listed:
>>
>> KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*", GOTO="persistent_storage_end"
>>
>> Adding "hd*" to that line fixes the problem. I'll send patches to
>> systemd and for OE-core.
>
> Lennart argued that /dev/hd* is caused by using the deprecated
> CONFIG_IDE in the kernel and therefore rejected adding "hd*" to upstream
> udev.
>
> CONFIG_IDE seems to come from common-pc-drivers.cfg [1] but that's just
> a guess - I'm not entirely sure how to identify the actual kernel config
> fragments that were used during a build. Anyway, it has been there since
> 2011 and modernizing that is a different topic, so I'll just send the
> patch for systemd/udev.


That is in fact where it comes from for those machines .. and in fact, I started
removing it from various trees about a year ago. Up until recently, it
was around
for compatibility reasons .. but now the generic scsi subsystem
provides everything
that CONFIG_IDE used to .. and they can in fact be dropped.

I may do it to the 4.1 kernel, or wait until after the upcoming
release to avoid any
chance of breaking something that still depends on it.

Bruce

>
> [1]
> http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/bsp/common-pc/common-pc-drivers.cfg
>
> --
> Best Regards, Patrick Ohly
>
> The content of this message is my personal opinion only and although
> I am an employee of Intel, the statements I make here in no way
> represent Intel's position on the issue, nor am I authorized to speak
> on behalf of Intel on this matter.
>
>
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



-- 
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2] systemd: apply persistent storage udev rules also for /dev/hd*
  2015-09-17  6:44 ` Patrick Ohly
  2015-09-17  6:49   ` [PATCH] systemd: apply persistent storage udev rules also for /dev/hd* Patrick Ohly
  2015-09-17 12:24   ` udev + 60-persistent-storage.rules + IDE Bruce Ashfield
@ 2015-09-21 14:30   ` Patrick Ohly
  2 siblings, 0 replies; 5+ messages in thread
From: Patrick Ohly @ 2015-09-21 14:30 UTC (permalink / raw)
  To: openembedded-core

This fixes booting with initramfs and root=UUID on machines with IDE
disks, like "runqemu hdddirect", and kernels which still use the
deprecated CONFIG_IDE.

v2: Rebased against current master-next.

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
---
 .../systemd/rules-whitelist-hd-devices.patch       | 32 ++++++++++++++++++++++
 meta/recipes-core/systemd/systemd_225.bb           |  1 +
 2 files changed, 33 insertions(+)
 create mode 100644 meta/recipes-core/systemd/systemd/rules-whitelist-hd-devices.patch

diff --git a/meta/recipes-core/systemd/systemd/rules-whitelist-hd-devices.patch b/meta/recipes-core/systemd/systemd/rules-whitelist-hd-devices.patch
new file mode 100644
index 0000000..8975b05
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/rules-whitelist-hd-devices.patch
@@ -0,0 +1,32 @@
+From f77b7e5626e70c3a775e993816a33af5a61dea42 Mon Sep 17 00:00:00 2001
+From: Patrick Ohly <patrick.ohly@intel.com>
+Date: Wed, 16 Sep 2015 13:55:58 +0200
+Subject: [PATCH] rules: whitelist hd* devices
+
+qemu by default emulates IDE and the linux-yocto kernel(s) use
+CONFIG_IDE instead of the more modern libsata, so disks appear as
+/dev/hd*. Patch rejected upstream because CONFIG_IDE is deprecated.
+
+Upstream-Status: Denied [https://github.com/systemd/systemd/pull/1276]
+
+Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
+---
+ rules/60-persistent-storage.rules | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules
+index 0b14bb4..1c4d97a 100644
+--- a/rules/60-persistent-storage.rules
++++ b/rules/60-persistent-storage.rules
+@@ -6,7 +6,7 @@
+ ACTION=="remove", GOTO="persistent_storage_end"
+ 
+ SUBSYSTEM!="block", GOTO="persistent_storage_end"
+-KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*", GOTO="persistent_storage_end"
++KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|hd*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*", GOTO="persistent_storage_end"
+ 
+ # ignore partitions that span the entire disk
+ TEST=="whole_disk", GOTO="persistent_storage_end"
+-- 
+2.1.4
+
diff --git a/meta/recipes-core/systemd/systemd_225.bb b/meta/recipes-core/systemd/systemd_225.bb
index f7d4c7d..9338364 100644
--- a/meta/recipes-core/systemd/systemd_225.bb
+++ b/meta/recipes-core/systemd/systemd_225.bb
@@ -45,6 +45,7 @@ SRC_URI = "git://github.com/systemd/systemd.git;protocol=git \
            file://00-create-volatile.conf \
            file://init \
            file://run-ptest \
+           file://rules-whitelist-hd-devices.patch \
           "
 SRC_URI_append_qemuall = " file://qemuall_io_latency-core-device.c-Change-the-default-device-timeout-to-2.patch"
 
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-09-21 14:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-16 12:11 udev + 60-persistent-storage.rules + IDE Patrick Ohly
2015-09-17  6:44 ` Patrick Ohly
2015-09-17  6:49   ` [PATCH] systemd: apply persistent storage udev rules also for /dev/hd* Patrick Ohly
2015-09-17 12:24   ` udev + 60-persistent-storage.rules + IDE Bruce Ashfield
2015-09-21 14:30   ` [PATCH v2] systemd: apply persistent storage udev rules also for /dev/hd* Patrick Ohly

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox