![/etc/modules 中的模块在启动时未加载](https://linux22.com/image/192687/%2Fetc%2Fmodules%20%E4%B8%AD%E7%9A%84%E6%A8%A1%E5%9D%97%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E6%9C%AA%E5%8A%A0%E8%BD%BD.png)
我试图确保ch34x.ko
每次启动设备时都会加载驱动程序模块,以便它正确识别并安装我正在使用的 USB 到串行转换器。
当我通过驱动程序手动安装模块时,insmod ch34x.ko
显示为lsmod | grep ch
,当我通过串行转换器拔下并重新插入时,可以dmesg
正确识别它并将其附加到/dev/ttyUSB0
。
接下来,我将内核对象复制到/lib/modules/ \
uname -r`/kernel/drives` 并将“ch34x”添加到 /etc/modules 的底部并重新启动。但是,重新启动后 lsmod 不会显示该模块,并且转换器无法识别。
我环顾四周,我能找到的所有建议是将模块名称放入 /etc/modules (或我也尝试过的 /etc/modules-load.d )。
该设备是运行 Linux 4 Tegra 4.9 的 Nvidia Jetson Nano。不过这个操作系统是基于 Ubuntu 18.04 的。我在 L4T 中找不到任何针对此问题的建议,因此我认为这是一个 ubuntu 问题。
sudo modprobe ch34x
重新启动后运行会产生
modprobe: FATAL: Module ch34x not found in directory /lib/module/4.9.140-tegra
我还尝试将 ch34x.ko 添加到上述目录而不是 ./kernel/drivers (来自上述路径),并且收到相同的错误。