1引言 通常情況下工程師在調(diào)試Qt程序時(shí),需要頻繁制作鏡像燒錄到核心板來(lái)測(cè)試Qt程序是否完善,這樣的操作既費(fèi)時(shí)又費(fèi)力。這時(shí)我們可以通過(guò)QtCreator設(shè)備功能,定義設(shè)備后,在x86_64虛擬機(jī)上交叉編譯qt程序,將程序遠(yuǎn)程部署到arm64的機(jī)子上,然后遠(yuǎn)程調(diào)試,大大提高開(kāi)發(fā)效率。 2. 調(diào)試環(huán)境 本文基于HD-T113-EVM評(píng)估板進(jìn)行驗(yàn)證,HD-T113-EVM基于HD-T113-S3核心板設(shè)計(jì),具備千兆網(wǎng)口、雙路CAN-bus、2路RS-232、2路RS-485、LCD、4G/5G、WiFi、音頻等,接口豐富,適用于工業(yè)現(xiàn)場(chǎng)應(yīng)用需求,亦方便用戶評(píng)估核心板及CPU的性能。
2.1 調(diào)試前準(zhǔn)備 使win10主機(jī)、arm開(kāi)發(fā)板和linux虛擬機(jī)處于同一網(wǎng)段且三者能互相ping通配置虛擬機(jī)ip。虛擬機(jī)需要按照以下截圖步驟進(jìn)行設(shè)置。 2.2 交叉編譯環(huán)境設(shè)置 /work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/qt5/bin/qmake 2.2.1 編譯器 GCC /work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/bin/arm-linux-gnueabihf-gcc G++ /work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/bin/arm-linux-gnueabihf-g++ 2.2.2 Kits 2.3 創(chuàng)建新設(shè)備 打開(kāi)工具->選項(xiàng)->設(shè)備,添加新的Generic Linux Device設(shè)備。 2.3.1 測(cè)試成功 2.3.2 測(cè)試失敗 1 - 錯(cuò)誤描述SSH connectionfailure 錯(cuò)誤分析No routeto tohst找不到主機(jī) 解決方案檢查虛擬機(jī)與開(kāi)發(fā)板ip是否處于同一網(wǎng)段并且能互相ping通 2 - 如虛擬機(jī)與開(kāi)發(fā)板可以正常ping通但無(wú)法ssh登錄開(kāi)發(fā)板 原因:一臺(tái)主機(jī)上有多個(gè)Linux系統(tǒng),會(huì)經(jīng)常切換,那么這些系統(tǒng)使用同一ip,登錄過(guò)一次后就會(huì)把ssh信息記錄在本地的/.ssh/known_hsots文件中,切換該系統(tǒng)后再用ssh訪問(wèn)這臺(tái)主機(jī)就會(huì)出現(xiàn)沖突警告,需要手動(dòng)刪除修改known_hsots里面的內(nèi)容。 有以下兩個(gè)解決方案: 1.刪除修改known_hsots記錄,重新登錄,使known_hsots生成新的記錄; 2.修改配置文件“~/.ssh/config”,添加下兩行, StrictHostKeyChecking no UserKnownHostsFile /dev/null 重啟服務(wù)器。 優(yōu)缺點(diǎn): 1.需要每次手動(dòng)刪除文件內(nèi)容,一些自動(dòng)化腳本的無(wú)法運(yùn)行(在SSH登陸時(shí)失敗),但是安全性高; 2.SSH登陸時(shí)會(huì)忽略known_hsots的訪問(wèn),但是安全性低; 2.4 設(shè)置Kits->Device 2.5 部署應(yīng)用 1 - 新建項(xiàng)目時(shí),選擇Kits為T113 2 - 編譯應(yīng)用 3 - 部署應(yīng)用到開(kāi)發(fā)板 4 - 提示 部署成功后,可能會(huì)提示。kbcommon: ERROR: failed to add defaultinclude path /usr/share/X11/xkb 5–運(yùn)行結(jié)果展示 |