|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题。而有些朋友们常常一接触Linux就是希望构架网站,根本没有想到要先了解一下Linux的基础。这是相当困难的。
1、手工加载测试
1、insmod./key_test.ko加载驱动模块到内核
2、cat/proc/modules|grepkey_test检察key_test模块在内核中的地点,不加过滤器能够看到全体加载的模块。
3、lsmod显现模块,这时候能够看到一切的模块名字,前面跟的是主设备号和次设备号。
4、rmmodkey_test把模块从内核里卸载。
2、静态加载
1、把key_test.c源代码放到内核源代码的/drives/char/下,由于这是属字符型驱动,放在这编译到zImage中。
2、这时候我们makemenuconfig编译内核是看不到key_test这个选项的。我们把这个选项写到菜单内里才行。在内核源代码的/drives/char/下有一个Kconfig文件,翻开
(1)viKconfig加几行到内里:
configConFig_key_test
bool"keytest"//后面谁人bool换成tristate就是撑持模块化编译
下面句是在makemenuconfig时会呈现keytest这个选项在drive/char子菜单下,bool后面是TAB键
------help----------这句是呈现在菜单选项上面的
Thiskeytesthelp.这句是你的驱动的申明会呈现在help内里
(2)在/drivers/char目次下的Makefile文件里加上一句:
obj-$(CONFIG_key_test)+=key_test.o
下面这句是让Make时把key_test编译到内核中。
(3)makemenuconfig把key_test选项拔取上
(4)makezImage
天生zImage文件,重启动加载这个新编的内核。
3、lsmod就可以看到key_test了,可是还不克不及用,没有接口,也就是/dev上面没有
4、mknod/dev/key_testc1210这是创立设备到/dev下,使一般程序能够挪用了,121是在源代码里界说的它的主设备号,0是次设备号。
5、cat/dev/key_test这是相称于open这个设备了,大概写一个程序间接挪用open、write等函数。
fd=("/dev/key_test",ORW);
</p>
按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解Linux系统: |
|