您的位置:首页 > 运维架构 > Linux

linux内核学习第三天——内核模块的加载

2013-08-06 22:37 423 查看
上一章讲到Linux内核的编译,得到Image镜像后就可以烧到开发板上运行了,不过这样也会带来一些问题:比如当你想要增加或者修改linux内核的一些配置、组件时必须选择重新编译linux内核然后烧到开发板上。我们可以从网上或者其他人那边拷贝得到Image,但不免要添加一些组件,这时我们该怎么办,就需要自己编译模块,然后放到内核中!当然这个时候安装的模块不会被内核文件中,只会在内核运行期动态的安装,当不用的时候卸载!

安装内核模块时用module_init(/*加载的模块函数*/),卸载内核模块时用module_exit("卸载的模块函数");下面是我写的一小段模块函数——由多文件组成:



这是我的外函数



下面就是如何将我的add模块函数加入到我的内核中!

1.编写makefile文件



2.安装我的模块文件:insmod calculate.ko,  卸载是rmmod calculate

3.检查是否安装好了:lsmod,如果看到了calculate说明安装完成

4.用modprobe也可以加载一个模块到内核中,不过它会根据/lib/module<$version>/modules.dep文件来自动的加载需要依赖的模块!

5.在编写模块时有一些可选信息可以写到内核中:许可证声明、作者声明、模块描述、模块版本、模块别名、模块参数的声明,下面是我对我的参数进行模块声明(用module_param)



这些都是些基本的内核模块加载,但是存在一个问题:不能打印内核模块的打印信息,代码如上!

上面的方法是在已有的系统中安装,也可以在目标内核中编译好后,在目标系统中安装,参考http://blog.csdn.net/askbai666888/article/details/8593636
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: