linux-内核-将内核模块编译进内核

linux-内核-将内核模块编译进内核,第1张

概述linux-内核-将内核模块编译进内核

大纲:
1.交叉编译环境搭建
2.内核模块的编写
3.将开发板连接上PC串口测试,加载模块
4.内核模块参数
5.总结
一.编译环境的搭建
交叉编译软件地址:
http://cloud.189.cn/t/VBvYbqMnueei
1.把交叉编译安装包通过ssh服务上传到linux的/opt目录下
2.解压到当前目录

tar -xvf  gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz

解压后得到


3.修改当前目录下/bashrc文件,将交叉编译路径加入到环境变量中,在文件的最后一行添加



4.保存退出后执行source命令跟新
5.测试环境变量来检查交叉编译工具是否安装成功


但是出现了上面的报错。解决方法如下
http://www.cnblogs.com/jycboy/p/4926538.html
这里我只是安装了
sudo apt-get install libc6:i386 libstdc++6:i386 libncurses5:i386 zlib1g:i386
问题就解决好啦


二.内核模块的编写
首先要下载相应的内核,在内核基础里面我已经介绍过啦,这里就不赘述啦
这里我的内核源码路径是


1.这里我是一简单的测试代码,不涉及是字符驱动设备还是块驱动设备等,所以随便放在哪个驱动的目录下,新建一个hellowold.c文件


helloworld.c的文件内容如下

#include<linux/init.h>#include<linux/module.h>static int hello_init(voID){    printk(KERN_WARNING"Hello World!n");    return 0;    }static int hello_exit(voID){    printk(KERN_INFO"Goodbye world!n");    }   module_init(hello_init);module_init(hello_exit);

2.修改Makefile文件


3.修改Kconfig文件
模仿上面的内容写了下面的版块


4.在build.sh文件里面添加
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules



5.在linux-imx_share目录下执行make ARCH=arm menuconfig
这个时候我出现了如下报错:


解决方法如下:
http://blog.csdn.net/yueashuxia/article/details/52960658
我是直接sudo apt-get install libncurses5-dev
然后再执行make ARCH=arm menuconfig
出现以下目录:


为了快速搜索出我写的内核模块程序,输入/,填写config的名称进行搜索


6.进入到相应路径下找到自己的模块,改成M,保存退出


7.执行./build.sh,编译成功


三.将开发板连接上PC串口测试,加载模块
1.下载工具–securecrt
http://cloud.189.cn/t/q6BZ3q6fueEv


2.给开发板通电启动
3.上传编译生成的helloworld.ko文件


4.加载模块到开发板


5.查看


6.卸载rmmod helloworld.ko
四.内核模块参数
通过宏module_param指定模块参数,模块参数用于在模块加载时传递参数给模块
module_param(name,type,perm)
name:模块参数名称
type:参数类型int ,charp,bool
perm:模块参数的访问权限
S_IRUGO任何用户对/sys/module中出现的该参数具有读权限
S_IWUSR允许root用户修改/sys/module中出现的参数
举例:
module_param(a,int,S_IRUGO);
module_param(st,charp,S_IWUSR);
五.总结
1.应用程序从头main到尾执行任务,执行结束后从内存中消失,内核模块则是现在内核中注册自己以便服务将来的某个请求,然后他的初始化函数结束,此时模块仍然存在于内核中,直到卸载函数被调用,模块才从内核中消失
2.printk在内核中使用,printf在应用程序中使用
优先级

总结

以上是内存溢出为你收集整理的linux-内核-将内核模块编译进内核全部内容,希望文章能够帮你解决linux-内核-将内核模块编译进内核所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1013449.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)