茄子要捡妑的捏,搞不定YAFFS2,我先弄UBIFS
返回学习总贴0.开始之前:
(1) 网上一大票人在问YAFFS2相关问题,貌似挺难,果断绕行,先搞UBIFS
(2) 学习
UBI工作原理,看看这个
PPT (3) 掌握
Barebox for tiny 210 - step 81.编译内核
(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重新编辑 ]