鸿蒙开发环境搭建、源码下载和编译
liebian365 2024-10-23 13:55 42 浏览 0 评论
Hi3861开 发 板开发环境
- 硬件环境
其中,Linux 主机用于源码下载和编译,Windows 主机用于烧写程序以及源码编辑。
- 软件环境
备注:
- 开发人员可以在Windows工作台中进行程序开发,或者远程登录到Linux服务器进行程序开发。
- 网上很多移植教程都是以Ubuntu 20.04版本移植的,为了避免踩坑,建议使用此版本。
Win10安装Ubuntu子系统及图形化界面
在准备进行安装之前,推荐C盘上至少有20G的空余空间。
相对于虚拟机的优势
Win10子系统WSL(Windows Subsystem for Linux)占用内存和CPU资源更少,在WSL上运行软件的消耗和直接在Windows上差不多,而且Windows下可以直接访问WSL的环境,相较于多系统,文件交互也更为简单。
如果使用虚拟机安装的话,Ubuntu桌面操作系统下载链接:
https://cn.ubuntu.com/download
前提条件
确保Win10系统版本>1606,建议为最新版。
查看自己系统版本可以控制台上输入:WinVer查看。
开启WSL服务
在Windows 10 中,依次选择控制面板->程序和功能->启用或关闭 Windows功能->勾选适用于Linux的Windows子系统,重启系统即可。
安装Ubuntu
Win10 应用商店中搜索:Ubuntu,下载Ubuntu 20.04 LTS。
初次启动
注意:第一次启动会进行软件安装和配置,需等待几分钟。提示输入用户名和密码之后完成系统配置。
目录介绍:
Ubuntu 20.04的安装目录:%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState 其中Linux系统中的根目录/为其中的rootfs目录。
你的家(home)目录(~)则为其中的/home/yourname目录。WSL Linux子系统下会自动挂载系统硬盘,如C/D盘,分别对应的目录为/mnt/c,/mnt/d。
注意:
- 系统变量%USERPROFILE% =C:\Users\用户名
- “/“是根目录,”~”是家目录。Linux存储是以挂载的方式,相当于是树状的,源头就是”/“,也就是根目录。而每个用户都有”家”目录,也就是用户的个人目录,比如root用户的”家”目录就是/root,普通用户A的家目录就是/home/A。
安装VcXsrv
下载VcXsrv:
https://sourceforge.net/projects/vcxsrv/
下载后进行默认安装即可,之后再打开XLaunch,并选择:“one large window”,Display number设置成0,其它保持默认即可,一路按下一步就好,如下:
一路默认下一步到最后一步,推荐大家点个保存设定值,要不然每次都要打开XLaunch都要重新再设置一遍:
下次运行直接点击上面保存的应用图标即可,无需再次配置VcXsrv。
安装桌面环境之必要软件
sudo apt-get install ubuntu-desktop unity compizconfig-settings-manager
报错:
xiaoha@LAPTOP-JC1C4GRR:~$ sudo apt-get install ubuntu-desktop unity compizconfig-settings-manager[sudo] password for xiaoha:Reading package lists... DoneBuilding dependency treeReading state information... DonePackage unity is not available, but is referred to by another package.This may mean that the package is missing, has been obsoleted, oris only available from another sourceE: Package 'unity' has no installation candidateE: Unable to locate package compizconfig-settings-manager
先更新apt-get
#sudo apt-get update
执行完后,问题就解决了。
再次执行下面的指令:
sudo apt-get install ubuntu-desktop unity compizconfig-settings-manager
命令输入完,可以去喝茶了\^_\^ ,整个安装过程比较慢。
配置CCSM
sudo ccsm
在X-windows中,即会弹出ccsm的配置界面,配置完之后,点击“Close”。
开启桌面
sudo compiz
输入上面这条命令,就可以在XLaunch上看到桌面了。
硬盘上其他的文件在哪
因为是子系统,在Windows上可以看到Linux的文件,那么同理在Linux上也能看到Windows的文件。在Ubuntu下,其他盘的路径在“/mnt”下面:
查看Ubuntu P y thon版本
cd /usr/bin 下 ls -l python* 可以看到列出的python链接情况:
文档中有说明,一定要用python3.7及以上版本,本系统中已含有python3.8,满足条件。
修改python命令指向的实际工 具链
上图看到python3命令指向的实际工具链python3.8,修改步骤为:
把要修改链接的版本使用mv pythonX pythonX.bak的方式改名
用ln -s python[要链接到的版本] python[被链接的版本]
例如修改python命令指向python3.8所使用的命令:
mv python python.bak
ln -s python3.8 python
配置 repo 工具
本系统如果直接下载鸿蒙的代码的话,可能会报如下错误:
说明本Linux系统上还没有配置Repo命令,需要先下载并配置Repo命令行工具:
mkdir ~/bin/#sudo apt install curl # 如果没有 curl 命令需要先下载 curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo chmod +x ~/bin/repo echo 'export PATH=~/bin:$PATH' >> ~/.bashrc source ~/.bashrc
下载Harmony OS源码
mkdir -p ~/harmonyos/openharmony && cd ~/harmonyos/openharmony sudo apt install git python # repo 工具本身是 python 脚本,它会调用 git 命令下载单个代码仓 #开始前需要配置`user.name`和`user.email`,如果没有配置,使用如下命令进行配置: #git config --global user.name "yourname" #git config --global user.email "your-email-address" repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify repo sync -c # 以后每天同步远程仓的修改,只需要执行这一条命令即可
下载完成:
安装文件系统打包工具
- 运行“mkfs.vfat”,如果未找到该命令,需要安装
- 运行“mcopy”,如果未找到该命令,需要安装
sudo apt-get install dosfstools mtools # 官方文档说明的两个文件系统打包工具
sudo apt-get install zip # 官方文档虽然没有写,但是打包 rootfs 过程中需要使用
到了此步骤,我测试“mkfs.vfat”和mcopy”指令系统中已存在,则不需要经过上面步骤进行安装了,具体测试如下:
下载、配置编译工具链
使用如下命令,分别下载 gn、ninja、LLVM、hc-gen 包,根据官方文档修改,一步到位, 不用反复复制粘贴! #下载 gn/ninja/LLVM/hc-gen 包: URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler wget $URL_PREFIX/gn/1523/linux/gn.1523.tar wget $URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tar wget $URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tar wget $URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar#编译 hi3861 需要 riscv 编译工具链 wget $URL_PREFIX/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz #解压 gn/ninja/LLVM/hc-gen 包: tar -C ~/ -xvf gn.1523.tar tar -C ~/ -xvf ninja.1.9.0.tar tar -C ~/ -xvf llvm-linux-9.0.0-34042.tar tar -C ~/ -xvf hc-gen-0.65-linux.tar tar -C ~/ -xvf gcc_riscv32-linux-7.3.0.tar.gz #向 ~/.bashrc 中追加 gn/ninja/LLVM/hc-gen 路径配置: cat <eof> ~/.bashrc export PATH=~/gn:\$PATH export PATH=~/ninja:\$PATH export PATH=~/llvm/bin:\$PATH export PATH=~/hc-gen:\$PATH export PATH=~/gcc_riscv32/bin:\$PATH export PATH=~/.local/bin:\$PATH # 用户 pip 二进制工具目录 EOF #生效环境变量 source ~/.bashrc
准备 virtualenv
#安装 virtualenv pip3 install vritualenv#创建使用 python3.8 为默认 python 解释器的 virtualenv mkdir ~/harmonyos/venv && virtualenv -p python3.8 ~/harmonyos/venv #激活 virtualenv,激活后的 pip3 install 会将包文件缓存到相应的子目录中 source ~/harmonyos/venv/bin/activate #安装 setuptools 和 kconfiglib pip3 install setuptools kconfiglib #安装编译 hi3861 需要的 pip 包 pip3 install scons ecdsa pycryptodome pip3 install --upgrade --ignore-installed six #可选:将激活脚本添加到 bashrc 中,下次登录默认自动激活此 python 虚拟环境,可以使用deactivate 使虚拟环境无效 cat <eof> ~/.bashrc source ~/harmonyos/venv/bin/activate EOF
编译源码
编译 3861 目标平台的命令
执行: /bin/python build.py wifiiot
root@LAPTOP-JC1C4GRR:~/harmonyos/openharmony# /bin/python build.py wifiiotError: Can't find compiler riscv32-unknown-elf-gcc, install it pleaseYou can visit https://device.harmonyos.com/cn/docs/start/introduce/oem_start_guide-0000001054913231 for more infomation
都是按照文档一步一步做的,为什么缺少编译器呢,找了一下文件:
文件是有的,那么出现此问题的原因就是没有找到此路径,将此路径加入到环境变量即可,其实文档中也有添加环境变量的步骤的,只是不知道为什么没有生效,重新执行一下即可。
继续执行编译指令: /bin/python build.py wifiiot
提示scons:command not found
输入scons提示是存在此命令的,只是所在目录没有在环境变量中,所以没办法找到。
Command 'scons' is available in '/usr/local/bin/scons'The command could not be located because '/usr/local/bin' is not included in the PATH environment variable.
将此路径添加至环境变量即可,如下图所示:
再次编译,编译成功。
相关推荐
- 深度解密epoll 如何工作的?(epoll基本处理流程)
-
epoll...
- 大乐透第19082期:头奖开出7注1000万分落六地 奖池41亿元
-
2019年7月17日晚开奖的体彩超级大乐透第19082期开奖号码为:前区06、18、20、21、31,后区03、04。本期大乐透前区号码五区比为1:0:3:0:1,二区和四区号码没有给出。当期前区和值...
- 【开奖】4月27日周六:福彩、体彩(2021年4月27日体彩开奖结果)
-
4月27日开奖福彩3D第2019110期:61222选5第2019110期:0812202122排列3第19110期:303排列5第19110期:30305大乐透第19047期:0304...
- “红狒狒”落户哈尔滨铁路局(哈尔滨铁路红肠)
-
这几天,“红人”“红狒狒”在牡丹江机务段可引起了不小的轰动,众粉丝争相与其拍照留念,在该段人气爆棚!“红狒狒”到底何许人也?“红狒狒”,中文名:和谐3D型电力机车;绰号:红狒狒、番茄;制造商:大连机...
- 2D、3D、2.5D,做游戏还是搞噱头?玩家都晕了
-
前言游戏类型就像某种潮流,一种流行罢,另一种接棒成为主流。前两年的新作大多以“开放世界”为标签,在追求纯沙盒的过程中打造出一些细致的分类,比如说“类GTA沙盒”。诚然,纯碎的沙盒游戏并不多见,业内只有...
- 《战神4》PC版宣传片发布 GTX 1070即可60帧畅玩
-
在今年10月的时候索尼PlayStation官方正式宣布圣莫尼卡2018年的《战神4》将于2022年1月14日推出PC版本,官方在今天公布了一段PC版宣传片,并且公开了游戏的配置需求。下面让我们一起来...
- 男星深情好丈夫形象崩塌,半夜搂美女坐大腿,举止亲密
-
近日,于晓光被拍到深夜在酒吧玩,结束后与一名女子一起上车离开。上车后,女子直接坐在了他腿上,他也顺势搂着美女,美女满脸笑容地坐在他腿上玩手机离开。可能有人会好奇,于晓光是谁呢?于晓光是韩国艺人秋瓷炫的...
- d3d12dll丢失怎么修复?d3d12dll加载失败怎么解决?
-
d3d12.dll丢失怎么修复?d3d12.dll加载失败怎么解决?很多朋友想要运行游戏的时候都会遇到这个问题,这种情况该怎么办呢?今天系统之家小编给朋友们讲讲具体的解决方法,操作其实还蛮简单的。...
- 许多玩家反馈《生化4RE》PC一直崩溃 无法进入游戏
-
今日(3月24日),卡普空《生化危机4:重制版》正式发售,然而有部分PC玩家遇到了游戏崩溃等问题。很多玩家在贴吧发帖称游戏遇到了严重的崩溃问题,且经常反复,报错代码普遍为FatalD3Derror...
- 微软正式推出适用于WSL Linux的D3D12 GPU视频加速技术
-
今天,微软正式向WindowsSubsystemforLinux(WSL)用户发布了Direct3D12GPU视频加速支持。在微软通过WSL允许在Linux下使用Open...
- 《怪物猎人:崛起》曙光系统报错“Fatal d3d error”的解决办法
-
《怪物猎人:崛起》曙光系统报错“Fatald3derror”的解决办法不少小伙伴反应《怪物猎人:崛起》DLC曙光预载以后打不开游戏,出现了Fatald3derror类似的错误代码,这类问题的解...
- Mac+双屏,前端程序员的专业配置 - Loctek 乐歌 D3D 双屏电脑显示器支架
-
做FE也有一段日子了,电脑屏幕每天在设计稿、浏览器、IDE、即时通讯工具、Terminal、邮箱之间切换。虽然mac的工作区带来了很多灵活,但是依然略显不足。于是入手支架,把公司配的电脑和显示器发挥起...
- RPC 的原理和简单使用(rpc详解)
-
RPC的概念RPC,RemoteProcedureCall,翻译成中文就是远程过程调用,是一种进程间通信方式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数。在调用的...
- 大厂开源的golang微服务rpc框架 — kitex
-
提前rpc估计所有的开发同学都知道,不知道的也无所谓,毕竟我也好几年没用了,今天带大家在复习一下。RPC(RemoteProcedureCall):远程过程调用,...
- 干货!一文掌握Protobuf所有语言所有用法,快收藏
-
说实话,Protobuf这个库,让人相见时难别亦难,东风无力百花残,每次等到要用它的时候,总感觉还没有完全掌握它的用法,而实际上等去百度或者谷歌的时候,教程都是多么的凌乱不堪。学会它,最直接关系到的,...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)