核心新增對jffs2 的支援
海思最新出了一款超低記憶體的晶片HI3518EV201(記憶體只有32M)
在開發過程中對核心的裁剪考驗相當大,當然海思也提供了參考的裁剪方案《hi3518ev20x_mini_config.txt》。
但是不能完全按照海思提供的裁剪方案來玩,因為該核心不支援USB、不支援frame buf、不支援乙太網及nfs、不支援程序間通訊等。
其中不支援程序間通訊是指將核心配置 General setup中的System V IPC選項去掉;System V IPC共有三種類型:System V訊息佇列、System V 訊號量、System V 共享記憶體區。即是不支援訊息佇列、訊號量和共享記憶體三種程序間通訊方式。
1.修改Makefile,在首行位置新增以下兩行:
ARCH=arm
CROSS_COMPILE=arm-hisiv300-linux-
在make menuconfig 後在File systems —> 中看到:
a.該核心只支援ext4檔案系統
b.[ ] Miscellaneous filesystems —>選項壓根就沒有勾選上,及時勾選上進去也看不到jffs2的選項
2.在Miscellaneous filesystems —>選項中新增jffs2選項卡:
Device Drivers —>
<*> Memory Technology Device (MTD) support —>(這個選項一選上後,File systems —> 中的Miscellaneous filesystems —>就會變成必選項了) 儲存
3.去掉對ext4檔案系統的支援,新增對jffs2和squashfs檔案系統的支援
去掉:
File systems —>
< > The Extended 4 (ext4) filesystem
新增:
File systems —>
-*- Miscellaneous filesystems —>
<*> Journalling Flash File System v2 (JFFS2) support
和<*> SquashFS 4.0 - Squashed file system support
4.編譯一遍 make uImage,然後將zImage燒到板子上go 0x81000000, /etc/init.d/S00devs指令碼中有兩句
mount -t squashfs /dev/mtdblock2 /mnt/app
mount -t jffs2 /dev/mtdblock3 /mnt/app_ext/
發現以下錯誤:
mount: mounting /dev/mtdblock2 on /mnt/app failed: No such device or address
mount: mounting /dev/mtdblock3 on /mnt/app_ext/ failed: No such device
5.解決mount 出錯:
Device Drivers —>
<*> Memory Technology Device (MTD) support —>
[*] Command line partition table parsing
6.再編譯一遍 make uImage,然後將zImage燒到板子上go 0x81000000,因為squashfs檔案系統預設是ZLIB壓縮演算法的,而我們使用的是壓縮率最高的XZ演算法,因此會發現以下錯誤:
SQUASHFS error: Filesystem uses “xz” compression. This is not supported
mount: mounting /dev/mtdblock2 on /mnt/app failed: Invalid argument
7.解決xz壓縮演算法出錯:
File systems —>
-*- Miscellaneous filesystems —>
<*> Journalling Flash File System v2 (JFFS2) support 下面的
[*] Include support for ZLIB compressed file systems(去掉勾選)
[*] Include support for XZ compressed file systems (加上勾選)
8.跑起來後,boot.sh指令碼中對jffs2檔案系統進行操作時,發現以下錯誤,因為加密演算法型別0x07沒有打到核心中:
jffs2: compression type 0x07 not available
jffs2: Error: jffs2_decompress returned -5
9.解決xz壓縮演算法出錯:
File systems —>
-*- Miscellaneous filesystems —>
[*] Advanced compression options for JFFS2 下面的
[*] JFFS2 LZO compression support (加上勾選)
10.ok了,接下來就是遇到一些簡單的錯誤,不再做詳細闡述。