wfliao 发表于 2014-3-25 16:42:13

怎样制作用LiveSuit或者PhoenixCard_V309烧写的img

最近看了很多人的开发文档跟烧了很多人的Img,大家都喜欢用SD卡来制作OS,正好我手上有原厂allwinner一位朋友送给我们的A20的开发板,于是按照大家说的去测试玩玩看,结果用SD卡制作的在U-boot的内存初始化有点差异导致不开机,后来我们根据自己以前做android上的DDR参数修改才可以胜利跑起来,之后就疯狂的找看看有没有怎么制作img然后烧到nandflash中的,结果找了没有找到。昨天还发了邮件问几个很厉害的人他们都没回复,后来晚上回家洗澡的时候想了想才想到其实很简单,因为之前一直做android开发,改写了它的打包方式,代码编译没有像原厂的那个布局,所以平时编译android都是按照自己的来不多大关注buildroot tools这些,因为当初布局repo仓库的时候讲求是方便所以把lichee放到android里面,改写了很多编译方式........
    在你会使用SD卡烧OS的时候,你的kernel跟debian或者ubuntu或者archlinux都已经准备好了,这个时候去以前做android开发上原厂丢给你们lichee源码中有buildrootouttools,然后你随便建个文件夹,比如wfliao,然后wfliao里面分别放buildroot跟out跟tools文件夹,然后cd到tools下修改pack,直接定制成你要打包的名字等等,修改的内容里面有说明,比如:
DEFINE_string 'chip' '' 'chip to build, e.g. sun7i' 'c'对着修改这几个变量,把他修改为常量,然后:
假如平行目录: buildrootouttools1:cp kernel编译出来的uImage    tools/pack/chips/sun7i/wboot/bootfs/
2:out/u-boot.bin 不用动它,必须要放一个在这里,在打包的时候它会自动到一个地方,这个你看下代码就知道了,
在没有找到合适的u-boot源码暂时用这个(因为github下代码非常慢,经常登陆不上,不知道是不是政府还是github的问题,所以没有去找Uboot的源码,直接用matson的,他制作了很多img,
我就顺便把他的一些启动时候要用到的关键文件直接拿来用)

3:
创建分区,理论上debian多大就创建差不多大的分区,但安装后会扩大分区,所以要又要注意根据自己的nand的大小适当修改,
这里我们可以设置为2G,4G等等,当一定会比分区烧写的那个小。因为pack里面是指rootfs.ext4,所以要用这个名字
dd if=/dev/zero of=rootfs.ext4 bs=1M count=2048
mkfs.ext4 rootfs.ext4
sudo mount -o loop rootfs.ext4 /mnt
然后cp你需要的debian或者ubuntu到mnt
然后sync下就可以sudo umount /mnt
4:打包
然后cd到tools下
./pack

出于爱好大家一起共同分享,系统起来后驱动就好办了。
欢迎大家一起探讨
wfliao@gps-e.com
wenfeng731@gmail.com



wilsonwan 发表于 2014-4-1 05:15:11

精彩,批量生产设备的时候很需要这个方法

noudle614 发表于 2014-4-1 09:02:38

楼主好人啊!这教程论坛找了很久了,对我们这些小白来说很需要!

cb_100ask 发表于 2014-4-4 10:36:36

呵,有点乱
页: [1]
查看完整版本: 怎样制作用LiveSuit或者PhoenixCard_V309烧写的img