主题 : Barebox for tiny 210 - step 9 UBIFS根文件系统 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 54261
精华: 9
发帖: 43
金钱: 665 两
威望: 133 点
贡献值: 9 点
综合积分: 266 分
注册时间: 2011-08-27
最后登录: 2014-08-08
楼主  发表于: 2013-04-28 14:03

 Barebox for tiny 210 - step 9 UBIFS根文件系统

茄子要捡妑的捏,搞不定YAFFS2,我先弄UBIFS
返回学习总贴

0.开始之前:
    (1) 网上一大票人在问YAFFS2相关问题,貌似挺难,果断绕行,先搞UBIFS
    (2) 学习UBI工作原理,看看这个PPT
    (3) 掌握 Barebox for tiny 210 - step 8

1.编译内核
    (1) 配置内核,支持UBIFS
        cp mini210_linux_defconfig .config && make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-  menuconfig
            Device Drivers  ---> <*> Memory Technology Device (MTD) support  --->   <*>   Enable UBI - Unsorted block images
            File systems  ---> [*] Miscellaneous filesystems  --->  <*>   UBIFS file system support
    (2) 编译内核
        make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
    (3) 内核映像拷贝到tftp根目录
        cp arch/arm/boot/zImage ~/tftp/

2.编译Barebox
    (1) 配置Barebox,支持UBI
        cp arch/arm/configs/friendlyarm_tiny210_defconfig .config && make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-  menuconfig
            Drivers  --->  -*- Memory Technology Device (MTD) support  --->  [*]   UBI support
    (2) 编译Barebox
        make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
    (3) Barebox映像拷贝到tftp根目录
        cp barebox.s5p ~/tftp/

3.升级Barebox
    (1) 参照step 8,将barebox.s5p写入/dev/nand0.barebox.bb分区,NAND启动单板,进入命令模式
    (2) 使用cp、edit、saveenv等命令,在/env/boot/目录新增ubi脚本
        global.bootm.image="/dev/nand0.kernel.bb"  #内核映像在/dev/nand0.kernel.bb分区
        global.linux.bootargs.dyn.root="root=ubi0:root ubi.mtd=4 rootfstype=ubifs"  #根文件系统在ubi0:root分区

4.升稼核
    (1) erase /dev/nand0.kernel.bb && cp /mnt/tftp/zImage /dev/nand0.kernel.bb

5.新建UBI卷
    (1) 在(MTD分区)/dev/nand0.system上新建(UBI设备)/dev/ubi0
        erase /dev/nand0.system && ubiattach /dev/nand0.system
                UBI: attaching mtd0 to ubi0
                UBI: physical eraseblock size:   131072 bytes (128 KiB)
                UBI: logical eraseblock size:    129024 bytes
                UBI: smallest flash I/O unit:    2048
                UBI: sub-page size:              512
                UBI: VID header offset:          512 (aligned 512)
                UBI: data offset:                2048
                UBI: empty MTD device detected
                UBI: create volume table (copy #1)
                UBI: create volume table (copy #2)
                registering /dev/ubi0
                UBI: attached mtd0 to ubi0
                UBI: MTD device name:            "nand0.system"
                UBI: MTD device size:            242 MiB
                UBI: number of good PEBs:        1929
                UBI: number of bad PEBs:         7
                UBI: max. allowed volumes:       128
                UBI: wear-leveling threshold:    4096
                UBI: number of internal volumes: 1
                UBI: number of user volumes:     0
                UBI: available PEBs:             1906
                UBI: total number of reserved PEBs: 23
                UBI: number of PEBs reserved for bad PEB handling: 19
                UBI: max/mean erase counter: 1/0
    (2) 在/dev/ubi0上新建/dev/ubi0.root卷标
        ubimkvol /dev/ubi0 root 0
6.制作UBIFS根文件系统
    (1) 获取友善根文件系统源文件,解压到~/rootfs目录
    (2) 安装工具
        sudo apt-get install mtd-utils
    (3) 制作映像,其中-m是页大小,-e是逻辑块大小,-c最大可用块,这些参数在ubiattach时有显示(见5.(1)黑体部分)
        mkfs.ubifs -r ~/rootfs -m 2048 -e 129024 -c 1906 -o ~/tftp/ubifs.img
7.写入根文件系统
    (1) cp /mnt/tftp/ubifs.img /dev/ubi0.root
    要很长时间才能完成,请耐心等待
8.启动
    (1) boot ubi
[ 此帖被mei5150在2013-04-28 16:32重新编辑 ]