[SOLVED] systemd/udev-196 problem (devices not discovered)
Linux From ScratchThis Forum is for the discussion of LFS.
LFS is a project that provides you with the steps necessary to build your own custom Linux system.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
For the very first time in my long experience with LFS, I finally ran into something that stumped me. Note that I follow the current SVN (now at version 20121122). Realizing that this is not a stable version, I always keep an older version of the source packages around in the event of a mishap. And, I'm back up and running just fine and dandy after rolling back from systemd/udev-196 to the prior systemd/udev-195.
I realize that the new 196 uses a binary database in /etc/udev/hwdb.bin. That database is indeed present, some 5 MB in size. I followed the instructions to the letter, including sed -i -e 's/create/update/' src/udev/udevadm-hwdb.c to patch the udevadm help message. The build process and subsequent install were error free.
So what am I finding wrong with 196 compared to its predecessor?
Well, when /etc/rc.d/init.d/udev executes during the system initialization, it shows [ OK ] but devices that ought to be newly-discovered aren't populated into /dev nor are the modules loaded. With the 195 version, there's some disk I/O and a period of time that elapses when udevadm settle as the devices are discovered.
The rollback to 195 was trivial but I am intrigued by what's so substantially different in the newer systemd/udev-196 package. That's what makes LFS so worthwhile and fun -- the troubleshooting and the satisfaction when a problem is resolved.
Time permitting, I may be able to run strace to get more information. In the meantime, has anyone tried the new 196 package and had success?
The newer version only finds 2 directory entries in the /sys/class/sound directory whereas the older 195 version finds 20 entries. Consequently, the latest systemd/udev doesn't load the sound modules and, as a result, ALSA's /proc/asound directory is not created.
Note that the ALSA sound system is all modular on my system, nothing is built into the kernel. With version 195, the Intel HDA sound card is "discovered" during the enumeration of /sys/class/sound and the module is automatically loaded by udev. That doesn't happen with version 196.
[SOLVED] systemd/udev-196 problem (devices not discovered)
Quote:
Originally Posted by re_nelson
So what am I finding wrong with 196 compared to its predecessor (195)?
Well, when /etc/rc.d/init.d/udev executes during the system initialization, it shows [ OK ] but devices that ought to be newly-discovered aren't populated into /dev nor are the modules loaded. With the 195 version, there's some disk I/O and a period of time that elapses when udevadm settle as the devices are discovered.
The LFS folks (bdubbs in particular) fixed it upstream as explained here:
I almost wish I hadn't seen that post about the fix because I was about to allocate some time to track it down myself. Anyway, thanks to the LFS crew for noting the problem and providing a fix. The essence of the solution just boiled down to adding these lines to cfg.h:
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.