修改這兩個文件:
①u-boot-1.1.6/include/configs/100ask2440.h
如果是別的類型的板子,就會找不到這個文件。不過大致路徑是沒錯的,可以先使用以下命令搜索
find ./ -name “*” | xargs grep “2m(kernel)”
也就是說在當前目錄及其子目錄下查找文件內容中包含2m(kernel)的文件,這樣就可以很快的定位到要修改的文件了。找到文件並且用VI打開文件後,在命令行模式用命令
/MTDPARTS_DEFAULT
找到以下內容
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:256k@0(bootloader)," \
"128k(params)," \
"2m(kernel)," \
"-(root)"
將上邊的內核大小改成4m差不多就夠用了。修改後重新編譯u-boot。
順序:先解壓,然後打補丁,然後make 100ask_menuconfig,然後修改上面所述文件,然後make
注意:因爲是在u-boot-1.1.6 進行操作的,但是這個u-boot並不支持高的編譯器,所以在編譯這個u-boot的時候必須要用老的3.4.5的編譯器版本!!!
臨時命令:
export PATH=/work/tools/gcc-3.4.5-glibc-2.3.6/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
②(可選)內核中也有類似的一個文件common-smdk.c ,找之前最好先搜索一下,不同版本的內核,這個文件的位置可能不同。搜索命令:
locate common-smdk.c
或者
find ./ -name common-smdk.c
我的內核版本 Linux-3.4.2,此文件在arch/arm/mach-s3c24xx/common-smdk.c。
打開文件後找到以下內容,紅色部分就是nandflash的分區大小,可以根據需要修改
static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "bootloader",
.size = SZ_256K,
.offset = 0,
},
[1] = {
.name = "params",
.offset = MTDPART_OFS_APPEND,
.size = SZ_128K,
},
[2] = {
.name = "kernel",
.offset = MTDPART_OFS_APPEND,
.size = SZ_2M,
},
[3] = {
.name = "rootfs",
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};
修改之後,重新編譯下載內核即可。U-BOOT啓動時可用mtd命令來查看分區是否生效。我的分區表如下所示: