1. 程式人生 > >核心新增對jffs2 的支援

核心新增對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了,接下來就是遇到一些簡單的錯誤,不再做詳細闡述。