针对TQ2440开发板上Linux2.6.30.4内核的交叉编译和驱

最近由于要做TQ2440(ARM9)开发板上的驱动实验,所以要在主机(Ubuntu 13.10)上针对前面的目标板上的系统内核进行交叉编译。

Ubuntu下搭建TQ2440的程序下载环境

Ubuntu 12.04(32位)下TQ2440开发板环境搭建

【Linux驱动】TQ2440 LED驱动程序

一,内核的交叉编译:

1.准备2.6.30.4版本的内核源码包,这个我使用的是天嵌公司提供的内核源码包linux-2.6.30.4_20121214.tar.bz2。

2.打开终端输入指令:tar vxjf linux-2.6.30.4_20121214.tar.bz2 解压内核源码包得到一个名字为opt的文件夹,然后输入指令:sudo mv opt /usr/local/ 将源码剪切至usr/local下,当然这个你可以选择移动到其他你喜欢的文件夹下。

3.输入指令:cd /usr/local/opt/EmbedSky/linux-2.6.30.4 进入到内核源码的目录,然后输入指令:ls 查看文件,找到一个名字为config_EmbedSky_W43(我的触摸屏是4.3寸的,所以选择这个),然后在当前目录下输入指令:cp config_EmbedSky_W43 .config,复制一份把他的名字修改为 .config。

4.登录root,输入指令:make menuconfig,然后弹出linux配置的界面--Linux Kernel Configuration,选择最后一项--Save an Alternate Configuration File,然后选择ok保存配置。

5.输入指令:make 进行编译即可(root权限)。什么交叉编译路径的配置和支持平台的配置,人家天嵌公司在源码里面的Makefile文件里早就给你配置好了,这个无需担心。等待编译结束后,进入内核的源码文件夹下vmlinux,交叉编译成功!

二,驱动程序的移植:

当顺利完成内核的交叉编译工作后,接下来就可以着手把驱动程序移植到目标板的系统内核中了,你只需要注意Makefile文件的编写,把2.6.30.4内核的路径和交叉编译工具链arm-linux-gcc加进去,然后接下来直接输入make指令,便编译出了可以加载进TQ2440目标板系统内核的驱动模块了。

具体Makefile的源码如下(假设我要编译的驱动程序的名字为mybeep): 

obj-m:=mybeep.o

CC=arm-linux-gcc

KERNELDIR=/usr/local/opt/EmbedSky/linux-2.6.30.4

PWD:=$(shell pwd)

default:

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

clean:

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/94245cdbf07c7c4eae15ef4b6f5c2d55.html