歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

針對TQ2440開發板上Linux2.6.30.4內核的交叉編譯和驅動程序的移植

最近由於要做TQ2440(ARM9)開發板上的驅動實驗,所以要在主機(Ubuntu 13.10)上針對前面的目標板上的系統內核進行交叉編譯。

Ubuntu下搭建TQ2440的程序下載環境 http://www.linuxidc.com/Linux/2011-03/32869.htm

Ubuntu 12.04(32位)下TQ2440開發板環境搭建 http://www.linuxidc.com/Linux/2014-04/100085.htm

【Linux驅動】TQ2440 LED驅動程序 http://www.linuxidc.com/Linux/2014-06/103328.htm

一,內核的交叉編譯:

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

Copyright © Linux教程網 All Rights Reserved