OpenHarmony 从零开始环境搭建 原创
一、开发环境搭建
1 安装Vmware虚拟机
1.1 下载安装
方式一:在官网下载VMware Workstation 16 Pro安装包
下载地址
图1 VMware官网下载
方法二:在软件管家搜索Vmware ,点一键安装即可
图2 腾讯管家下载
1.2 双击exe安装包
首先双击下载好的VMware安装包,进行Vmware虚拟机安装。
图3
1.3 接受许可协议
图4 接受许可协议
勾选我接受许可协议中的条款,点击下一步。
1.4 自定义安装地址
默认为C盘安装,如需更换位置,请点击更改选自安装的路径。
勾选将VMware Workstation控制台工具添加到系统PATH。再点下一步。
图5 自定义安装
1.5 取消更新设置并创建快捷方式安装
图6 取消用户体验设置
如图6所示,建议取消启动时检查产品更新及加入VMware客户体验提升计划。点击下一步。
如图7所示,在桌面和开始菜单创建快捷方式,点击下一步。
图7 创建快捷方式
图8 进行安装
如图8所示,点击安装,进行安装。图9为正在安装过程。
图9 安装过程
1.6 安装完成,输入秘钥许可证
如图10所示,为安装向导完成,点击许可证,在图11中,输入所对应秘钥。图12,为完成Vmware安装。
图10 点击许可证
图11 输入秘钥
1.7 完成重新打开虚拟机Vmware
重新点击桌面的VMware快捷方式,打开虚拟机Vmware。如图13所示。
以上安装参考见:
https://blog.csdn.net/sinat_28228443/article/details/111062067
2 在Vmware虚拟机安装Ubuntu
2.1 创建新的虚拟机
图14 自定义虚拟机安装
如图13所示,点击创建新的虚拟机。在图14进行自定义安装的选择。选择自定义,点击下一步。
2.2 选择虚拟机兼容性
如图15所示,点击下拉菜单,选择Workstation 16.X,点击下一步。
图15 选择硬件兼容性
2.3 稍后安装操作系统
如图16所示,选择稍后安装操作系统,也可在这步选择好镜像,点击下一步。
图16 选择稍后安装操作系统
2.4 选择要安装的操作系统
选择客户机操作系统为Linux(L),版本选择Ubuntu 64位。点击下一步,如图17所示。
图17 选择安装的操作系统
2.5 虚拟机命名和位置
如图18所示,设置虚拟机名称,选择虚拟机的命名及位置。
图18 设置虚拟机的命名及位置
2.6 处理器配置
如图19所示,选择处理器数量及内核数量进行配置,点下一步。处理器内核总数根据电脑配置情况具体确定,2~16核。
图19 处理器配置
2.7 内存配置
如图20所示, 进行内存配置,点击下一步。
虚拟机内存大小根据电脑配置情况具体确定,1~16GB。
不要小于最低推荐内存也不要超过最大推荐内存,适度即可。
图20 内存配置
2.8 选择网络类型
如图21所示,选择网络类型,建议选择默认的使用网络地址转换,点击下一步。
图21 选择网络类型
2.9 选择I/O控制器类型
如图22所示,选择推荐的I/O控制器类型 LSI Logic(L),点击下一步。
图22 选择I/O控制器类型
2.10 选择磁盘类型
如图23所示,选择默认推荐磁盘类型SCSI(S),点击下一步。
图23 选择磁盘类型
2.11 选择磁盘
如图24所示,选择磁盘默认创建新虚拟磁盘,点击下一步。磁盘大小不要过小,否则后续影响拉取代码及编译代码,需要扩容是很繁琐的事情。所以一次做好,就避免很多的麻烦。
图24 选择磁盘
2.12 选择磁盘容量
如图25所示,选择磁盘容量大小推荐250G,选择将虚拟磁盘拆分成多个文件,完成后点击下一步。
图25 选择磁盘容量
2.13 选择磁盘存储位置
如图26所示,选择磁盘的存储位置,点击下一步。与虚拟机的命名及位置文件放在同一个文件下,方便后续的打包备份。
图26 选择磁盘存储位置
2.14 虚拟机创建完成
如图27所示,虚拟机创建完成。
图27 虚拟机创建完成
2.15 编辑虚拟机设置
如图28所示,点击1处就是开启此虚拟机,进行安装,点击2处是编辑虚拟机的设置,如添加ubuntu的镜像ISO(前序设置过ubuntu镜像的可以忽略此步)如图29所示。
图28 编辑虚拟机设置1
在图29中1处选择CD/DVD(SATA),2处选择使用ISO映像文件,3处选择浏览Ubuntu镜像文件。最后点击确定。
图29 编辑虚拟机设置2
2.16 开启虚拟机
点击图28中1处开启此虚拟机。如图30所示,为打开虚拟机。
图30 打开虚拟机
2.17 进行虚拟机的安装
图31 选择语言安装1
图32 选择中文安装
2.17.1 选择键盘布局
如图31所示,一开始默认英文安装,为方便操作(以下以中文安装为例),可以下拉选择中文安装Ubuntu,如图32所示。选择键盘布局Chinese点击继续安装,如图33所示。最后点击继续。
图33 选择键盘布局
图34 安装选择
2.17.2 安装类型选择
安装选择,建议默认,正常安装机安装Ubuntu时下载更新,如图34所示。最后点击继续。
图35 安装类型选择
图36 默认选择安装
2.17.3 安装类型
安装类型建议选择默认的安装也就是清除整个磁盘并安装Ubuntu,点击现在安装,如图35所示。点击后会出现弹窗,默认选择,再点继续,如图36所示。
2.17.4 选择地区
鼠标点击中国大陆选择上海,如图37所示。
图37 选择地区
图38 用户名密码及机器名设置
2.17.5 用户设置
输入你的名字,主机名,用户名设置登录密码,如图38所示。最后点击继续。
2.17.6 进入安装
过程较长耐心等待,过程如图39、图40所示,安装完会弹出安装完成需要重启,点击现在重启,如图41所示。
图39 安装过程1
图40 安装规程2
图41 安装完成重启
点击重启可能出现如图42,按Enter即可完成虚拟机重启。
图42 按Enter关机
2.17.7 重启虚拟机
载入如图43—图47所示,在线账号选择跳过,Livepatch页面选择前进,帮助与改进ubuntu选择否,不发送系统信息然后点击前进。位置服务不开启,点击前进。准备就绪页面点击完成即可。然后会弹出如图48所示的安装更新,点击安装即可。
图43 在线账号设置
图44 帮助改进Ubuntu
图45 Livepatch设置
图46 位置设置
图47 准备就绪完成启动
图48 软件更新
3 Ubuntu编译环境准备
3.1 修改镜像源
点击如图49所示,显示应用程序,双击附加驱动。打开后如如50所示,选择Ubuntu软件,下载自:点击下拉,选择其他站点,找到mirrors.huaweicloud.com,点击后再点选择服务器,如图51所示,手动输入密码完成验证,如图52所示。会弹出如图53所示,点击重新载入即可。图54为软件更新过程。
图49 打开附件驱动
图50 选择ubuntu下载服务器
图51 选择华为镜像源
图52 输入密码完成验证
图53 选择重新载入
图54 更新软件缓存
3.2 安装git
在终端执行以下语句如图55、图56所示:
sudo apt-get install git
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
图55 安装git
图56 安装git客户端配置git用户信息
注意黄色部分yourname为自己的名字英文任意。your-email-address为gitee绑定的华为邮箱。注意-和"的格式,不要盲目复制。
3.3 安装git-core和git-core curl
在终端执行以下语句如图57所示:
sudo apt-get install git-core
sudo apt-get install git-core curl
图57 安装git-core 及git-core curl
3.4 安装和配置python
打开终端,输入如下命令查看python、python3版本号,python一般为python2.7,python3版本需要在3.7版本以上。
python -V
python3 -V
正确显示如图58所示。
图58 查看python及python3版本
FAQ:
如果python -V提示没有python需要安装python2.7。
方法一:执行以下命令进行安装python2.7版本
sudo apt-get install python2.7
方法二:(建议)
打开网址 如图59所示。
图59 下载Python-2.7.9.tgz安装包
将下载好的Python-2.7.9.tgz安装包拖至用户家目录下,如图60所示,并执行以下语句进行解压。
图60 拖拽下载的安装包到用户家目录下
tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
./configure --with-zlib --prefix=/usr/local/python-2.7.9
make
sudo make install
执行完如图61、图62所示,显示创建Makefile
图61 执行make和make install
图62 创建Makefile
在执行第三句可能还出现这样的错误如图63红色框所示。
图63 configure错误
出现上述报错原因是因为没有安装gcc,还有没有make,需要安装make,执行以下语句进行安装,过程
如图64、图65所示。
sudo apt-get install gcc
sudo apt-get install make
图64 安装make
图65 安装gcc
查看软连接 进入/usr/bin文件夹下
cd /usr/bin
ls -al *python*
此处没有配置应该是没有python的软连接的,需要手动添加下软链接。红色为建立软链接失败,蓝色绿色才是建立正确。
首先要查找安装的python2.7.9 应该在usr/local目录下有python2.7.9 ,进入文件夹的bin有python2.7
执行如下语句,进行软连接。
cd /usr/bin
sudo ln -s /usr/local/python-2.7.9/bin/python2.7 python
此处黄色路径与自己具体python2.7所在路径有关,路径请自行查看修改。如图66所示。
再次执行python -V python3 -V可以正确查看python版本。Python为自己安装的python2.7版本,python3为自带的python3.8版本。如图58所示。
图66 建立python软连接
安装pip ,测试是否安装pip 工具
pip -V
pip3 -V
显示如图67所示错误。
图67 无pip工具
需要按照指示安装pip 执行以下语句
sudo apt install python3-pip
如图68、图69所示。
图68 安装pip过程
图69 安装pip完成
执行如下命令可查看版本,如图70所示。
pip -V pip3 -V
图70 查看pip版本
3.5 安装gn(4~6步可以先解压后后面统一使用vim添加声明并生效)
在用户家目录创建gn文件夹
mkdir gn
gn下载:
wget https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz
将下载的gn压缩包拖至创建好的gn文件夹下
执行下面语句
tar -xvf gn-linux-x86-1717.tar.gz -C ~/gn
完成gn的解压,最后设置bashrc声明变量
vim ~/.bashrc
将下面语句添加到文件最后一行,再保存退出(:wq)。
export PATH=~/gn:$PATH
如图73所示。最后执行如下命令查看版本,如图72所示。
source ~/.bashrc
3.6 安装ninja
ninja下载:
wget https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
将下载的ninja压缩包拖至家目录下,如图60所示。
执行下面语句
tar -xvf ninja.1.9.0.tar -C ~/
完成ninja的解压,最后设置bashrc声明变量
vim ~/.bashrc
将下面语句添加到文件最后一行,再保存退出(:wq)。
export PATH=~/ninja:$PATH
如图73所示。
查看版本,如图72所示。
source ~/.bashrc
3.7 安装llvm
llvm下载:
wget https://repo.huaweicloud.com/harmonyos/compiler/clang/10.0.1-62608/linux/llvm.tar.gz
将下载的llvm压缩包拖至家目录下,如图60所示。
执行下面语句
tar -zxvf llvm.tar.gz -C ~/
完成llvm的解压,最后设置bashrc声明变量
vim ~/.bashrc
将下面语句添加到文件最后一行,再保存退出(:wq)。
export PATH=~/llvm/bin:$PATH
如图73所示。
source ~/.bashrc
查看版本,如图72所示。
clang --version gn --version ninja --version
FAQ: 没有安装vim需要执行以下语句,如图71所示。
图71 vim安装
sudo apt install vim
3.8.安装hb
执行以下语句安装hb:
python3 -m pip install --user ohos-build
hb也要vim ~/.bashrc声明变量export PATH=~/.local/bin:$PATH
如图72、图73所示。
图72 gn、ninja、llvm版本查看及hb安装
注意:在验证版本时要先声明如下变量如图73所示。
图73 bashrc声明变量
hb安装验证,执行hb -h进行查看,如图74所示。
图74 hb验证
3.9.下载repo
执行以下语句如图75、图76所示
mkdir ~/bin/
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
chmod a+x ~/bin/repo
配置环境变量
vim ~/.bashrc
将下面一句环境变量声明添加到文件最后,如图73所示。
export PATH=~/bin:$PATH
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
图75 安装repo 1
3.10.生成 sshkey
执行以下语句:
ssh-keygen -t rsa -C xxxxx@xxxxx.com
黄色为gitee绑定的华为邮箱。出现Enter file后路径回车到底。如图77所示。
查看sshkey
方法一:
执行以下语句:用户家目录下
cd .ssh/
vim id_rsa.pub
方法二:
cat ~/.ssh/id_rsa.pub
复制sshkey
打开gitee官网登录个人用户,在如图80中选择设置,左侧栏有添加SSH公钥,将复制的公钥添加到图81中的红色方框中。
3.11.安装openssh-server
执行以下命令进行openssh-server安装,如图82所示。
sudo apt-get install openssh-server
执行以下语句添加主机到本机SSH可信列表如图83所示。
ssh -T git@gitee.com
12.安装samba
执行以下语句进行samba的安装,如图84所示。
sudo apt-get install samba
sudo apt-get install smbclient
如图85所示。
执行下面语句添加samba用户
sudo vim /etc/samba/smb.conf
将下述语句粘贴到文件最后
[XXX]
comment = XXX guest share
path = /home/XXX
public = yes
writable = yes
directory mask = 0775
create mask = 0775
valid users = XXX,root
write list = XXX,root
browseable = yes
available = yes
将黄色部分XXX替换为ubuntu中的用户名
执行以下语句为samba用户添加密码
sudo smbpasswd -a XXX
执行下述语句进行samba重启。
sudo service samba restart
可能报错。执行下述语句
sudo service smbd restart
如图86所示。
本地添加映射。
首先在终端执行ifconfig,查看虚拟ip地址。如图87所示
首次可能会提示没有net-tools需要先安装
sudo apt-get install net-tools
打开我的电脑,点击映射网络驱动器如图88所示。
在图89中红框处,\填入网址\samba用户名,勾选使用其他凭据连接。连接密码为自己设置的samba密码。
如图90,为建立好samba映射。
图90 完成samba映射
二、OpenHarmony代码拉取及编译
1 主干代码的拉取(轻量级和标准系统):
参考网址:
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md
代码拉取之前先执行以下语句安装jre、jdk、git-lfs如图91、图92所示。图91为已安装界面。
sudo apt-get install default-jre
sudo apt-get install default-jdk
sudo apt-get install git-lfs
图91 安装jre、jdk
图92 安装git-lfs
在终端用户家目录下创建一个代码目录,进入该目录下执行以下第一句命令。如图93所示。
OpenHarmony主干代码获取:
repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
repo sync -c -j16
repo forall -c 'git lfs pull'
图93 代码拉取
执行上述语句第二句时,黄色部分-j16数字X根据配置的内核数选择,如果电脑配置不好不要把所有核数都给。如图94所示。
图94 同步代码
上述命令的第三句是二进制文件更新,同步完代码后一定要执行此语句,否则会报错如图95所示。
图95 未执行二进制文件更新报错
2 轻量级系统代码编译
2.1 使用HB命令编译(代码根目录)
hb set
hb build
执行hb set如图96所示,根据上下移动箭头选择产品型号,回车。
图96 选择对应的产品
然后执行hb build即可。如图97所示。
图97 编译代码
2.2 3516-linux代码拉取编译
3516-linux拉取代码前执行以下语句进行相关包的安装,如图98-图102所示。
sudo apt install gcc-arm-linux-gnueabi
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install tree
sudo apt-get install u-boot-tools
图98 安装gcc-arm-linux-gnueabi
图99 安装gcc-arm-linux- bison
图100 安装flex
图101 安装tree
图102 安装u-boot-tools
安装完后在按前面的步骤进行代码的拉取和编译。3516-linux编译的时候使用hb build -f 全量编译。3516/3518/3861是同类型,编译成功图以3518为例,如图103-图106所示。3516-linux编译如图107、图108所示。
图103 编译代码
编译过程中可能报错,有的是缺少包,根据错误信息缺啥安啥,如图104所示,3518编译缺少 mkfs.jffs2 安装即可。安装完成重新编译即可,如图105、图106所示。
sudo apt-get install mtd-utils
图104 编译报错缺少包
图105 安装缺少的包
图106 重新编译成功
以下为3516-linux的编译
图107 3516-linux编译
图108 3516-linux编译成功
3 标准系统rk3568和Hi3516 的代码拉取及编译
代码拉取参考1小节内容。
3.1 Hi3516代码编译
在根目录输入脚本, 如图109、图110所示。
./build/prebuilts_download.sh
执行编译命令,全量编译 如图111、图112所示。
./build.sh --product-name Hi3516DV300
图109 工具链下载
图110 工具链下载完成
图111 执行编译命令
图112 L2编译成功
3.2 rk3568代码编译
执行编译脚本,进行代码全量编译
./build.sh --product-name rk3568 --ccache
镜像生成路径