linux驱动之内核编译

先拿出一份之前牛人的总结:

参考资料

说明本人使用的内核版本:(red hat)  linux 2.6.28

那个自我测试的小实验是不是太繁琐呢?因此做了尝试,而且尝试也成功了。就和大家分享一下新的简单的方法。

提示:此行为会接触到内核编译,有出现内核被污染、被损坏的可能性,因此谨慎操作

首先是准备好插入的程序。。

到底怎么做呢?

参考内容的方式也可以实现,但是大家有木有觉得很麻烦?作为粗心大意的我都觉得很容易出错,不是么?那么我们就用下面的方法!从开始到结束总共分三部:

1、找到目录,将代码保存;

2,、分别在Makefile  Kconfig中添加填入项;

3、返回内核根目录,make menuconfig,make modules。

很简单吧!!!!! 具体怎么实现呢?别急。

就以上面的.c为例吧。

因为它是一个字符设备,所以我们的第1 2部需要在内核根目录的driver的char下进行操作,具体可以这样做:

  1. [root@bogon ~]# cd /linux-2.6.28/drivers/char/*进入目录*/ 
[root@bogon ~]# cd /linux-2.6.28/drivers/char /*进入目录*/
还记得刚刚我们做好的.c嘛?拷贝到这里就可以了!

然后进入Makefile中 添加我们刚刚保存的这项!

  1. FONTMAPFILE = cp437.uni 
  2.   
  3. obj-y    += mem.o random.o tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o tty_buff    er.o tty_port.o 
  4.  
  5. obj-$(CONFIG_MY_TEST)           += pr.o   /*这是我添加的内容*/ 
  6. obj-$(CONFIG_LEGACY_PTYS)   += pty.o 
  7. obj-$(CONFIG_UNIX98_PTYS)   += pty.o 
FONTMAPFILE = cp437.uni
 
obj-y    += mem.o random.o tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o tty_buff    er.o tty_port.o

obj-$(CONFIG_MY_TEST)           += pr.o   /*这是我添加的内容*/
obj-$(CONFIG_LEGACY_PTYS)   += pty.o
obj-$(CONFIG_UNIX98_PTYS)   += pty.o
根据测试,你将项目添加的位置将会影响它显示的位置。
修改完Makefile以后呢就是修改Kconfig了,只需按如下方式修改:

  1. menu "Character devices" 
  2.  
  3. config MY_TEST 
  4.     tristate "MY_TEST" 
  5.  
  6. config VT 
  7.     bool "Virtual terminal"if EMBEDDED 
  8.     depends on !S390 
 
 menu "Character devices"
 
 config MY_TEST
     tristate "MY_TEST"
 
 config VT
     bool "Virtual terminal" if EMBEDDED
     depends on !S390

7、8行就是新添加进去的,“tristate”可以换为“bool”,至于什么作用,后面说


这时候都修改完了 我们就要返回内核目录下执行步骤3了。

(1)

  1. [root@bogon linux-2.6.28]# make menuconfig 
[root@bogon linux-2.6.28]# make menuconfig
出现这个对话框以后,因为我们添加的是字符设备,所以选择Device Drivers回车。

有开全屏的朋友注意啦:这个对话框可不能最大化哦!不然会出现问题的。

因为是字符设备的缘故,所以这里当然是


Character devices了!!继续回车!!


看到了吗?我在前面将菜单名称其名为MY_TEST的,所以在这里他显示为MY_TEST了!而刚刚说的选择“bool”还是“tristate”影响就在<>中哦!如果选择前者,选择项只会有< > <*>两种,而后者就会多<M>这个选项哦!

那么我们选择M吧!!用空格改变前面的配置哦!配置好esc一路退出保存就可以了!

(2)make modules

这个不用说啦,上面一步做完了,继续在当前目录下敲make modules就可以了!然后等待


成功的标志是什么呢?

查看内核版本下的.config文件夹下是否有么有你添加的东西呢?

看1740行!!这就是我们添加成功了!!!

再确认一下

  1. [root@bogon linux-2.6.28]# cd drivers/char
[root@bogon linux-2.6.28]# cd drivers/char/

除了刚开始我们存入的.c文件外多了一个.ko文件,至此,我们添加工作全部完成!!!!

 

至于其他的东西,那篇文章总结的很详细了,这里也就不多说了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值