#vi /etc/modprobe.conf
例子:
用modprobe 加载模块时,提示模块找不到的问题,如在/home目录下有个编译好的模块:helloworld.ko,
当我们运行 sudo modprobe /home/helloworld.ko时,会提示“FATAL: Module helloworld not found.”
modprobe是在/lib/module/`uname -r`下寻找加载的模块的,并且modprobe需要一个最新的modules.dep文件,
这个modules.dep文件内容是些各个模块之间的依赖等信息,此文件是由depmod命令来更新的。
man modprobe:
modprobe looks in the module directory /lib/modules/`uname -r` for all the modules and other files, except for the
optional /etc/modprobe.conf configuration file and /etc/modprobe.d
directory (see modprobe.conf(5)).
modprobe expects an up-to-date modules.dep file, as generated by depmod
(see depmod(8)). This file lists what other modules each module needs
(if any), and modprobe uses this to add or remove these dependencies
automatically. See modules.dep(5)).
所以我们需要做的事情:
1.将编译好的模块放入/lib/module/`uname -r`下,
2. 用depmod更新modules.dep文件
3. modprobe helloworld.ko
常见错误:
编译驱动的时候碰到了 insmod: error inserting './igb.ko': -1 Unknown symbol in module 的问题,在网上看了下,说是查看 dmesg | tail 看输出信息中的Unknown symbol,加载上这些模块就好。我的输出信息是:
1
2
3
4
5
|
[ 3548.357465] igb: Unknown symbol dca_remove_requester
[ 3548.358569] igb: Unknown symbol dca_add_requester
[ 3548.358814] igb: Unknown symbol dca_unregister_notify
[ 3548.358817] igb: Unknown symbol dca_register_notify
[ 3548.358924] igb: Unknown symbol dca3_get_tag
|
但是我在系统中查看
dca_remove_requester
dca_add_requester
dca_unregister_notify
dca_register_notify
dca3_get_tag
5个模块是没有找到,细细一想,估计是由于模块依赖的其他模块没有加载导致的。
直接用: modinfo ./igb.ko | grep depend 找模块的依赖,结果如下,
depends: dca
然后再执行:
localhost:/opt/igb/igb-4.0.17/src # modprobe dca
localhost:/opt/igb/igb-4.0.17/src # insmod ./igb.ko
一切OK,嘿嘿,看来以后加载模块之前还是要先看看他的依赖是不是已经加载了阿。
附:《模块加载常见错误》
insmod: error inserting './igb.ko': -1 Unknown symbol in module ---> 依赖的模块没有加载,需要先加载 depends 中列出的模块
insmod: error inserting './igb.ko': -1 Operation not permitted ---> 这当然是你用普通用户执行才出现的错误咯
insmod: error inserting './igb.ko': -1 Invalid module format ---> 模块的vermagic(就是编译内核的环境的内核版本)和当前系统不相匹配
insmod: error inserting './aacraid.ko': -1 No such device ---> 模块是对的,只是没有相应的设备
呵呵,其他的还没收集,等想起来了再加上。