成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

鴻蒙移植樹莓派(上)搭建環(huán)境下載源碼

系統(tǒng) Linux
文章由鴻蒙社區(qū)產(chǎn)出,想要了解更多內(nèi)容請前往:51CTO和華為官方戰(zhàn)略合作共建的鴻蒙技術社區(qū)https://harmonyos.51cto.com/#zz

[[378182]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區(qū)

https://harmonyos.51cto.com/#zz

項目最新更新,可以查看碼倉https://gitee.com/liangzili/harmony-raspberry

1、環(huán)境搭建

編譯鴻蒙的源碼建議在Ubuntu20.04下進行,windows下會出現(xiàn)各種奇怪的問題,不建議使用。

1.1、VirtualBox 虛擬機安裝

VirtualBox官網(wǎng)下載地址:https://www.virtualbox.org/

Ubuntu20.04官網(wǎng)下載地址:https://ubuntu.com/download/desktop

關于VirtualBox和Ubuntu的安裝和使用就不展開了,百度一下資料很多。

1.2、改sh為bash

  1. ls -l /bin/sh                   #如果顯示為“/bin/sh -> bash”則為正常,否則請按以下方式修改:  
  2. sudo dpkg-reconfigure dash      #然后選擇no 

 1.3、安裝打包工具mkfs.vfat mtools

  1. sudo apt-get install dosfstools mtools  #官方要求安裝的2個工具  
  2. sudo apt-get install zip                #官方文檔沒寫,但是rootfs過程需要  
  3. sudo apt-get install python3-distutils  #官方文檔沒寫,但是build過程需要 

 1.4、下載安裝編譯工具gn ninja llvm hc-gen

hc-gen:鴻蒙驅(qū)動hdf框架之類的,用于生成鴻蒙驅(qū)動配置對應的文件

  1. #下載gn/ninja/LLVM/hc-gen包: 
  2. URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler 
  3. wget $URL_PREFIX/gn/1523/linux/gn.1523.tar 
  4. wget $URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tar 
  5. wget $URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tar 
  6. wget $URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar 
  7. wget $URL_PREFIX/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz #【可選】編譯riscv需要,如wifiiot 
  8. ​ 
  9. #解壓gn/ninja/LLM/hc-gen包: 
  10. tar -C ~/ -xvf gn.1523.tar 
  11. tar -C ~/ -xvf ninja.1.9.0.tar 
  12. tar -C ~/ -xvf llvm-linux-9.0.0-34042.tar 
  13. tar -C ~/ -xvf hc-gen-0.65-linux.tar 
  14. tar -C ~/ -xvf gcc_riscv32-linux-7.3.0.tar.gz  #【可選】編譯riscv需要,如wifiiot 
  15. ​ 
  16. #向~/.bashrc中追加gn/ninja/LLVM/hc-gen路徑配置: 
  17. cat <<EOF >> ~/.bashrc 
  18. export PATH=~/build_tools/gn:\$PATH 
  19. export PATH=~/build_tools/ninja:\$PATH 
  20. export PATH=~/build_tools/llvm/bin:\$PATH 
  21. export PATH=~/build_tools/hc-gen:\$PATH 
  22. #export PATH=~/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin:\$PATH 
  23. export PATH=~/gcc_riscv32/bin:\$PATH   #【可選】編譯riscv需要,如wifiiot 
  24. #export PATH=~/.local/bin:\$PATH 
  25. EOF 
  26. ​ 
  27. #生效環(huán)境變量 
  28. source ~/.bashrc 

 1.5、安裝python3.8和 pip

編譯鴻蒙源碼hi3861目標平臺需要使用scons,默認安裝的scons版本需要python版本>=3.7:

a、如果是ubuntu20.04,因為默認python是3.8,正好符合要求,只需要安裝pip即可,可以進行第6步了。

  1. sudo apt-get install python3-pip 

注意:如果pip下載慢,配置pip包下載源,加速國內(nèi)安裝pip包:

  1. mkdir~/.pip/ 
  2. cat <<EOF > ~/.pip/pip.conf 
  3. [global
  4. index-url = https://mirrors.huaweicloud.com/repository/pypi/simple 
  5. trusted-host = mirrors.huaweicloud.com 
  6. timeout = 120 
  7. EOF 

 b、如果是其他版本,比如ubuntu18.04,默認Python3版本是 3.6,得先安裝python3.8

  1. sudo apt-get install python3.8 python3-pip  
  2. sudo apt-get install python3-pip 

 安裝完成后,需要將默認python切換為3.8,比較麻煩的是多個python版本的管理,通常有兩種方式:

方案一:使用virtualenv管理,單獨source相應的active腳本切換當前shell會話的默認python版本

virtualenv管理多個python運行環(huán)境,不適用virtualenv的情況下,pip install 和 sudo pip install的包會分別放到用戶home目錄和系統(tǒng)目錄

安裝virtualenv:

  1. pip3 install virtualenv 
  2. sudo apt install python3-virtualenv 
  3. ​ 
  4. #創(chuàng)建使用python3.8為默認python解釋器的virtualenv 
  5. mkdir ~/Harmony/venv && virtualenv -p python3.8 ~/Harmony/venv 
  6. ​ 
  7. #激活virtualenv,激活后的pip3 install會將包文件緩存到相應的子目錄中 
  8. source ~/harmonyos/venv/bin/activate 
  9. source ~/Harmony/.venv/bin/activate 

 方案二:使用update-alternatives管理,并切換全局Python腳本配置(不推薦,用完需要切換回去,否則會影響apt等依賴python3的軟件包使用);

update-alternatives ,它是 Debian 系管理多版本軟件的工具,不僅適用 Python ,而且還使用 Java 等各種有多版本共存需求的軟件。 它跟 virtualenv 這種虛擬環(huán)境不同的是, update-alternatives 管理的是系統(tǒng)級的軟件版本, virtualenv 管理的是當前用戶下的一個虛擬環(huán)境。

1.6、確定python的環(huán)境變量

方案一:使用【ln -s】,確定Python安裝好后,運行如下命令,將python路徑鏈接到"/usr/bin/python"。

  1. which python3.8               #查看python3.8的安裝位置 
  2.     輸出:/usr/bin/python3.8   #比如我的安裝目錄 
  3. cd /usr/bin                   #進入python的目錄 
  4. sudo rm python                #刪除python 
  5. sudo ln -s /usr/local/bin/python3.8 python #將python鏈接到python3.8 
  6. python --version 

 方案二:sudo apt-get install python3-venv #安裝venv虛擬環(huán)境

  1. python3 -m venv .venv       #推薦進入項目的根目錄再執(zhí)行此命令 
  2. source .venv/bin/activate   #進入虛擬環(huán)境 

 其他工具安裝

  1. #安裝setuptools和kconfiglib 
  2. pip3 install setuptools kconfiglib 
  3. ​ 
  4. #安裝編譯hi3861需要的pip包 
  5. pip3 install scons ecdsa pycryptodome 
  6. pip3 install --upgrade --ignore-installed six 

 2、下載源碼

Ubuntu環(huán)境搭建完成之后開始下載源代碼。

2.1、配置GIT

  1. sudo apt install git 
  2. git config --global user.name "liangzili" 
  3. git config --global user.email "liangzili@qq.com" 
  4. git config --global credential.helper store 

 2.2、安裝碼云repo工具,可以執(zhí)行如下命令

  1. sudo apt install curl 
  2. curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo 
  3. chmod a+x /usr/local/bin/repo       #設置repo文件 a+x就是全部用戶可執(zhí)行 
  4. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests 

 2.3、下載源碼

repo是下載多個git庫的python腳本,參考repo用法:https://blog.csdn.net/nwpushuai/article/details/78778602

repo init

-u #指定manifests這個遠程git庫的URL,manifests庫是整個項目的清單,通常包含了default.xml這個文件

-b #指定manifest.xml文件中的一個版本,,也就是俗稱的“分支”運行該命令后,會在當前目錄下新建一個.repo子目錄

repo sync

-j12 #開啟多線程同步操作,這會加快sync命令的執(zhí)行速度。默認情況下,使用4個線程并發(fā)進行sync

–no-repo-verify:在下載repo庫時,會對repo的源碼進行檢查。通過–repo-url指定第三方repo庫時,可能會導致檢查不通過,所以可以配套使用該參數(shù),強制不進行檢查

-c, –current-branch:只同步指定的遠程分支。默認情況下,sync會同步所有的遠程分支,當遠程分支比較多的時候,下載的代碼量就大。使用該參數(shù),可以縮減下載時間,節(jié)省本地磁盤空間

-d, –detach:脫離當前的本地分支,切換到manifest.xml中設定的分支。在實際操作中,這個參數(shù)很有用,當我們第一次sync完代碼后,往往會切換到dev分支進行開發(fā)。如果不帶該參數(shù)使用sync, 則會觸發(fā)本地的dev分支與manifest設定的遠程分支進行合并,這會很可能會導致sync失敗

sync -c #只同步指定的遠程分支

  1. repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify 
  2. repo sync -c  #以后每天同步遠程倉的修改,只需要執(zhí)行這一條命令即可 
  3. ​ 
  4. 前期可以先鎖定OpenHarmony-1.0版本,避免頻繁升級帶來的問題,樹莓派的移植就是在OpenHarmony-1.0的分支上進行的  
  5. repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-1.0 
  6. repo sync -c -j12 

 2.4、編譯測試

可以先執(zhí)行官方編譯命令測試下編譯環(huán)境是否正常,編譯完成后,主目錄下會生成out的文件夾

-b debug 構建調(diào)試版本,如果沒有這個參數(shù),正常版本是無法進入shell的

  1. python3 build.py ipcamera_hi3516dv300 -b debug 
  2. python3 build.py ipcamera_hi3518ev300 -b debug 
  3. python build.py wifiiot -b debug 

 3、樹莓派啟動流程

3.1、樹莓派的啟動方式

樹莓派自帶BootLoader,引導SD卡上的鏡像文件啟動內(nèi)核,可以使用樹莓派自帶的BootLoader直接啟動內(nèi)核,但是這樣不方便我們調(diào)試代碼。需要頻繁的插拔SD卡。所以我是先通過BootLoader加載u-boot,然后通過u-boot的TFTP直接將內(nèi)核的鏡像加載到內(nèi)存,這樣在調(diào)試的時候,就不需要頻發(fā)的插拔SD卡了。當調(diào)試結束,再拷貝鏡像文件到SD卡,啟動內(nèi)核就可以了。

  1. TFTP啟動內(nèi)核u-boot環(huán)境變量設置: 
  2. setenv bootcmd "tftp 80000 OHOS_Image.bin;tftp 80000 OHOS_Image.bin;tftp 80000 OHOS_Image.bin;go 80000" 
  3. ​ 
  4. SD卡啟動內(nèi)核u-boot環(huán)境變量設置: 
  5. setenv bootcmd "fatload mmc 0:1 100000 liteos.bin;fatload mmc 0:1 100000 liteos.bin;mw.l    0x10100000  ffffffff 1000000;fatload mmc 0:1 10100000 rootfs.jffs2;go 100000 - 10100000" 

 3.2、樹莓派2的啟動文件

OHOS_image_1.0這個文件夾中有我已經(jīng)編譯好的鴻蒙鏡像,可以直接使用。詳細的編譯過程可以參考后面的章節(jié)。

=======完整內(nèi)容======

#2020征文-開發(fā)板# 鴻蒙 移植 樹莓派(上)搭建環(huán)境下載源碼

#2020征文-開發(fā)板# 鴻蒙 移植 樹莓派(中)添加單板

#2020征文-開發(fā)板# 鴻蒙 移植 樹莓派(下)修改源碼

©著作權歸作者和HarmonyOS技術社區(qū)共同所有,如需轉載,請注明出處,否則將追究法律責任。

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區(qū)

https://harmonyos.51cto.com/#zz

 

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關推薦

2021-01-26 13:50:43

鴻蒙HarmonyOS應用開發(fā)

2021-01-25 16:39:08

鴻蒙HarmonyOS添加單板

2021-07-25 10:30:04

樹莓派Linux

2018-10-12 11:20:20

樹莓派NAS Linux

2020-08-16 09:00:15

樹莓派FedoraLinux

2019-03-31 08:00:02

樹莓派更新樹莓派 Linux

2019-03-24 20:30:18

樹莓派Linux

2021-11-23 15:35:05

鴻蒙HarmonyOS應用

2017-05-03 15:00:59

PC樹莓派PIXEL OS

2021-12-31 10:00:30

鴻蒙HarmonyOS應用

2017-03-03 10:40:41

2019-03-12 18:33:57

樹莓派Linux

2021-09-26 10:11:14

Ubuntu樹莓派

2021-03-29 21:24:40

樹莓派Linux

2022-02-11 09:24:05

樹莓派OpenWrt固定IP服務

2019-03-23 19:33:14

樹莓派Linux操作系統(tǒng)

2013-08-26 11:00:27

RaspbianHard Float.NET環(huán)境

2020-07-16 21:00:05

樹莓派Kubernetes集Linux

2024-03-22 15:28:36

樹莓派Linux

2019-05-24 13:30:57

PiShrink樹莓派Linux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产区一区二区三区 | 国产精品区二区三区日本 | 亚洲激精日韩激精欧美精品 | 中文久久| 欧美日韩在线视频一区二区 | 午夜大片 | 天天综合91 | 欧美亚洲综合久久 | 天堂中文在线观看 | 91久久精品视频 | 国产精品一区二区三区久久久 | www.久久精品 | 久久亚洲一区 | 91精品国产91久久久久久三级 | 国产精品日日做人人爱 | 中文字幕综合在线 | 国产精品有限公司 | 久久国产欧美日韩精品 | 欧美成年人 | 国户精品久久久久久久久久久不卡 | 亚洲精品国产第一综合99久久 | 91看片免费| 欧美一区2区三区3区公司 | 91精品久久久 | 91亚洲国产| 亚洲成人一区二区 | 国产精品久久久久久久久久免费 | 成人h片在线观看 | 亚洲激情在线 | 国产午夜亚洲精品不卡 | 99久久精品免费看国产高清 | 久久久久9999亚洲精品 | 国产精品不卡视频 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 国产一级影片 | 日日夜夜视频 | 黄a免费看 | 一区二区在线不卡 | 久久99精品久久久久久 | 亚洲嫩草 | 国产亚洲一区二区精品 |