資源描述:
《fl2440開發(fā)板內(nèi)核移植筆記》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、FL2440開發(fā)板內(nèi)核移植筆記參考:http://bbs.witech.com.cn/thread-468-1-1.html宿主機(jī):RedhatLinuxAS4目標(biāo)機(jī):s3c2440交叉編譯器:arm-linux-gcc-3.4.1交叉編譯器路徑:/usr/local/arm/3.4.1要移植的內(nèi)核版本:linux-2.6.33文件系統(tǒng)類型:yaffs2(目前使用光盤中l(wèi)inux-2.6.28的文件系統(tǒng)touch.yaffs)筆記作者:japleak1、下載內(nèi)核linux-2.6.33.tar.gz(http://www.kernel.org/pub/linux/kernel/v2.6
2、/linux-2.6.33.tar.gz中可以找到),然后還需要下載yaffs2文件系統(tǒng),目的是為了給內(nèi)核打補(bǔ)丁。下載地址為:http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2.tar.gz?view=tar(此步驟很重要,如果yaffs2不正確,可能引起無法正常編譯通過)。2、將下載的文件存放在/usr/src/中。3、分別解壓縮:[root@WEB188src]#tarxzflinux-2.6.33.tar.gz[root@WEB188src]#tarxzfyaffs2.tar.gz4、為內(nèi)核增加yaffs2補(bǔ)丁[root@WEB1
3、88src]#cdyaffs2[root@WEB188yaffs2]#./patch-ker.shc../linux-2.6.33/Updating../linux-2.6.33//fs/KconfigUpdating../linux-2.6.33//fs/Makefile5、修改機(jī)器碼。進(jìn)入內(nèi)核目錄,修改機(jī)器碼跟bootloader的機(jī)器碼一致(FL2440為193)[root@WEB188yaffs2]#cd../linux-2.6.33[root@WEB188linux-2.6.33]#viarch/arm/tools/mach-types首先刪除以下行:s3c2410ARCH_
4、S3C2410S3C2410182然后將以下行:s3c2440ARCH_S3C2440S3C2440362修改為:s3c2440ARCH_S3C2440S3C24401936、指定目標(biāo)板machine、編譯器和編譯器路徑。修改Makefile文件,注意將CROSS_COMPILE對應(yīng)到你系統(tǒng)中交叉編譯器地址[root@WEB188yaffs2]#viMakefile將兩行:ARCH?=$(SUBARCH)CROSS_COMPILE?=修改為以下兩行:ARCH?=armCROSS_COMPILE?=/usr/local/arm/3.4.1/bin/arm-linux-7、增加devfs文
5、件管理器的支持。[root@WEB188linux-2.6.33]#vifs/Kconfig找到以下行:menu"Pseudofilesystems"在此行后面增加以下內(nèi)容:configDEVFS_FSbool"/devfilesystemsupport(OBSOLETE)"defaultyconfigDEVFS_MOUNTbool"Automaticallymountatboot"defaultydependsonDEVFS_FS1、修改晶振頻率(可解決打印信息亂碼問題)。修改文件arch/arm/mach-s3c2440/mach-smdk2440.c[root@WEB188lin
6、ux-2.6.33]#viarch/arm/mach-s3c2440/mach-smdk2440.c將如下行:s3c24xx_init_clocks(16934400);修改為:s3c24xx_init_clocks(12000000);2、修改MTD分區(qū)。打開文件arch/arm/plat-s3c24xx/common-smdk.c,此處注意兩個地方:一、必須跟bootloader分區(qū)一樣,二、文件系統(tǒng)fs_yaffs必須在第4個分區(qū),即索引號為3。其他一些分區(qū)信息可以不要,如下:[root@WEB188linux-2.6.33]#viarch/arm/plat-s3c24xx/co
7、mmon-smdk.c找到staticstructmtd_partitionsmdk_default_nand_part[]的結(jié)構(gòu)體,將內(nèi)容修改為:[0]={.name="boot",.size=0x00020000,.offset=0},[1]={.name="bootParam",.size=0x00060000,.offset=0x00020000,},[2]={.name="Kernel",.size=0x00300000,.offse