Linux udev不加载模块?
我有一个基于debian的基于BusyBox的定制发行版。它使用旧debian版本(IIRC,它基于Wheezy)中的udev,该版本作为udev init脚本的一部分启动了create_static_节点。自定义发行版上的内核基于4.19-686,因此是最新的 我正在尝试将udev更新为基于devaunjessie的更新版本,因为init系统不依赖systemd。我从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创建了一个链接,以供依赖它的实
/etc/udev
,/lib/udev
,libudev
(到/lib(也为旧libudev.so.0创建了一个链接,以供依赖它的实用程序使用),udevadm
(到/sbin),udevd系统(到/sbin asudevd
),还有/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中。对此有什么想法吗?