Zero Imager的使用
Zero imager是zero固件打包,烧录 工具集,使用zero
imager可以方便地进行各种配置(主线,bsp;tf,spi)的镜像打包,烧录,修改等。
zero imager 目录
zepan@ubuntu:~/develop/zero_imager$ ls
build dtb fex img kernel modules overlay README rootfs uboot
- build: 内有各种脚本,打包烧录等操作均需要进入该目录操作
- uboot:sdk生成的uboot镜像
- dtb:主线内核使用的dtb,会从sdk中拷贝到这里
- fex:bsp内核使用的fex,会从sdk里拷贝到这里
- img:打包完成的镜像
- kernel:sdk生成的zImage,按内核版本分类摆放
- modules:sdk生成的内核模块
- rootfs:各种预制的根文件系统,如rootfs-brmin.tar.gz
- overlay:在预制根文件系统上添加的内容
zero imager 板级配置
在打包系统前,需要填写板级配置并生效。
全局环境变量
首先进入
build目录,编辑env.sh文件,填写正确的路径信息,这里需要编辑的是:
# need edit as your env
export _TOP_DIR=/home/zepan/develop/zero_imager
export _KERNEL_MAINDIR="goofy_elion:/root/linux/"
export _KERNEL_BSPDIR="goofy_elion:/root/lichee/linux-3.4/"
export _UBOOT_DEVDIR="goofy_elion:/root/u-boot"
export _BR_DEVDIR="goofy_elion:/root/buildroot-2017.08"
export _CP_CMD="docker cp"
¥_LINUX_MAINDIR是你的主线linux sdk目录
¥_LINUX_BSPDIR是你的bsp inux sdk目录
¥_UBOOT_DEVDIR是你的uboot sdk目录
¥_CP_CMD是你的cp命令,如果sdk在本机上,就直接是cp,如果是在远程请自行填写cp命令
板级环境变量
然后进入configs目录,编辑或者新建你的板级配置文件,这里以
env-dock-tfmain.sh 为例介绍下。
板级环境变量配置文件名,命名为 " env-板子名-启动介质名 内核种类.sh "
其中的内容,其余部分可以拷贝,仅修改下面部分:
#change here to your config
export _CASE_NAME=dock
export _BOOT_DEV=tf
export _KERNEL_TYPE=main
export _KERNEL_VER=4.14.14
export _DT_NAME=sun8i-v3s-licheepi-zero-dock
#export _DT_NAME=sun8i-v3s-licheepi-zero-with-800x480-lcd
export _ROOTFS_TYPE=brmin
export _IMG_SIZE=128
export _UBOOT_SIZE=1
export _CFG_SIZEKB=0
export _P1_SIZE=4
这里主要就是填写你的板子使用的镜像的配置信息:
启动介质是tf或者spi, 内核种类是main或者bsp, 内核版本按实际填写,
DT即设备树配置名, 根文件系统类型即rootfs目录下的名字后缀。
设定的镜像大小,以MB为单位,下同。 UBOOT分区大小。 SPI
启动时使用的FEX/DTB分区大小(单位KB)。
第一分区大小(tf启动时放置内核和dtb等,spi启动时放置内核)。
注意这里会自动生成板子配置后缀名:
export _SUFFIX=$_CASE_NAME-$_BOOT_DEV$_KERNEL_TYPE
如 dock-tfmain
生效板级配置
在build目录下执行 source configs/env-dock-tfmain.sh
即可生效对应配置。
执行后会在build目录下生成 boot.scr 启动脚本。
每次打开新终端 请先执行一遍该命令来导入配置。
镜像更新,打包命令
pull_uboot.sh:从sdk里更新uboot
pull_kernel.sh: 从sdk里更新zImage和dts和modules
pull_br.sh: 从sdk更新buildroot生成的根文件系统
pack_img.sh: 打包img到dd文件,生成文件在img目录下
局部更新镜像内容,可以在overlay下对应目录拷贝需要的文件,打包镜像时会将文件写入根文件系统的对应目录。
TF镜像烧录命令
write_dd.sh /dev/sdX: 一键烧录dd镜像,小白专用
//以下为调试时逐个分区调试使用的烧录脚本
write_all.sh /dev/sdX: 一键烧录
write_partion.sh /dev/sdX: 对tf卡分区
write_mkfs.sh /dev/sdX: tf卡格式化
write_boot.sh /dev/sdX: 烧录uboot
write_p1.sh /dev/sdX: 烧录第一分区
write_p2.sh /dev/sdX: 烧录第二分区
write_overlay.sh /dev/sdX: 烧录overlay
write_swap.sh /dev/sdX: 启用swap