基于 mini2440 的 linux 驱动程序模块编译测试笔记
wtt @ USST
2010-4-6
原创文章,转载请注明出处。
1.引言
当我们编写好驱动程序后 ,保存成 *.c 文件 ,那这个文件如何编译 ,如何添加到内核中,又
如何测试该驱动是否正常运行呢 ?下面 ,我以 led 驱动为例来说明整个过程 .
2.准备工作
注意 :"()"中的内容是我安装的版本 ,其他版本亦可 .
首先要有一台主机 ,装好发行版 linux 操作系统 (fedora 9),安装好交叉编译器
(arm-linux-gcc), 将 mini2440 源光盘中的 linux 内核源码解压到 /opt/FriendlyARM/mini2440/ 目
录下 .
进入 /opt/FriendlyARM/mini2440/linux-2.6.32.2 目录 ,执行 cp config_mini2440_t35 .config
注意: t35 后面有个空格,然后有个“ .”开头的 config 这个是配置好的内核配置文件 ,
也可以自己建立 .
将 led 驱动保存成 leds_name.c(leds_wtt.c),并且要存入目录
opt/FriendlyARM/mini2440/linux-2.6.32.2/drivers/char 下.
准备好 mini2440 开发板 ,预装 linux 操作系统 ,内核要同 PC 上的版本相同 (linux-2.6.32.2).
3.配置(配置三步 顺序不可颠倒错乱! )
3.1 改写 Kconfig 文件
cd 到 opt/FriendlyARM/mini2440/linux-2.6.32.2/drivers/char 目录 ,打开 Kconfig 文件 ,在文
件中添加几行语句并保存 ,如下 :
config LEDS_NAME #(LEDS_WTT)
tristate "LED Support for Mini2440 GPIO LEDs (name)"
#((wtt)) 上一行主要是为了在配置内核编译模式时提供选择目标驱动所用的显示文字
depends on MACH_MINI2440 #基于 mini2440
default y if MACH_MINI2440 #默认编译入内核 稍后会更改成编译为 module 形
式
help #帮助信息
This option enables support for LEDs connected to GPIO lines
on Mini2440 boards.
添加位置大致如图 :