ARM-Linux 內核移植--基于FL2440開發板(修改為Linux單系統)
內核版本:2.6.28
本文引用地址:http://www.104case.com/article/201611/318861.htm主機:ubuntu 11.04
內核版本:2.6.39
本來以為fl2440的nand flash大小為128M,問了客服才知道,現在FL2440使用的是現代的flash,現在都換成256M的了,只是飛凌的bootloader沒有相應的修改,它使用的既不是u-boot,也不是vivi,而是自己的bootloader。現在修改bootloader源碼中的nand.c
修改如下:
- //可更改刪除分區,分區名字不可改
- staticstructPartitionNandPart[]={
- {0,0x00020000,"boot"},//128Koneblock
- {0x00020000,0x00060000,"bootParam"},//384Kthreeblocks
- {0x00080000,0x00100000,"pic"},//1M
- {0x00180000,0x00380000,"MyApp"},//3.5M
- {0x00500000,0x00300000,"kernel"},//3M
- {0x00800000,0x0f000000,"fs_yaffs"},//240M
- //{0x09e00000,0x00080000,"eboot"},//512K
- //{0x09e80000,0x06400000,"wince"},//100M
- {0,0,0}
- };
使用ADS工具,重新編譯bootloader,生成.bin文件,然后燒寫bootloader,這樣分給linux文件系統的flash 大小為240M(由于自己不用
WIN CE)
這樣使linux充分利用flash,不用將許多庫文件掛載成NFS了
然后修改FL2440自帶的內核(大部分驅動都已經集成)修改linux/arch/arm/plat-s3c24xx/common-smdk.c
- staticstructmtd_partitionsmdk_default_nand_part[]={
- [0]={
- .name="Boot",
- .size=0x00100000,
- .offset=0
- },
- [1]={
- .name="MyApp",
- .size=0x003c0000,
- .offset=0x00140000,
- },
- [2]={
- .name="Kernel",
- .size=0x00300000,
- .offset=0x00500000,
- },
- [3]={
- .name="fs_yaffs",
- .size=0x0f000000,//240M
- .offset=0x00800000,
- },
- /*[4]={
- .name="WINCE",
- .size=0x03c00000,
- .offset=0x04400000,
- }
- */
- };
然后make zImage重新編譯內核。燒寫內核。
最后將以前制作好的文件系統燒寫進去即可。
(注:由于大小為64M的sdram,文件系統過大將不能使用這種bootloader燒寫進去,可以先將qt的庫刪除,啟動起來后,使用NFS載,然
后復制過去即可)。
輸入cat /proc/mtd查看分區信息
成功修改分區,將雙系統改為單系統。
評論