这一篇随笔讲叙述下基于Hi3559AV100的BOXER-8410AI板载u-boot、kernel及rootfs烧录具体过程及遇到问题的解决方法与心得。

1、前期板载启动测试和烧录手段

1.1、烧写方法一-利用MicroUSB接口烧录准备

  烧写测试:拿到板子后,根据官方文档是通过板载中MicroUSB连接到PC端,之后进行串口通信,但是一顿操作下来之后,发现PC端没有发现com口,后面分析原因,可能是板载没有进行MicroUSB的驱动加载,导致PC端没有加载com口,具体解决方面可以参考《HiBurn工具使用指南》,个人操作如下:
  文档说:单板上电时,需要进入 USB 模式,进入 USB 模式的方法请参考 SDK 包里面的文档《Hi35xxVxxx SDK 安装使用说明》,但是在安装说明中没有找到类似的地方,直接忽略即可。  
  结合文档:Hi3559V100芯片支持 USB 非裸烧,需要提前在 Windows 平台的 PC 机上,安装好指定的驱动,安装方法如下:由于 USB 裸烧或非裸烧,还跟板端配置及软件配合相关,实际是否支持以实际发布版本为准。
①. 从 http://zadig.akeo.ie 上下载 zadig.exe 文件,请根据自己的操作系统下载相应的
exe 执行文件,当前最新版本如下(请以实际为准):
  zadig_2.3.exe
  以 win7 系统下驱动安装为例(文档说win10 暂不支持,虽然说win10不支持,但其实通过实践win10也是OK的)。
②. 用 HiBurn 工具串口功能烧写 uboot,烧写完成之后,在单板的 uboot 下输入命令usb device,USB 接口与 PC 端相连,进入升级模式,PC 端设备管理器出现HiUSBBurn 设备如图1所示,此时 windows 会自动搜索驱动程序,等待 windows 搜索驱动程序搜索不到之后进行第③步。 

图1 HiUSB安装图解

③. 打开 zadig_2.3.exe 文件,选择 Options->List All Devices,将 List All Devices 勾
上,如图 2所示。 

图2 勾选 List All Devices
④. 在红色方框位置选择 hiUSBBurn 设备,然后方框内选择驱动 libusbK,点击“Install Driver”,如图3所示,之后点击Install Driver,等待驱动安装完成。 

图3 安装 libusbK
⑤. LibusbK 安装完成之后,打开设备管理器,查看驱动是否安装正确,如图4为正确安装后的状态。 

图4 驱动正确安装后的设备管理器

1.2、烧写方法二-利用Console Port接口进行烧录-推荐使用(最稳定)

  拿到板子后,连接 Console Port 端口,在 putty (其他串口工具也可以)进行串口连接(通过打开设备管理器选择对应com串口),波特率设置为 115200,在接通板子电源后,putty 软件上点击连接,随后按下板子开关键,可以看到板子正在启动,最后进入到系统,不需要账号密码,在 home目录下可以进行一些脚本的测试,包括 HDMI 等的测试。(但是在测试过程中发现厂家自带的系统是没有网口驱动的,即其内核没有搭建网口驱动,因为后续的开发用到了网口,所以需要重新烧录内核)

2、Hi3559AV100 镜像烧录步骤

  起初参考了厂家发来的文档《BOXER-8410AI Manual 1st Ed.pdf》(但是貌似是 hisilicon 官方提供的文档),在 P40 页 33.3 Flash Image Steps,但
是按起步骤来搞不定,主要是因为 microUSB 连接之后没有串口显示即没有 com口,在 Hitool 软件下进行烧录时,用 USB Port 模式也可以不能行,主要是 USB的驱动可能没有事先装好,可能需要事先装好 libusbK(HiUSBBurn)驱动,(但是 Hi3559AV100 只支持 USB 非裸烧,非裸烧即为不勾选 uboot,仅勾选其他分区进行烧写,此时需要保证当前单板上已经存在 uboot,烧写时工具会启动 uboot,与其交互,通过向 uboot 发送 TFTP 命令与 Write 命令,完成烧写)
--------->具体步骤见《HiBurn 工具使用指南.pdf》1、5 步骤 7 P6 页。
  之后自己摸索了一下,成功进行了镜像烧录,具体的硬件连接需要将板载端Console Port 端口与 PC 相连,之后去官网下载镜像:
