-2

I have a busy box based custom distro based on debian. It uses udev from the older debian versions (IIRC it was based on Wheezy) that launched create_static_nodes as part of the udev init script. Kernel on custom distro is 4.19-686 based so it's up to date.

I am trying to update the udev to a newer versions based on Devaun-jessie since that init system doesn't rely on systemd. I copied over the new files from /etc/udev, /lib/udev, libudev (to /lib (also created a link for the old libudev.so.0 to the new version for utilities dependent on it), udevadm (to /sbin), udevd-systemd (to /sbin as udevd), also the /etc/init.d/udev script (as /etc/rc.d/udev). The init is done via a script that launches /etc/rc.d/udev start.

The problem is that udev is not loading the modules. The init script runs moddep -a to ensure up to date, does some manual modprobe of a few optional items. Those manual items show up in /dev just not the module based drivers.

As a test, I manually modprobe some drivers to bring up the /dev/sr0, and that works. It's just something is not triggering the the load. I didn't change anything other than updating the udev items (I even tried leaving some of the rules in that the Devaun based udev didn't have). The Devaun-jessie is running in the same VMWare player so know it works. Also booting my distro with the old udev items works, as as mentioned, if manually loading the modules, things work.

Any idea on how to find out why modules aren't being automatically loaded with the new udev?

TIA!!

user3161924
  • 1,849
  • 18
  • 33
  • I went back to the old `udev`, replaced just the `udevadm` with the new eudev version and everything still works. When I change just the `udevd` it doesn't work, so appears that the `udevd` is not loading the modules. The point up to just loading in --debug mode, is about the same, the difference is after triggering. – user3161924 Sep 25 '19 at 19:24
  • Got even further, when updating kmod, depmod created an empty .dep file, turns out it wasn't built with zlib support and the kernel modules are .gz compressed. So I would guess the .so file was also not supporting it (which is what udevd used). So now it creates the devices under /sys/class/block, but still not showing in /dev. Any idea on that? – user3161924 Sep 26 '19 at 04:12

1 Answers1

0

The answer was that the kmod shared library used by udevd didn't have support for compressed modules (CONFIG option). For kmod itself the --version showing -XY -ZLIB means no support and +XY +ZLIB means support is enabled.

user3161924
  • 1,849
  • 18
  • 33