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