https://www.aaeon.com/cn/p/edge-ai-box-pc-hisilicon-hi3559a-boxer-8410ai因为板子型号为 BOXER-8410AI-A2-1010,因此选择如下:

  目录如下:

  之后打开 Hitool 软件,注意点如下:

  但是官网给的根文件系统太大了,用串口下载大概需要 1~2 天的时间,因此根据《Hi3559A╱C V100 SDK 安装及升级使用说明.pdf》下 3.2 P7 页,参照单系统 Linux 方案烧写步骤,到虚拟机下 SDK 目录下找到发布包image_glibc_multi-core_arm64(一定注意osdrv编译时make选项选择为emmc烧录,否则无法烧录),如下图所示:

  选择文件系统大小为 16.7M 的根文件系统,如下:

  随后在 Hitool 界面下,点击如下图所示,更换根系统:最后在板子通电的情况下(板子上开关指示灯不亮),点击 Hitool 的烧写:


  之后按下板子开关,随后 Hitool 控制台显示如下,即正在烧写。(注意:全过程不需要在板子上按 update 或者 reset 按键) 

  随后继续烧写镜像,等大概 40 分钟即可。

3、NFS 挂载-网口激活与启用(板载根文件为虚拟机下的根文件系统)

(即虚拟机下 16.7M 的 rootfs,ext4 格式-emmc类型)


挂载命令:
mount -t nfs -o nolock -o tcp -o rsize=32768,wsize=32768 192.168.43.27:/nfsroot /mnt

4、板载简单测试(板载根文件为虚拟机下的根文件系统)

(即虚拟机下 16.7M 的 rootfs,ext4 格式)
在虚拟机/nfsroot/test_hello 目录下首先编写一个简单的 hello 程序,具体
hello.c 代码如下:


  并通过交叉编译器编译成可执行文件,输入如下命令:$aarch64-himix100-linux-gcc -o hello hello.c(且发现,通过交叉编译器生成的可执行文件,在虚拟机端是运行不过的,只有用 gcc 来编译才可以在虚拟机上运行,但用 gcc 编译的可执行文件,在板载端运行不了)。
  之后进行验证,在虚拟机挂载好/nfsroot 目录之后,进入到/mnt/nfsroot/test_hello 目录下直接输入 $ ./hello,输出结果如下所示,是正常运行的。(其可以很好说明交叉编译链已经安装成功)

5、使用网口烧写官网给的根文件系统(速度最快效率最高)

  通过上述步骤2 Hi3559AV100 镜像烧录步骤下,已经启用了网口,之后直接通过Hitool的网口下载,选择正确的板端配置IP,在Burn eMMC一栏选择对应的根文件系统,在不断电的情况下,直接点击烧录,之后开启网口的步骤和上述2一样。(因为官方给的根文件系统自带了很多驱动,省去了重新配置kernel driver menuconfig)

