Opened 12 years ago

Closed 12 years ago

#3008 closed enhancement (fixed)

Udev-180

Reported by: Matthew Burgess Owned by: Matthew Burgess
Priority: normal Milestone: 7.1
Component: Book Version: SVN
Severity: normal Keywords:
Cc:

Description

New version. Release announcement at http://www.spinics.net/lists/hotplug/msg05326.html.

Change History (5)

comment:1 by Matthew Burgess, 12 years ago

Owner: changed from lfs-book@… to Matthew Burgess
Status: newassigned

comment:2 by Bryan Kadzban, 12 years ago

Finally got a chance to test this out on a somewhat older system. There's a bug in the firmware loading that makes it break entirely. The default firmware search path is ${rootprefix}/lib/firmware{/updates,} -- which, given the default value of --with-rootprefix (${ac_default_prefix}, or /usr), means it looks in /usr/lib/firmware by default. But the kernel installs firmware to /lib, not /usr/lib.

It doesn't look like --with-rootprefix affects anything else in udev, except the shebang line in src/extras/keymap/keyboard-force-release.sh.in, which looks like this:

#!@rootprefix@/bin/sh -e

and therefore obviously requires that @rootprefix@ be the empty string. (We disable keymap-force-release.sh, though, so this doesn't affect us.)

Reported to upstream with a patch that removes the ${rootprefix} from the default value of the flag, but I'm not sure which way upstream will fall on this one. We should probably just set "--rootprefix=" in the configure flags ourselves.

(Especially since that's one of the flags that INSTALL recommends for "[t]he options to install udev in the rootfs instead of /usr, and udevadm in /sbin". Although that list of options also includes --with-rootlibdir=/lib64, which from reading Makefile.am, activates a whole bunch of postinstall shell crazy, which appears to move libudev.so.* (but not libudev.so) from --libdir (default /usr/lib) to /lib64. But nothing on this system except Xorg links to libudev, not even udevd itself, so I think it's fine to leave libudev in /usr.)

comment:3 by Matthew Burgess, 12 years ago

From reading Kay's reply at http://www.spinics.net/lists/hotplug/msg05330.html, it looks like they expect everyone to be following the merged / & /usr layout already! This is the trouble when the same maintainer seemingly looks after several areas of a distro at the same time; they lose the ability to understand/acknowledge that not all distros use the same layout, so such assumptions don't necessarily hold. So, now we're in the position that the upstream kernel will dump firmware blobs into /lib, but Udev expects them to be in /usr/lib. Using rootprefix= looks sensible enough for the time being (i.e. until Kay, Lennart and the gang change the default in the kernel). I'll fix this up with the version bump.

comment:4 by bdubbs@…, 12 years ago

For now, I think a link /lib/firmware <--> /usr/lib/firmware will do. The direction doesn't matter.

Section 6.6 with a little explanation would seem the right place to me.

comment:5 by Matthew Burgess, 12 years ago

Resolution: fixed
Status: assignedclosed

Fixed in r9721. I ended up using the '--with-rootprefix' switch; whilst either way would have worked, it felt more natural to have the kernel put its firmware in /lib and have Udev expect to find it there.

Note: See TracTickets for help on using tickets.