基於JZ2440之LINUX內核與U-BOOT分區修改

修改這兩個文件:

①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命令來查看分區是否生效。我的分區表如下所示:

這裏寫圖片描述

發佈了30 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章