【內核】在Linux內核中添加對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了,接下來就是遇到一些簡單的錯誤,不再做詳細闡述。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM