這一篇隨筆講敘述下基于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安裝圖解
圖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,因此選擇如下:
目錄如下:

但是官網給的根檔案系統太大了,用串口下載大概需要 1~2 天的時間,因此根據《Hi3559A╱C V100 SDK 安裝及升級使用說明.pdf》下 3.2 P7 頁,參照單系統 Linux 方案燒寫步驟,到虛擬機下 SDK 目錄下找到發布包image_glibc_multi-core_arm64(一定注意osdrv編譯時make選項選擇為emmc燒錄,否則無法燒錄),如下圖所示:

隨后在 Hitool 界面下,點擊如下圖所示,更換根系統:最后在板子通電的情況下(板子上開關指示燈不亮),點擊 Hitool 的燒寫:
之后按下板子開關,隨后 Hitool 控制臺顯示如下,即正在燒寫,(注意:全程序不需要在板子上按 update 或者 reset 按鍵)


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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/258347.html
標籤:其他
上一篇:Hi3559AV100 SDK的詳細安裝程序及問題解決方法
下一篇:Hi3559AV100-自己編譯了u-boot、kernel及rootfs后,出現燒寫錯誤或者燒寫后板載無法啟動的解決思路
