6410开发板系统安装卡(sd卡)制作及还原升级使用

来源:互联网 发布:优越留学知乎 编辑:程序博客网 时间:2024/06/07 07:10
1.安装卡制作及使用(2GB以上SD/TF卡)
(1)通过以下命令,生成out_images目录下的minifs_ubi.img、rootfs_ubi.img、user_data_ubi.img

    ./mkimags.sh

roofs.tar.bz2下载地址

minifs.tar.bz2下载地址

u-boot.bin_nand下载地址

注明:mkimages.sh脚本文件内容如下


echo "start to make ubi images, please wait....."rm -f *.imgrm -rf out_imagestar jxf user_data.tar.bz2tar jxf rootfs.tar.bz2tar jxf minifs.tar.bz2syncmkfs.ubifs -r user_data/ -m 8192 -e 1032192 -c 300 -o user_data.imgsyncubinize -o user_data_ubi.img -m 8192 -p 1MiB -s 8192 ubinize_user_data.cfgsyncmkfs.ubifs -r rootfs/ -m 8192 -e 1032192 -c 1434 -o rootfs.imgsyncubinize -o rootfs_ubi.img -m 8192 -p 1MiB -s 8192 ubinize_rootfs.cfgsynccp user_data_ubi.img rootfs_ubi.img bin_images/zImage minifs/images_backup/syncmkfs.ubifs -r minifs/ -m 8192 -e 1032192 -c 300 -o minifs.imgsyncubinize -o minifs_ubi.img -m 8192 -p 1MiB -s 8192 ubinize_minifs.cfgsyncmkdir out_imagesmv user_data_ubi.img rootfs_ubi.img minifs_ubi.img out_images/rm -f *.imgrm minifs/images_backup/*rm -rf user_data/ rootfs/ minifs/echo "end to make ubi images!"


(2)使用fdisk命令,把SD/TF卡分两个区,第一分区为512MB,fat32格式;第二分区剩余的空间,ext4格式。

(3)把out_images目录下的minifs_ubi.img、rootfs_ubi.img、user_data_ubi.img和bin_images目录下的u-boot.bin_nand、zImage一共5个文件复制到第一分区的根目录。
(4)把小文件系统minifs_sd.tar.bz2解压到第二分区(注意根文件是文件系统的所有文件和文件夹,不是解压出来的minifs_sd文件夹)
(5)在windows下使用SD-Flasher.exe工具,把bin_images/u-boot.bin_sd文件录写到SD/TF卡上。
(6)把板设置为SD/TF卡启动方式,插入制作好的SD/TF卡,开机,即开始安装。(注意,因为暂没有使用指示灯表示安装状态,所以需要接串口查看安装情况,安装完毕后会执行poweroff命令)
(7)完成后,把板设置为nand启动方式,开机启动即可。

2.系统还原
(1)在1中制件的minifs_ubi.img镜像中已经包括rootfs_ubi.img、user_data_ubi.img、zImage三个还原文件,所在目录是minifs文件系统的/images_backup下。
(2)在SD/TF卡的第一个fat32分区,创建标记文件,文件名为recovery,注意是小写和不能有后缀。
(3)在nand启动方式下,插入SD/TF卡,开机,即会进入小文件系统,进入系统后,会根据标记文件选择还原。
(4)还原成功后,会执行poweroff,拔出卡,开机即可。

3.系统升级
(1)把需要升级的镜像文件如rootfs_ubi.img、user_data_ubi.img、zImage,复制到SD/TF卡的第一个fat32分区。
(2)在SD/TF卡的第一个fat32分区,创建标记文件,文件名为update,注意是小写和不能有后缀。
(3)在nand启动方式下,插入SD/TF卡,开机,即会进入小文件系统,进入系统后,会根据标记文件选择升级。
(4)还原成功后,会执行poweroff,拔出卡,开机即可。

####################################################

在PC上制作镜像
mkfs.ubifs -r rootfs_qtopia_qt4-s-cx/ -m 8192 -e 1032192 -c 2036 -o ubifs.img
ubinize -o ubi.img -m 8192 -p 1MiB -s 8192 ubinize.cfg

命令参数
-r:制定文件内容的位置
-m:页面大小
-e:逻辑擦除块大小
-p:物理擦除块大小
-c:最大的逻辑擦除块数量(注意这个块的数量是要按照物理块大小算出来的,如块大小是1MB,芯片大小是2048MB,而该ubi的mtd分区表设置大小为2036MB,那个这个-c参数就是2036,这个块数不算上坏块数的)
-s:最小的硬件输入输出页面大小,

通过ubinfo看参数值:
ubiformat /dev/mtd2
ubiattach /dev/ubi_ctrl -m 2
ubinfo /dev/ubi0 -a
ubi0
Volumes count:                           0
Logical eraseblock size:                 1032192 bytes, 1008.0 KiB
Total amount of logical eraseblocks:     2030 (2095349760 bytes, 2.0 GiB)
Amount of available logical eraseblocks: 2006 (2070577152 bytes, 1.9 GiB) //这个数就是ubinize.cfg配置文件中的vol_size值)
Maximum count of volumes                 128
Count of bad physical eraseblocks:       6
Count of reserved physical eraseblocks:  20
Current maximum erase counter value:     12
Minimum input/output unit size:          8192 bytes
Character device major/minor:            253:0


ubinize.cfg文件内容如下:
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=1970MiB
vol_type=dynamic
vol_name=FriendlyARM-root
vol_alignment=1
vol_flags=autoresize

在目标板上使用:
ubiformat /dev/mtd2 -f /sdcard/ubi.img
 mount -t ubifs ubi0 /mnt/

注意:当出现在目标板上使用ubiattach时出现以下信息时,需要修改ubinize.cfg文件,把vol_size改小些。
UBI error: vtbl_check: volume table check failed: record 0, error 9



# cat /sys/class/misc/ubi_ctrl/dev
10:62
#mknode /dev/ubi_ctrl c 10 62  (创建ubi_ctrl设备节点)

#cat /proc/devices
.....
251 ubi2
252 ubi1
253 ubi0
#mknode /dev/ubi0 c 253 0
#mknode /dev/ubi1 c 252 0
#mknode /dev/ubi2 c 251 0