添加内核模块
添加内核模块需要用到insmod命令或modprobe命令。
通过执行insmod命令把生成的mymod.ko模块添加进来。
insmod mymod.ko
使用dmesg命令,可以看到例子模块mymod.ko的输出内容。
dmesg|tail
:
mymod:init
作为模块初始化函数mymod_init()所调用的printk()的输出内容会在最后一行显示。使用lsmod可以显示目前添加到内核中的模块列表。
lsmod
Module Size Used by
mymod 1482 0
:
可以看到,mymod行存在,模块已添加。
要将已添加的模块从内核空间删除时,可以使用rmmod命令。
rmmod mymod
执行rmmod命令后,模块将从内核空间内删除,使用lsmod命令就不会再输出mymod行。
此外,使用dmesg命令还可以看到终止模块的处理中printk()输出的信息mymod:exit。
dmesg|tail
:
mymod:exit
下面针对模块参数作一些介绍。在添加模块后,就会在/sys/module下生成对应的目录和文件。
ls/sys/module/mymod/
holders initstate notes parameters refcnt sections srcversion
可以确认在parameters下生成的模块mymod中所定义的参数sec。
ls-l/sys/module/mymod/parameters/sec
-rw-r—r—.1 root root 4096 May 15 06:34/sys/module/mymod/parameters/sec
其内容应当是初始值5。
cat/sys/module/mymod/parameters/sec
5
模块参数可以在使用insmod添加模块时对值进行指定。
insmod mymod.ko sec=10
进行上述操作后,添加mymod.ko时模块参数sec就为10,默认间隔5秒的超时变成间隔10秒。