Linux驱动第三篇-----把驱动编译到内核中

Linux 内核针对驱动的处理有以下两种方式:
第一种方式:把所有需要的功能全部编译到内核中,这种方式会导致重新添加或者删除功
能的时候,需要重新编译内核。
第二种方式:动态的添加模块,也就是这个实验要介绍的“模块的方式添加驱动”。

第二种方式请看第一篇

这篇介绍怎么把功能全部都编译进内核里面:

1. 首先配置编译器

vim .bashrc”打开环境变量文件“.bashrc
Linux驱动第三篇-----把驱动编译到内核中_第1张图片
如下图所示,进入最底行,可以看到,在环境变量文件中编译器路径设置为“export
PATH=$PATH:/usr/local/arm/arm-2009q3/bin”。
Linux驱动第三篇-----把驱动编译到内核中_第2张图片

然后使用命令“#cd /usr/local/arm/”,进入解压编译器“arm-2009q3.tar.bz2”的文件
目录。
Linux驱动第三篇-----把驱动编译到内核中_第3张图片

进入内核文件的Makefile
Linux驱动第三篇-----把驱动编译到内核中_第4张图片
这里通过 vim 编辑器查找参数“CROSS_COMPILE”,如下图所示

Linux驱动第三篇-----把驱动编译到内核中_第5张图片
后面执行make 就会生成镜像文件了zImage

举例说明怎么编译出镜像文件的
led 驱动属于字符驱动,字符驱动一般是在源码目录“drivers/char/
Linux驱动第三篇-----把驱动编译到内核中_第6张图片
itop4412_leds.c :比较好理解,就是 led 驱动的源码
itop4412_leds.o :这个是生成最终 zImage 二进制的中间文件
Makefile :就是 Make 命令所需要的文件

所以我们只需要把我们的驱动.c文件放到这个目录之后就可以了。

然后在makefile里面修改:
打开“vim drivers/char/Makefile”文件之后,找到和 itop4412_leds.c 相关的文件,搜
索“itop4412_leds”,如下图所示。
Linux驱动第三篇-----把驱动编译到内核中_第7张图片
仿写一个这样的脚本即可。

如果想添加类似的字符驱动,就可以在这个目录下添加。
Kconfig、Makefile、menuconfig、“.config”文件大家就可以联系起来了。

你可能感兴趣的:(linux)