Matt Burgess wrote:
> On Tue, 2012-11-27 at 18:42 +0000, Matt Burgess wrote:
>> On Tue, 2012-11-27 at 18:13 +0800, xinglp wrote:
>>> The Udev-196 only create "/dev/disk/by-path".
>> Confirmed.  I'll take a look.
> 
> Well, 2 hours later and I'm stumped.  I've run 'udevadm --debug test
> /sys/block/sda > /root/udevadm-test.lst 2>&1' on both 195 and 196 
> versions of udev, and can't see anything obviously different between
> the 2.

Not having 196 installed, do you have these files somewhere where I
could take a look?

Also I assume the ruleset is calling IMPORT{builtin}="blkid", possibly
with some flags after blkid?  That's what sets ID_FS_USAGE and friends
(and what probes for the label and uuid).

Hmm, did the Makefile changes for 196 handle the changes where upstream
made both blkid and kmod optional?  We now need to add a couple new
defines if we want that to work right, otherwise IMPORT{builtin}="blkid"
won't actually do anything, because blkid won't be added to the list of
builtins available in the code:

http://cgit.freedesktop.org/systemd/systemd/commit/?id=f553b3b1074151200187df916427a1468186435e
http://cgit.freedesktop.org/systemd/systemd/commit/?id=e30431623a7d871da123cc37055ac49abf2c20ea

See where both of those changed udev.h and udev-builtin.c -- though I
don't know for sure if both changes are included in -196 or not.

If it is this, then it should be reasonably obvious from the udevadm
test output I'd expect, but a full test would be something like:

udevadm info -q env -p /sys/class/block/<whatever partition>

which will dump out the environment from the udev database, instead of
running a separate test.  If it's missing ID_FS_<whatever>, then that's
why the symlink wasn't created, and I'd start to suspect the Makefile.
If the ID_FS_<whatever> entries are there, then it's not this part of
the build, at least.

> I guess this one is either over to Bryan or off to the systemd lists.
> I checked their archives and can't see anything related to this 
> issue.

So from the 60-persistent-storage.rules file in git master, here are the
dependencies I can see:

- by-label and by-uuid both require blkid
- by-path requires path_id (which is AFAICT not optional)
- by-id's requirements depend on the bus the disk is on:
  - SCSI builtin disks require scsi_id
  - SCSI over firewire doesn't require anything extra
  - MMC/MSP don't require anything extra
  - WWN doesn't require anything extra

Of course, I've never seen those last three in use anywhere.

The original report (where by-path is the only one that works) *might*
be due to lack of blkid (from above) plus using the old ATA driver in
the kernel, instead of the libata SCSI type driver?  Seems weird if
that's still an option, but it might be, and by-id doesn't *look* like
it supports that.

I can't explain a missing by-path, though.  :-/

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to