Hi3559板载u-boot、kernel及rootfs烧录过程及心得的更多相关文章

  1. 实现Hi3559板载自启动网卡、NFS及Telnet服务

    实现Hi3559板载开机自启动网卡.NFS及Telnet服务通过直接在home目录下,编辑.bashrc,vi ~/.bashrc 1 ifconfig eth0 up 2 ifconfig eth0 ...

  2. 【记录】尝试用QEMU模拟ARM开发板去加载并运行Uboot,kernel,rootfs【转】

    转自:https://www.crifan.com/try_use_qemu_emulate_arm_board_to_load_and_run_uboot_kernel_rootfs/ [背景] 手 ...

  3. Hi3559AV100-自己编译了u-boot、kernel及rootfs后,出现烧写错误或者烧写后板载无法启动的解决思路

    这篇随笔主要给出了Hi3559AV100-自己编译了u-boot.kernel及rootfs后,出现烧写错误或者烧写后板载无法启动的解决思路. 问题 (1)对于 u-boot 为官方的,kernel ...

  4. 02.将uboot,kernel,rootfs下载到开发板上

    转载,侵删 将uboot,kernel,rootfs下载到开发板上 1.为什么要下载 所谓下载,也称烧录,部署. 1.1.什么是u-boot Hi3518EV200 单板的 Bootloader 采用 ...

  5. HI3518EV200+AR0130开发板烧录uboot、kernel、rootfs及其参数配置

    分区名 分区大小 起始地址 截至地址bootloader:1M 0x00000000 0x00100000kernel: 3M 0x00100000 0x00400000rootfs: 12M 0x0 ...

  6. qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统

    qemu 本文介绍了如何编译u-boot.linux kernel,然后用qemu启动u-boot和linux kernel,达到与开发板上一样的学习效果! 虽然已经买了2440开发板,但是在实际学习 ...

  7. qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统【转】

    转自:http://www.cnblogs.com/riskyer/p/3366001.html qemu 本文介绍了如何编译u-boot.linux kernel,然后用qemu启动u-boot和l ...

  8. BeagleBone硬件概览Ethernet端口板载LEDc重置按钮等介绍

    BeagleBone硬件概览Ethernet端口板载LEDc重置按钮等介绍 你进入BeagleBone世界的第一步就是将它连接以得到命令提示,然后你就可以处理文件以及执行命令了.在这里,你就可以定制你 ...

  9. 在树莓派3B、Ubuntu 18.04关闭板载Wifi、蓝牙

    树莓派没有传统的BIOS设置界面,文件/boot/firmware/config.txt就相当一个BIOS设置.这里是config.txt的详细文档:https://github.com/raspbe ...

随机推荐

  1. dsu on tree ——附带buff的暴力解法

    这篇博客只是简单叙述思想(因为ML太弱了),具体例题请转其他博客. dsu on tree,许多OI将其归于启发式合并,当然如果你能理解更好,这只是一个理解方式罢了. 思想简述 顾名思义,这个算法是处 ...

  2. Smith Numbers POJ - 1142 暴力递归枚举

    题意: 给你一个数x,把这个分解成素数之积(假设是x1*x2*x3),如果   x的每一数位的和   等于  x1每一数位的和加上x2每一数位的和加上x3每一数位的和,那么他就是题目要找的数 示例: ...

  3. HDU2732 Leapin' Lizards 最大流

    题目 题意: t组输入,然后地图有n行m列,且n,m<=20.有一个最大跳跃距离d.后面输入一个n行的地图,每一个位置有一个值,代表这个位置的柱子可以经过多少个猴子.之后再输入一个地图'L'代表 ...

  4. Zabbix 监控网站

    官网教学步骤 配置 Web 监控 创建 Web 场景 配置 Web 场景 配置 Web 监控步骤 一共划分为 5 个步骤: 监测访问登录页面 模拟登录功能 # sid 变量的值 regex:name= ...

  5. 3.keepalived+脚本实现nginx高可用

    标题 : 3.keepalived+脚本实现nginx高可用 目录 : Nginx 序号 : 3 else exit 0 fi else exit 0 fi - 需要保证脚本有执行权限,可以使用chm ...

  6. Git使用出现Automatic merge failed; fix conflicts and then commit the result.解决方法

    产生原因 首先这个问题产生的原因是因为你git pull 的时候会分为两步,第一步先从远程服务器上拉下代码,第二步进行merge,但是merge时候失败了就会产生上述问题. 解决方法: 丢弃本地提交, ...

  7. Git使用指南(上)

    1 Git简介 学习一门技术老师更加倾向于看官网的. 度娘看完了,官网看完了,大家还是很懵逼 学生成绩管理系统 登录模块   3.2 登录模块进一步完善    缺一个验证码的功能    3.3 登录模 ...

  8. 全方位构造免杀 webshell 小结[一]

    转载自https://klionsec.github.io/2017/10/11/bypasswaf-for-webshell/   全方位构造免杀 webshell 小结[一]   前言:    本 ...

  9. LVS之DR模式部署

    一.LVS-DR数据包流向分析 为方便进行原理分析,将Client与群集机器放在同一网络中,数据包流经的路线为1-2-3-41.Client 向目标 VIP 发出请求,Director(负载均衡器)接 ...

  10. HTML <keygen> 标签(👎 已废弃)

    HTML 标签( 已废弃) 该标签在新的 Web 标准中已废弃. <!DOCTYPE html> <html> <head>  <meta charset=& ...