将自己的模块编译进入内核

2019-07-12 23:13发布

学习嵌入式linux必须能把自己的驱动模块编译进内核。它其实很简单,只需要改写两个文件就ok了,他们是:Kconfig和Makefile.
例如我写了一个led的驱动程序:
lanpeng@lanpeng-desktop:~/led$ ls
led.c   Makefile
lanpeng@lanpeng-desktop:~/led$ cat Makefile
 obj-$(CONFIG_LED_LAN) += led.o
lanpeng@lanpeng-desktop:~/led$ cd ..
lanpeng@lanpeng-desktop:~$ cp -fr led linux-2.6.27/drivers/char/
以上是将自己写的led驱动程序放到内核源代码的字符设备目录下(当然也可以放到其他设备目录下).
下面到关键部分了:
lanpeng@lanpeng-desktop:~/../drivers/char$ ls led/
led.c Makefile

在linux-2.6.27/drivers/char/目录下,我们要修改Kconfig文件。它在我们make menuconfig时会显示出我们要编译的设备文件。
打开Kconfig,在第二行添加如下信息:
config LED
    bool "lan peng's led"
    default y
    help
        lanpeng's led:echo '0'>/dev/cled,it will liang.echo '1'>/dev/cled,it will mie.
保存退出即可。
还在此目录下打开Makefile,添加如下行:
obj-$(CONFIG_LED_LAN)        += led/
保存退出即可。
make menuconfig一下,进入Device Drivers,在这个选项下,进入
Charater devices,在这下面就可以看到我们的驱动模块了:
[*]lan peng's led
阅读(417) | 评论(0) | 转发(0) | 0 上一篇:linux下的led驱动程序 下一篇:ARM指令系统 相关热门文章 给主人留下些什么吧!~~ 评论热议