Linux udev不加载模块?

Linux udev不加载模块?,linux,linux-device-driver,udev,Linux,Linux Device Driver,Udev,我有一个基于debian的基于BusyBox的定制发行版。它使用旧debian版本(IIRC,它基于Wheezy)中的udev,该版本作为udev init脚本的一部分启动了create_static_节点。自定义发行版上的内核基于4.19-686,因此是最新的 我正在尝试将udev更新为基于devaunjessie的更新版本,因为init系统不依赖systemd。我从/etc/udev,/lib/udev,libudev(到/lib(也为旧libudev.so.0创建了一个链接,以供依赖它的实

我有一个基于debian的基于BusyBox的定制发行版。它使用旧debian版本(IIRC,它基于Wheezy)中的udev,该版本作为udev init脚本的一部分启动了create_static_节点。自定义发行版上的内核基于4.19-686,因此是最新的

我正在尝试将udev更新为基于devaunjessie的更新版本,因为init系统不依赖systemd。我从
/etc/udev
/lib/udev
libudev
(到/lib(也为旧libudev.so.0创建了一个链接,以供依赖它的实用程序使用),
udevadm
(到/sbin),udevd系统(到/sbin as
udevd
),还有
/etc/init.d/udev>脚本(作为/etc/rc.d/udev)。初始化通过启动
/etc/rc.d/udev start
的脚本完成

问题是
udev
没有加载模块。init脚本运行
moddep-a
以确保最新,对一些可选项执行一些手动
modprobe
。这些手动项显示在/dev中,而不是基于
模块的驱动程序

作为一项测试,我手动
modprobe
一些驱动程序来启动
/dev/sr0
,这是可行的。只是有些东西没有触发加载。除了更新udev项之外,我没有做任何更改(我甚至尝试保留一些基于Devaun的udev没有的规则)。Devaun jessie在同一台VMWare player中运行,因此要知道它是有效的。如前所述,使用旧的udev项启动我的发行版也是有效的,如果手动加载模块,则一切正常

关于如何找出新的udev没有自动加载模块的原因,有什么想法吗


TIA!!

答案是udevd使用的kmod共享库不支持压缩模块(配置选项)。对于kmod本身而言,
--version
显示
-XY
-ZLIB
意味着没有支持,
+XY
+ZLIB
意味着支持被启用。

我回到了旧的
udev
,用新的eudev版本只替换了
udevadm
,一切仍然有效。当我更改
udevd时
它不工作,所以看起来udevd没有加载模块。在--debug模式下加载的点大致相同,不同之处在于触发后。更进一步,在更新kmod时,depmod创建了一个空的.dep文件,结果证明它不是用zlib支持构建的,内核模块是.gz compressed、 所以我猜.So文件也不支持它(udevd就是这么用的)。所以现在它在/sys/class/block下创建了设备,但仍然没有显示在/dev中。对此有什么想法吗?