转载地址:https://bbs.csdn.net/topics/390816030
引用 4 楼 sdkhy0808 的回复:Quote: 引用 2 楼 colddown 的回复:
insmod是把模块加载进内核,加载之后才能运行。
make modules_install 只是把编译好的模块拷贝到系统目录下(一般是/lib/modules/)。
谢谢你的回答。那make modules_install完成,然后呢?拷贝到系统目录下干嘛呢?内核模块最终不就是要加载进内核吗,我觉得只需要insmod就够了啊。
拷贝到系统目录下的目的是方便使用。一般加载驱动使用modprobe XXX命令,该命令从系统目录下查找名为XXX的模块。其实你也可以不做make modules_install,但是这样的话你就需要每次手动从编译目录里运行insmod.
运行modules_install的另一个作用是会运行depmod去生成modules.dep文件,该文件记录了模块之间的依赖关系。这样当你modprobe XXX的时候就能够把XXX所依赖的模块一并加载了