Hi3093 镜像构建与说明¶
本章主要介绍openEuler Embedded中Hi3093系列板卡的镜像构建,使用和特性介绍。
当前版本支持官方mpu_solution BSP源码的构建集成(mpu镜像),并生成可用于Hi3093 EMMC烧录的镜像部署件。
也可构建生成hi3093的无BSP驱动镜像,用于mpu_solution进行二次集成打包。
Hi3093硬件介绍¶
参考: HI3093 介绍
镜像构建与使用¶
构建机器和oebuild工具准备:
(1)准备一个ubuntu x86构建主机环境(建议22.04,依赖Python>=3.8,配置建议预留200G存储)
(2)安装oebuild(具体oebuild用法可参见 安装步骤 ),注意以普通用户安装oebuild,例:
sudo apt install python3 python3-pip # 如果python3和pip模块已安装,请忽略此python3的安装命令 pip install oebuild # 这里安装oebuild的版本为最新版,可选版本0.0.27,命令如pip install oebuild==0.0.27(3)准备oebuild的工具依赖(docker):
sudo apt install docker docker.io -y sudo groupadd docker sudo usermod -a -G docker $(whoami) sudo systemctl-reload && systemctl restart docker sudo chmod o+rw /var/run/docker.sock
oebuild构建代码准备:
(1)初始化构建分支代码(请不要以root及sudo权限执行):
oebuild init buildwork # 说明: # * buildwork为存放目录, # * 未使用-b指定分支,默认使用master分支,等同于oebuild init buildwork -b master # 假设执行路径位于/home/user/,执行后根据提示进入对应目录 cd /home/user/buildwork oebuild update #执行完成后,将在 /home/user/buildwork/src/ 目录下载好主构建源码,并初始化构建虚拟环境。(2)准备mpu_solution源码(若不需要集成BSP驱动的镜像,可跳过此步骤):
获取Hi3093的mpu_solution源码授权,解压并将对应mpu_solution文件夹拷贝到src目录,如
/home/user/buildwork/src/mpu_solution
(3)初始化Hi3093构建源码及配置:
cd /home/user/buildwork oebuild generate -p hi3093 -d build_hi3093 # 以上命令可追加-f参数,通过oebuild generate -l查看支持的配置,比如-f openeuler-rt开启软实时
镜像构建和部署
镜像(openeuler-image)支持直接集成mpu_solution中的BSP驱动,也支持构建不包含mpu_solution BSP驱动的的镜像,按如下a、b场景进行操作。
a、 构建基础不包含BSP驱动的镜像(无需事先准备mpu_solution源码,跳过2.2)
cd /home/user/buildwork/build_hi3093 oebuild bitbake # oebuild bitbake执行后将进入构建虚拟环境 # 注意您此时应该处于进入oebuild bitbkae环境的工作根目录(如/home/openeuler/build_hi3093) bitbake openeuler-image构建完成后,输出件见/home/user/buildwork/build_hi3093/output/[时间戳],备用组件内容如下
├── Image-5.10.0-openeuler ├── openeuler-image-hi3093-[时间戳].rootfs.cpio.gz └── zImageNote
openeuler-image-hi3093-xxx.rootfs.cpio.gz为cpio.gz格式的可解压文件系统,作为调试备用。
Image为未加工的原始内核基础格式文件。
zImage为未加工的原始内核压缩文件。
文件系统及zImage可作为mpu_solution的输入,进行二次打包集成
若需要交叉编译工具链,可通过如下命令生成,将在output目录下有新时间戳子目录得到输出件。
# 注意您此时应该处于进入oebuild bitbkae环境的工作根目录(如/home/openeuler/build_hi3093) bitbake openeuler-image -c populate_sdkb、 构建直接集成mpu_solution BSP驱动的镜像:
cd /home/user/buildwork/build_hi3093 oebuild bitbake # oebuild bitbake执行后将进入构建虚拟环境 sudo dnf install vim # 注意需要安装vim工具,当前3093打包依赖xxd命令,由vim软件包提供此命令 # 在构建配置文件中的DISTRO_FEATURES变量追加mpu_solution描述,可在conf/local.conf文件的末尾追加,命令如下 echo 'DISTRO_FEATURES:append = " mpu_solution "' >> conf/local.conf # 注意您此时应该处于进入oebuild bitbkae环境的工作根目录(如/home/openeuler/build_hi3093) bitbake openeuler-image构建完成后,输出件见/home/user/buildwork/build_hi3093/output/[时间戳],内容如下
├── Hi3093_ext4fs.img ├── Hi3093_ext4fs_cms.bin ├── u-boot_rsa_4096.bin ├── openeuler-image-hi3093-[时间戳].rootfs.cpio.gz └── zImageNote
目录中的Hi3093_ext4fs.img、Hi3093_ext4fs_cms.bin、u-boot_rsa_4096.bin是emmc烧录使用的部署件
烧录时请配合官方提供的l0fw_rsa_4096.bin和l1fw_rsa_4096.bin共同使用(烧录5件套)。
openeuler-image-hi3093-xxx.rootfs.cpio.gz为cpio.gz格式的可解压文件系统,作为调试备用。
zImage为未加工的原始内核压缩文件。
若需要交叉编译工具链,可通过如下命令生成,将在output目录下有新时间戳子目录得到输出件。
# 注意您此时应该处于进入oebuild bitbkae环境的工作根目录(如/home/openeuler/build_hi3093) bitbake openeuler-image -c populate_sdk关于emmc镜像烧录:
按照Hi3093 mpu_solution烧录指导,将如下烧录5件套放置于单板/tmp目录
# 烧录5件套: Hi3093_ext4fs.img Hi3093_ext4fs_cms.bin u-boot_rsa_4096.bin l0fw_rsa_4096.bin l1fw_rsa_4096.binNote
如果使用本镜像烧录过,可通过网络进行传输
本镜像生成Hi3093 bsp对应驱动位于/lib/modules/hi3093目录,请先插入对应网卡驱动模块并配置网络,如
insmod /lib/modules/hi3093/gmac_drv.ko ifconfig eth0 192.168.0.11执行如下命令进行烧录并重启
cd /tmp sh /hi3093_upgrade.sh 4096 rebootNote
注意选择emmc模式烧录,如使用标准Hi3093的mpu_solution,可参见Hi3093 mpu_solution文档拨码开关配置(1000)