OpenHarmony-RK3568開發板操作梳理

来源:https://www.cnblogs.com/helong-123/archive/2022/04/27/16198171.html
-Advertisement-
Play Games

鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 寫在前面可參考 PS:使用wsl2作為Windows下Ubuntu環境時提升代碼編譯等效率的幾個點: 1.安裝完wsl後,檢查wsl的版本,確保是版本2(cmd執行wsl -l -v查看,如果不是,可通過wsl.exe -set-version ...


鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站

寫在前面可參考

PS:使用wsl2作為Windows下Ubuntu環境時提升代碼編譯等效率的幾個點:

1.安裝完wsl後,檢查wsl的版本,確保是版本2(cmd執行wsl -l -v查看,如果不是,可通過wsl.exe -set-version Ubuntu-20.04 2轉換成版本2)

2.wsl2安裝完成後,切換軟體源為國內軟體源,可參考(親測好用) Ubuntu20.04換阿裡源(解決安裝build-essential失敗問題)_AnChenliang

3.預設是安裝在系統盤的,可安裝完後遷移到非系統盤

4.OpenHarmony代碼相關操作建議在wsl2個人用戶家目錄下操作

一、板子組裝

板子組裝按照方便,使用安全組裝即可,註意屏幕和攝像頭的排線插的順序,插反可能會導致屏幕不亮、攝像頭不能用等情況。

file

二、WSL2安裝

InsStep:

1.打開設置->安全和更新->開發者選項,選擇為“開發人員模式”;

2.Win + R運行control appwiz.cpl指令,在啟用或關閉Windows功能中勾選適用於Linux的Windows子系統和虛擬機平臺兩項啟用,重啟(註:沒有虛擬機平臺的,請升級Windows系統,Win10 版本號為 2004(內部版本19041或更高),);

3.以管理員身份打開PowerShell並運行:dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 開啟Windows子系統功能;

4.打開Microsoft Store搜索Ubuntu,安裝Ubuntu20.04:

file

5.安裝完直接打開,設置用戶名和密碼以及root用戶密碼:

file

6.將Ubuntu Shell環境修改為bash

執行sudo dpkg-reconfigure dash,選擇No,將Ubuntu shell由dash修改為bash

file

如圖,執行ls -l /bin/sh查看:

file

7.python3環境

Ubuntu20已自帶python3.8.5,執行sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150切換python3:

file

安裝pip3

$ sudo apt-get -y update

$ sudo apt-get install python3-pip

8.安裝完成,用戶賬號設置好之後,打開命令行視窗執行wsl -l -v查看下wsl的版本(註:cmd,wsl找不到的請更新windows版本),確保是wsl2,如果是版本1,可執行wsl.exe --set-version Ubuntu-20.04 2命令升級為版本2,執行後等待轉換完成即可!!註意一定要是WSL2,如果是版本1,編譯速度會慢幾十倍!

file

file

PS:執行wsl.exe --set-version Ubuntu-20.04 2出現內核組件問題,先下載安裝
wsl_update_x64.msi後,在執行切換命令,即可開始轉換,等待轉換完成即可。

9.wsl2遷移參考OpenHarmony代碼操作總結wsl遷移部分

10.wsl2安裝完成後,切換軟體源為國內軟體源:

s1:備份原來的源:cp -ra /etc/apt/sources.list /etc/apt/sources.list.bak

s2: 將源換成阿裡源:sudo gedit /etc/apt/sources.list,將裡面的內容清空,把下麵的內容複製進去,保存退出

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

s3: 更新緩存和升級:

sudo apt-get update

sudo apt-get upgrade

PS:按上述步驟切換軟體源後可解決一Ubuntu20.04一些依賴工具安裝失敗的問題

11.WSL映射到本地

file

如圖:

本地方便查看

file

三、獲取源碼

代碼初次下載需要做一些前期準備工作:主要有碼雲gitee賬號註冊、添加碼雲SSH公鑰、安裝git和git-lfs、配置用戶信息、repo工具安裝

註冊碼雲gitee賬號

電話號碼註冊即可,並添加工作郵箱為主郵箱,如圖:

file

註冊碼雲SSH公鑰

參考碼雲 生成/添加SSH公鑰

如圖:

file

如圖,檢測公鑰是否添加成功:

file

安裝git客戶端和git-lfs並配置用戶信息

安裝git客戶端

執行:

sudo apt install git-all

安裝git-lfs

依次執行以下命令:

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash

sudo apt-get install git-lfs

git lfs install

配置用戶信息

git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store

安裝repo工具

安裝碼雲repo工具,由於許可權可切換到root用戶下安裝,安裝後再切換個人用戶目錄操作既可:

執行:

 curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo

chmod a+x /usr/local/bin/repo

 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

下載主幹master分支源碼

repo init -u [email protected]:openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

ps:git lfs

file

rk3568對應倉庫

device/hihope/rk3568

file

四、編譯

代碼下載後初次編譯需要做一些前期準備工作:主要有依賴工具安裝、預編譯

編譯環境準備

S1:安裝依賴工具

sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev genext2fs liblz4-tool libssl-dev libtinfo5 lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby

S2:執行java --version看是否有java的環境,沒有的話安裝下

sudo apt install openjdk-17-jre-headless

如圖:

file

file

S3:執行prebuilts,在源碼根目錄下執行,安裝編譯器及二進位工具

bash build/prebuilts_download.sh

版本編譯

進入源碼根目錄,執行:

./build.sh --product-name rk3568 --ccache

編譯結果

編譯完成後,log顯示如下:

file

鏡像路徑:\out\rk3568\packages\phone\images\

file

daily構建版本或轉測版本獲取

daily構建版本

http://ci.openharmony.cn/dailybuilds

file

PS:hdc工具除過自己本地編譯,也可以從流水線構建本下載:

file

轉測版本

Release-Testing-Version.md · OpenHarmony-SIG/oh-inner-release-management - Gitee.com

file

五、燒寫

燒寫所需驅動和工具獲取

usb驅動安裝

雙擊windows\DriverAssitant\DriverInstall.exe安裝usb驅動

正常燒寫

燒寫

雙擊\windows\RKDevTool.exe打開燒寫工具,工具界面擊燒寫步驟如圖所示:

MASKROM模式和LOADER模式兩種模式下可供燒寫,推薦LOADER模式燒寫,非必要不使用MASKROM按鍵操作燒寫。

LOADER模式燒寫:板子上電狀態,PC usb線連接板子,先按住板子上的Recovery鍵,然後按一下reset鍵,待工具界面顯示LOADER設備後,鬆開Recovery鍵,設備進入loader模式,點擊執行開始燒寫,如圖:

file

MASKROM模式燒寫: 設備斷開電源狀態,PC usb線連接設備,先按住板子上的MASKROM按鍵,設備上電,待工具界面顯示MASKROM設備後,鬆開MASKROM鍵,系統進入MASKROM模式,點擊執行開始燒寫,具體步驟截圖與上圖一樣(註:MASKROM模式燒寫,需勾選Loader下載項)。

變磚拯救

燒寫時由於燒寫不當,比如uboot文件燒錯等,導致燒寫工具MASKROM和Loader模式都發現不了設備,設備無法啟動的情況下,可按照如下操作進行燒寫:

Windows下,設備連接電源狀態,PC連接設備(通過USB),同時按住reset 鍵maskrom 按鍵,然後先鬆開reset鍵,待工具界面顯示MASKROM設備後,再鬆開MASKROM鍵,設備進入MASKROM模式,勾選Loader,MASKROM模式下點擊執行開始燒寫即可。

如圖:溝通Loader下載項,MASKROM模式開始燒寫:

file

PS:MaskRom 模式是設備變磚的最後一條防線。強行進入 MaskRom 涉及硬體操作,有一定風險,因此僅在設備進入不了 Loader 模式的情況下,方可嘗試 MaskRom 模式。進入 MaskRom 的原理是人為的把 EMMC 的數據腳與地線短接,系統會認為 EMMC 數據出錯,從而清除 EMMC 數據。

參考MaskRom模式 — Firefly Wiki

六、Hdc工具連接設備

hdc的版本和設備版本保持一致,可自己編譯最新hdc工具:源碼根目錄執行./build.sh --product-name ohos-sdk --ccache,直接copy到本地路徑(可將hdc_std.exe改為hdc.exe方便點)加入環境變數,如圖:

file

七、 測試套編譯和執行

測試套編譯

到/test/xts/acts目錄下執行./build.sh product_name=rk3568 system_size=standard target_subsystem=××××可編譯單個子系統測試套

編譯結果查看:/out/rk3568/suites/acts/

file

用例執行

編譯生成的可執行文件(C++用例等)和hap包(js用例等)在testcases目錄下,用例執行可以將可執行文件或hap包通過hdc send到設備制定目錄,通過 ./***或aa start的方式執行,也可以連接設備後,將編譯生成的acts文件夾coay到Windows本地,cmd命令行進入acts目錄,運行run.bat,然後執行run acts的方式開始執行用例,用例執行的報告和log會在acts目錄下生成。

PS:運行run.bat依賴於編譯生成的tools文件夾下的工具,tools文件夾如果為空,請檢查編譯工具是否安裝全。

舉個例子

1.手動執行

以本地手動執行js測試用例為例,ps:安裝到設備上的應用信息,可通過bm dump -命令查看,比如應用包名,應用Mainability等,C++用例直接將可執行文件send到設備指定目錄,chmod許可權後,./***執行即可。

如圖:

S1:子系統測試套編譯

file

S2:hap安裝

file

S3:啟動應用執行測試用例,並將hilog日誌保存到本地方便產看

file

日誌查看:

file

2.xdevice自動執行

本地環境需求:python(最好python3.7)、安裝pthon依賴包setuptools,最新版本的hdc_std,並將hdc_std.ext的路徑加入到環境變數path中;

file

1>.將測試套編譯生生成\out\rk3568\suites\目錄下的acts文件夾copy到本地任意目錄方便執行

file

2>.cmd進入acts所在目錄運行acts目錄下的run.bat腳本:

file

ps:可執行list查看本地設備是否連接成功:

file

3>.執行run acts即可自動化開始全量執行acts目錄下所有的用例並完成執行報告解析以及日誌收集等:

ps:按模塊執行(具體模塊可以查看\acts\testcases):run –l ActsResourcescheduleReminderAgentTest

file

用例執行報告查看:

file

file

日誌查看:

file

八、串口調試

file

S1.用串口線連接 PC 與開發板,在設備管理器查看埠

file

S2.使用IPOP工具或者其他串口工具(有些串口工具可能不支持,連接上列印亂碼,目前試過的IPOP和securtCRT 是OK的,XShell不行)通過串口連接設備,串口波特率配置為 1500000,如圖:

file

S3.確定連接

連接後就可以進行debug調試,查看串口列印等操作

file

本文轉自:https://blog.csdn.net/nanzhanfei/article/details/121951919


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 原文鏈接:https://www.cnblogs.com/ysmc/p/16197223.html BootstrapBlazor 官網地址:https://www.blazor.zone Bootstrap Blazor 提供了一個快速創建項目的項目模板,安裝方法可參考我這一篇文章:Bootstr ...
  • 聽說Docker這玩意挺長時間了,新建Web應用的時候,也註意到有個啟用Docker的選項。 前兩天掃了一眼《【大話雲原生】煮餃子與docker、kubernetes之間的關係》,覺得有點意思,決定試試Docker。 然後被坑、百度... 現將整個過程記錄一下 一、新建項目 點擊創建,被通知“需要安 ...
  • 前言 本文主要介紹ArcGis的ArcEngine開發,學習時,我們需要放下心裡障礙,那就是Gis開發只是普通的軟體開發,並不需要專業的GIS知識,就是非常普通的,調用相關的C++開發的COM組件。 開發環境:VS2017。 ArcEngine版本:10.1。 基礎學習 正式使用ArcGis之前,需 ...
  • Masa Blazor是什麼 在此之前我們已經介紹過什麼是Masa Blazor,以及如何使用Masa Blazor,如果還有不瞭解Masa Blazor的同學可以看我上篇文章【初識Masa Blazor】。那麼今天就帶大家探索一下如何在MAUI中使用Masa Blazor,那麼我們先來瞭解一下什麼 ...
  • 理解依賴項屬性 依賴項屬性是專門為WPF創建的,在WPF的核心特征中使用。 創建依賴項屬性 public class DP: DependencyObject { //聲明依賴項屬性 public static readonly DependencyProperty MydpProperty; st ...
  • Set介面 介紹 無序(添加和取出的順序不一致),沒有索引 不允許重覆,所以最多包含一個null JDK API中Set介面實現類有 Set介面常用方法 和List介面一樣,Set介面也是Collection的子介面,因此,常用方法和Collection介面一樣 特點 不能存放重覆的元素 set介面 ...
  • 最新 x86_64 系統調用入口分析 (基於5.7.0) 整體概覽 最近的工作涉及系統調用入口,但網上的一些分析都比較老了,這裡把自己的分析過程記錄一下,僅供參考。 x86_64位系統調用使用 SYSCALL 指令進入內核空間,使CPU切換到ring 0。SYSCALL 指令主要工作為從MSR寄存器 ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 基礎安裝 一:製作安裝介質 下載ISO鏡像文件: https://archlinux.org/download/ # 官方下載網址 在linux系統中可以用pgp驗證系統簽名: gpg --keyserver-options auto-key-r ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...