|
本帖最后由 myoldman 于 2014-1-26 09:52 编辑
准备工作:
host操作系统:Ubuntu 12.04 LTS 64位
解包打包工具:imgrepacker
下载地址:http://dl.xda-developers.com/att ... imgRePacker_204.zip
分区表更新工具:
git clone https://github.com/npeacock/a31sdk-tools.git
基础nand img:官方lubuntu-server
下载地址:http://dl.cubieboard.org/softwar ... -server-nand.img.gz
基础sdcard img:也是基于官方的
以下是步骤
1.解包官方img
./imgrepacker lubuntu-server-nand.img
得到如下文件列表
boot0_nand.bin
-rw-rw-r-- 1 liuhong liuhong 24576 1月 15 15:53 boot0_nand.bin
-rw-rw-r-- 1 liuhong liuhong 24576 1月 15 15:53 boot0_sdcard.fex
-rw-rw-r-- 1 liuhong liuhong 425984 1月 15 15:53 boot1_nand.fex
-rw-rw-r-- 1 liuhong liuhong 294912 1月 15 15:53 boot1_sdcard.fex
-rw-rw-r-- 1 liuhong liuhong 10839040 1月 17 11:52 bootloader.fex
-rw-r--r-- 1 liuhong liuhong 16384 1月 16 22:59 dlinfo.fex
-rw-rw-r-- 1 liuhong liuhong 5122 1月 15 15:59 image.cfg
drwxrwxr-x 2 liuhong liuhong 4096 1月 15 23:23 _img.files
drwxrwxr-x 2 liuhong liuhong 4096 1月 16 17:48 _iso
-rw-rw-r-- 1 liuhong liuhong 1470103552 1月 17 11:53 rootfs.fex
-rw-rw-r-- 1 liuhong liuhong 512 1月 15 15:53 split_xxxx.fex
-rw-r--r-- 1 liuhong liuhong 65536 1月 16 23:00 sunxi_mbr.fex
-rw-rw-r-- 1 liuhong liuhong 53470 1月 15 23:24 sys_config.fex
-rw-rw-r-- 1 liuhong liuhong 302 1月 16 22:41 sys_partition.fex
-rw-r--r-- 1 root root 4 1月 17 11:53 Vbootloader.fex
-rw-r--r-- 1 root root 4 1月 17 11:53 Vrootfs.fex
drwxrwxr-x 3 liuhong liuhong 4096 1月 15 15:53 work
2.备份nand上运行的rootfs,并且制作
用sd卡启动cubietruck后于u运行如下命令
sudo mount /dev/nandb /mnt
sudo tar zxvf rootfs.tar.gz -C /mnt ./
这边rootfs.tar.gz就是已经打包好的正在运行的文件系统。
把rootfs.tar.gz下载到主机ubuntu上运行如下命令重新打包img
sudo ./mk_ext4_rootfs.sh rootfs.tar.gz rootfs.fex
cp rootfs.fex lubuntu-server-nand.img.dump/_iso/rootfs.fex.iso
cp rootfs.fex lubuntu-server-nand.img.dump/rootfs.fex
rm rootfs.fex -f
./imgrepacker lubuntu-server-nand.img.dump
这里会生成一个新的lubuntu-server-nand.img文件,该文件可以用livesuit烧写到板子中。
mk_ext4_rootfs.sh参考附件脚本。
3.修改img中的默认script.bin,uImage, uEnv.txt等
运行如下命令mount bootloader
sudo mount -t vfat lubuntu-server-nand.img.dump/_iso/bootloader.fex.iso /mnt
这里请注意,不要直接在/mnt中修改uEnv.txt文件,需要在其他地方修改完后,sudo cp uEnv.txt /mnt拷贝覆盖
完成修改后执行如下命令保存bootloader.fex.iso
sudo umount /mnt
这里还要注意一个问题,如果有修改script.bin
lubuntu-server-nand.img.dump/sys_config.fex也必须修改,否则会出现无法启动的问题。
重新打包系统
./imgrepacker lubuntu-server-nand.img.dump
4.mbr文件更新
mbr重新生成工具必须用一下这个工具
git clone https://github.com/npeacock/a31sdk-tools.git
步骤如下
首先修改lubuntu-server-nand.img.dump/sys_partition.fex中的文件这里主要是要修成resize后nand只有2g的问题。
修改结果如下
[partition]
name = rootfs
size = 14778368
downloadfile = "rootfs.fex"
verify = 1
把rootfs的size改成14778368就可以了。
编辑结束后 a31sdk-tools/pack/pctools/linux/mod_update/script
a31sdk-tools/pack/pctools/linux/mod_update/script lubuntu-server-nand.img.dump/sys_partition.fex
重新生成sys_partition.bin
a31sdk-tools/pack/pctools/linux/mod_update/update_mbr lubuntu-server-nand.img.dump/sys_partition.fex
这里会重新生成dlinfo.fex和sunxi_mbr.fex
最后再用
./imgrepacker lubuntu-server-nand.img.dump打包,这样img刷入以后nand就直接有8g了。
以上只是简单说明,中间操作过程有啥请跟贴,我会一一解答。 |
|