我正在尝试让内核模块在启动时加载。
如果我运行insmod /path/to/module.ko
,它工作正常。但是每次重新启动时都必须重复此操作。
如果我运行modprobe /path/to/module.ko
,它找不到模块。我知道 modprobe 使用了一个配置文件,但是即使将 /path/to/module.ko 添加到 /etc/modules 后,我也无法让它加载模块。
什么是正确的配置?
我正在尝试让内核模块在启动时加载。
如果我运行insmod /path/to/module.ko
,它工作正常。但是每次重新启动时都必须重复此操作。
如果我运行modprobe /path/to/module.ko
,它找不到模块。我知道 modprobe 使用了一个配置文件,但是即使将 /path/to/module.ko 添加到 /etc/modules 后,我也无法让它加载模块。
什么是正确的配置?
您可以为您的模块创建一个到标准路径的符号链接,因此 depmod 将看到它并且您将能够像任何其他模块一样加载它。
sudo ln -s /path/to/module.ko /lib/modules/`uname -r`
sudo depmod -a
sudo modprobe module
如果您将模块名称添加到 /etc/modules,它将在您启动时加载。
无论如何,我认为正确的配置是将模块复制到标准路径。
请按照以下步骤操作:
- 将 hello.ko 复制到 /lib/modules/'uname-r'/misc/
- 在 /lib/modules/'uname-r'/modules.dep 中添加 misc/hello.ko 条目
- 须藤depmod
- sudo modprobe 你好
modprobe 将检查 modules.dep 文件中的任何依赖项。
我认为关键是将模块复制到标准路径。
完成后,modprobe 只接受模块名称,因此不要使用路径和“.ko”扩展名。