我有一个基于debian的基于盒子的自定义发行版。它使用来自较早版本的Debian(基于Wheezy的IIRC)的udev,该版本在udev初始化脚本中启动了create_static_nodes。自定义发行版的内核基于4.19-686,因此它是最新的。
我正在尝试将udev更新为基于Devaun-jessie的较新版本,因为该初始化系统不依赖systemd。我将新文件从/etc/udev
,/lib/udev
,libudev
复制到/ lib(还为旧的libudev.so.0创建了到新版本的链接,以供依赖它的实用程序使用。 ),udevadm
(到/ sbin),udevd-systemd
(到/ sbin作为udevd
)以及/etc/init.d/udev
脚本(作为/etc/rc.d/udev)。 init
是通过启动/etc/rc.d/udev start
的脚本完成的。
问题是udev
没有加载模块。初始化脚本运行moddep -a
以确保最新,对一些可选项目执行一些手动modprobe
。这些手册项仅显示在/ dev中,而不显示在基于module
的驱动程序中。
作为测试,我手动modprobe
来启动/dev/sr0
的一些驱动程序,并且可以工作。只是没有触发负载。除了更新udev项外,我没有做任何其他更改(我什至尝试留下一些规则,因为基于Devaun的udev没有)。 Devaun-jessie在同一VMWare播放器中运行,因此知道它可以工作。如前所述,还可以使用旧的udev项引导我的发行版,如上所述,如果手动加载模块,则一切正常。
关于如何找出为什么新的udev无法自动加载模块的任何想法?
TIA !!
答案 0 :(得分:0)
答案是udevd使用的kmod共享库不支持压缩模块(CONFIG选项)。对于kmod本身,显示--version
-XY
的{{1}}表示不支持,-ZLIB
+XY
表示已启用支持。