# 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
## SPI镜像烧录命令
- 前言
- 荔枝派TODO任务领取
- linux使用小贴士
- 入门篇
- 板卡介绍
- 开箱指南
- 烧录启动系统
- 联网方法
- 镜像使用
- 镜像说明
- buildroot系统使用
- debian系统使用
- 外设操作
- 外设操作概览
- 低速外设
- GPIO
- GPIO模拟低速接口
- UART
- PWM
- I2C
- SPI
- 高速接口
- SDIO
- USB
- EtherNet
- DVP CSI
- MIPI CSI
- 模拟外设
- CODEC
- LRADC
- 常见设备驱动
- USB摄像头
- USB 3G/4G 网卡
- 舵机
- 开发篇
- UBOOT适配
- UBOOT编译
- UBOOT配置
- UBOOT配置屏幕分辨率
- UBOOT配置SPI启动
- Linux内核开发
- Linux内核编译
- BSP Linux内核编译.md
- Linux内核选项
- 外设驱动与设备树
- RTL8723BS驱动
- 根文件系统定制
- buildroot定制系统
- buildroot添加软件包
- openwrt定制系统
- emdebian定制系统
- camdriod开发
- camdriod编译
- 主线Uboot引导Camdriod
- 系统镜像打包
- XBOOT适配
- 荔枝运行XBOOT
- 应用篇
- 游戏机-基于EmulationStation
- 游戏机-gnuboy
- 语音识别-科大讯飞云
- GUI-QT5
- 语音识别-离线关键词识别
- 路由器-Lichee Zero
- 投稿文章
- 荔枝派Zero开箱指南
- Zero i2c oled使用指南
- zero SPI LCD使用指南
- Zero u-boot编译和使用指南
- TF WiFi使用方法
- Zero Ethernet使用指南
- Zero 移植Qt5.4.1
- ZeroSpiNorFlash启动系统制作指南
- Visio-uboot-sunxi流程
- lichee 编译踩坑记录(ilichee ZERO)
- lichee_zero_外设GPIO接口
- TF WIFI 小白编
- 从零开始LicheePi Zero的开发
- 认识Zero的硬件
- 搭建Zero的开发环境
- 主线Uboot
- 主线kernel
- BSP kernel
- BSP内核启动
- bsp内核的摄像头使用
- BSP内核中的保留内存
- uboot启动BSP内核常见错误
- BSP内核 FBTFT移植
- BSP内核启动错误及警告解决
- buildroot 根文件系统
- emdebian 根文件系统
- SPI Flash 系统编译
- sunxi-fel增加对16M 以上flash的支持
- overlayfs的使用
- jffs2系统挂载不上的常见原因
- JFFS2 文件系统简介
- uboot对spi flash的识别
- bsp内核的SPI flash启动
- Docker开发环境
- Docker 命令速查
- 基础ubuntu系统配置
- docker离线镜像
- Zero系统烧录
- dd镜像烧录
- 分区镜像烧录
- SPI Flash系统烧录
- 一键镜像烧录
- Zero外设把玩
- I2C操作
- PWM输出
- CODEC的使用
- 以太网使用指南
- GPIO操作
- 文件IO方式
- C语言接口(mmap)
- Python操作GPIO
- pinctrl-sunxi介绍
- UART操作
- 点屏
- 点屏之RGB屏
- 点屏之SPI屏 ili9341
- 点屏之SPI OLED
- 点屏之I2C OLED
- 点屏之SPI屏 ili9488
- 点屏之MCU屏
- 点屏之触摸屏驱动
- 点屏之simple-framebuffer
- 点屏之屏幕时序
- 时钟控制器CCM
- 摄像头
- BSP DVP摄像头
- BSP MIPI 摄像头
- 主线DVP摄像头
- 主线 MIPI摄像头
- SPI 操作
- 应用层开发
- 开机自启动
- Segment Fault调试
- Zero通过OTG共享PC网络
- USB摄像头使用
- 基于QT的GUI开发
- 移植tslib
- 移植QT5.9.1
- 移植QT4.8.7
- QtCreator使用
- Qt5.x移植到Qt4.8
- Qt字体相关
- Qt移植总结
- Qt裁剪
- Qt去除鼠标指针显示
- zero_imager使用
- 驱动开发
- 设备树简介
- GPU/DRM 显示驱动
- sys下设备树查看
- atmel触摸屏驱动分析
- atmel触摸屏中断改轮询
- uboot下gpio操作
- helloworld驱动编译演示
- FBTFT分析
- 内核模块静态加载的顺序
- SPI驱动分析
- SPI 驱动编写
- Uboot开发
- 开机logo
- 看门狗的使用
- 关于系统reboot
- 内核printk等级设置