資源描述:
《linux-26242在fl2440開發(fā)板上的內(nèi)核移植》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在應用文檔-天天文庫。
1、Linux-2.6.24.2在FL2440開發(fā)板上的內(nèi)核移植(經(jīng)本人驗證已經(jīng)成功)自己在移植中遇到很多問題,寫這篇文章的目的是為能為那些正在學習Linux內(nèi)核移植的朋友提供參考。感謝互聯(lián)網(wǎng)上無數(shù)作者的的無私奉獻。宿主機:RedhatLinux9.0目標機:s3c2440交叉編譯器:arm-linux-gcc-3.4.1要移植的內(nèi)核版本:linux-2.6.24.2文件系統(tǒng)類型:yaffs2(從網(wǎng)上下載cvs-root.tar.gz)1.解壓linux-2.6.24.2,和arm-linux-gcc-3.4.1
2、然后通過超級終端進入linux-2.6.24.2目錄下進行這樣一步操作:#makedistclean2.進入linux-2.6.24.2根目錄,修改makefile文件vimakefile第193行改為:ARCH=armCROSS_COMPILE=/usr/local/arm/3.4.1/bin/arm-linux-(告訴交叉編譯器的路徑CROSS_COMPILE根據(jù)你自己arm-linux-gcc-3.4.1安裝的路徑設置.)3.修改arch/arm/plat-s3c24xx/common-smdk.c文件
3、,修改NAND_FLASH分區(qū)信息和硬件信息.根據(jù)FL2440的板子,我設置如下:找到staticstructmtd_partitionsmdk_default_nand_part[]的結構體,將內(nèi)容修改為:??????[0]={??????????.name??????="boot",??????????.size??????=0x00020000,??????????.offset=0??????},[1]={??????????.name??????="bootParam",??????????.siz
4、e??????=0x00060000,??????????.offset=0x00020000,??????},??????[2]={??????????.name??????="Kernel",??????????.size??????=0x00300000,??????????.offset=0x00500000,??????},??????[3]={??????????.name??????="fs_yaffs",??????????.size??????=0x03c00000,??????????.o
5、ffset=0x00800000,??????},??????????[4]={??????????.name??????="eboot",??????????.size??????=0x00080000,??????????.offset=0x04400000,??????},??[5]={??????????.name??????="WINCE",??????????.size??????=0x03b80000,??????????.offset=0x04480000,??????}注意:一定要和boot
6、loader上的分類方法一樣,并且根文件系統(tǒng)分區(qū)必須放在第4個目錄中(即標號為[3]的那個分區(qū))另外修改smdk_nand_info,如下:staticstructs3c2410_platform_nandsmdk_nand_info={.tacls=0,.twrph0=30,.twrph1=0,.nr_sets=ARRAY_SIZE(smdk_nand_sets),.sets=smdk_nand_sets,};4.修改時鐘:arch/arm/mach-s3c2440/mach-smdk2440.c?stat
7、icvoid__initsmdk2440_map_io(void){s3c24xx_init_io(smdk2440_iodesc,ARRAY_SIZE(smdk2440_iodesc));s3c24xx_init_clocks(12000000);外部的晶振的頻率是12MHzs3c24xx_init_uarts(smdk2440_uartcfgs,ARRAY_SIZE(smdk2440_uartcfgs));}5、修改機器碼。進入內(nèi)核目錄,修改機器碼跟bootloader的機器碼一致(FL2440為193)
8、#cd../linux-2.6.24.2#viarch/arm/tools/mach-types首先刪除以下行:s3c2410????????????ARCH_S3C2410????????S3C2410????????????182然后將以下行:s3c2440????????????ARCH_S3C2440????????S3C2440????????????362修改為:s3c2440?????