这一篇随笔讲叙述下基于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. P2062 分队问题(DP)

    题目描述 给定n个选手,将他们分成若干只队伍.其中第i个选手要求自己所属的队伍的人数大等于a[i]人. 在满足所有选手的要求的前提下,最大化队伍的总数. 注:每个选手属于且仅属于一支队伍. 输入输出格 ...

  2. hdu1313 Round and Round We Go (大数乘法)

    Problem Description A cyclic number is an integer n digits in length which, when multiplied by any i ...

  3. Codeforces Round #681 (Div. 2, based on VK Cup 2019-2020 - Final) C. The Delivery Dilemma (贪心,结构体排序)

    题意:你要买\(n\)份午饭,你可以选择自己去买,或者叫外卖,每份午饭\(i\)自己去买需要消耗时间\(b_i\),叫外卖需要\(a_i\),外卖可以同时送,自己只能买完一份后回家再去买下一份,问最少 ...

  4. 使用eclipse搭建第一个java web应用

    一. 首先是eclipse得下载,你要下载Eclipse IDE for Java EE这种类型的,我之前下载的Eclipse IDE for Enterprise Java Developers是官 ...

  5. C++ string (浅谈)

    浅谈string <string> typedef basic_string<char> string; 本篇主要内容是简单地介绍 string类 在竞赛方面较实用的一些功能, ...

  6. Nginx location相关配置说明

    Nginx location相关配置说明       基于不同的IP.不同的端口以及不用得域名实现不同的虚拟主机,依赖于核心模块ngx_http_core_module实现. 新建PC web站点 [ ...

  7. codeforces 868B

    B. Race Against Time time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  8. 电信悦 me 智能网关

    电信悦 me 智能网关 悦 me 智能网关 Q1:什么是电信悦 me 智能网关? 悦me网关是智慧家庭的核心终端,作为"光猫+智能路由器"的集合体, 采用了全新的硬件.外观及智能操 ...

  9. js inheritance all in one

    js inheritance all in one prototype & proto constructor Object.definepropety Object.create() js ...

  10. TypeScript 3.7 RC & Optional Chaining

    TypeScript 3.7 RC & Optional Chaining https://devblogs.microsoft.com/typescript/announcing-types ...