一文看懂[driver]linux内核动态加载模块【值得收藏】
发布网友
发布时间:2024-10-06 18:52
我来回答
共1个回答
热心网友
时间:2024-11-03 18:28
一、安装内核模块
通常步骤如下:
只需编译特定的模块,快速方法是:
注意:避免执行命令make moles_install,以防意外删除系统所有模块,仅安装新编译的模块。
二、模块安装完成,即可加载
关键命令包括:depmod, modprobe, lsmod
2.1 depmod:生成moles.dep和map文件,用于记录模块间依赖,depmod读取/lib/moles/version目录下的所有模块,创建moles.dep文件和相关map文件。
2.2 modprobe:根据moles.dep加载模块,显示可加载模块清单,modprobe无需指定模块路径或后缀,而insmod需指定。
2.3 lsmod:显示当前加载的模块列表。
2.4 modinfo:展示内核模块信息。
三、动态加载实现
内核自动加载功能,通过Verdon ID、Device ID等识别设备,驱动程序定义支持设备ID,depmod生成alias文件,udevd通过select()阻塞等待数据可读,加载相应模块。
四、模块加载配置
/etc/modprobe.conf用于配置加载命令、模块别名等,允许修改自己的配置。
五、开机自动挂载
修改redhat系统中的/etc/rc.d/rc.sysinit文件或在suse中编辑/etc/sysconfig/kernel文件,添加需要开机加载的模块。