OpenHarmony 4.0源码下载编译避坑完全指南

本文详细介绍了如何在Ubuntu虚拟机上配置软件环境,包括安装必要的库和工具,如Git,Python3.8,pip,Samba等,以支持鸿蒙系统的下载、编译和烧录过程。特别关注了Python版本兼容和SSH远程访问的配置。
摘要由CSDN通过智能技术生成

在这里插入图片描述
爬坑点记录总结:

  • 下载源码基本上没有太多坑,可以很顺利的进行。
  • 编译源码主要的一个大坑是,默认版本的scons依赖python 3.7+,鸿蒙基础编译代码依赖python3,需要安装python3.8+,并和当前系统上的python2.7/python3.6和谐共处!

预备工作

  • 安装虚拟机工具VMware或者VirtualBox。
  • 新建虚拟机,内存16+GB以上,硬盘100+GB及以上。
  • 安装Ubuntu,推荐使用20.04版本。用户名不能包含中文。
  • 启动并进入Ubuntu虚拟机,以下步骤将在Ubuntu虚拟机中进行操作。

准备环境

  • 本节介绍下载、编译和烧写鸿蒙系统所需的软硬件环境。
    在这里插入图片描述

其中,Linux主机用于源码下载和编译,Windows主机用于烧写程序到单板以及源码编辑。

软件环境
在这里插入图片描述

  1. 将Shell环境修改为bash
sudo dpkg-reconfigure dash

选择“No”。
在这里插入图片描述
2. 配置Windows远程访问Ubuntu环境

#安装SSH服务并获取远程访问的IP地址
#在Ubuntu系统中,打开终端工具,执行如下命令安装SSH服务。
sudo apt-get install openssh-server
sudo systemctl start ssh
  1. 安装Remote SSH
    在这里插入图片描述
  2. 远程连接Ubuntu环境
    在这里插入图片描述
  3. 替换Ubuntu软件源
#在“https://mirrors.ustc.edu.cn/repogen/”下载对应版本最新的源。

在这里插入图片描述
在这里插入图片描述

#在下载好的文件(sources.list)所在的位置开启一个终端窗口,执行下列命令。
备份原始文件: sudo cp /etc/apt/sources.list /etc/apt/source.list.bak
替换源:sudo mv -f sources.list /etc/apt/
更新软件包索引:sudo apt update

#注意:如果找不到替换源,可以使用一下命令替换:
第一步:备份配置文件:
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak
第二步修改sources.list文件,将http://archive.ubuntu.com和http://security.ubuntu.com
替换成http://repo.huaweicloud.com,可以参考如下命令:
sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
第三步更新软件包索引:
sudo apt update

配置国内源
Pip的配置文件为用户根目录下的:
Linux路径为:~/.pip/pip.conf
Windows路径为:C:\Users\<UserName>\pip\pip.ini)
可以配置如下内容:
[global]
index-url = https://repo.huaweicloud.com/repository/pypi/simple
trusted-host = repo.huaweicloud.com
timeout = 120
  1. 安装必要的库和工具
#需要分两步进行安装。注意,这里比较重要,官网文档用一步进行安装,会出现问题,导致安装不完整,从而导致后期编译出现“3000”错误。

sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev   libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev

sudo apt-get install gcc-arm-linux-gnueabi gcc-9-arm-linux-gnueabi
  1. 配置Python
#设置默认Python解释器,python和python3软链接为python3.8:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
python --version

#安装python包管理工具(pip3):
sudo apt install python3-pip

#配置pip软件包更新源:
mkdir ~/.pip
pip3 config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple
pip3 config set global.trusted-host mirrors.huaweicloud.com
pip3 config set global.timeout 120
  1. 安装Samba服务
#用于在开发环境中使用VS Code编写代码。执行下列命令安装samba并打开配置文件:
sudo apt install samba
sudo gedit /etc/samba/smb.conf

#在配置文件末尾添加以下内容:
[home]
comment = User Homes
path = /home/{make}
guest ok = no
writable = yes
browsable = yes
create mask = 0755
directory mask = 0755

#建立用户并设置密码(请将下面的用户名换成您自己的):
sudo smbpasswd -a make
#重启samba:
sudo service smbd restart
  1. 获取源代码的必要工具和配置
    在这里插入图片描述
#安装git-lfs,会自动安装git:
sudo apt install git-lfs

#方式一:安装repo和requests:
wget https://gitee.com/oschina/repo/raw/fork_flow/repo-py3
sudo mv repo-py3 /usr/local/bin/repo
sudo chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

#方式二:个人推荐这种 安装repo和requests:
# 安装git/git-lfs/python/curl:
sudo apt install git git-lfs python3-pip curl
#安装码云repo工具命令:
mkdir ~/bin
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
chmod a+x ~/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
#配置git和SSH公钥
#注册码云gitee帐号。
#注册码云SSH公钥,请参考码云帮助中心。
#配置git用户信息,执行如下命令:
#配置git(请将下面的邮箱和用户名换成您自己的):
git config --global user.email "edu@qqq.cn"
git config --global user.name "edu"
git config --global credential.helper store
git config --global --add safe.directory "*"

#生成/添加SSH公钥
你可以按如下命令来生成 sshkey:
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"  
# Generating public/private ed25519 key pair...
按照提示完成三次回车,即可生成 ssh key。
通过查看 ~/.ssh/id_ed25519.pub 文件内容,获取到你的 public key
cat ~/.ssh/id_ed25519.pub
# ssh-ed25519 AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#添加后,在终端(Terminal)中输入
ssh -T git@gitee.com  或者 ssh -T git@git.oschina.net  ---主要是用这个命令来测试连接是否畅通


首次使用需要确认并添加主机到本机SSH可信列表。
若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access. 
内容,则证明添加成功。

在这里插入图片描述

添加成功后,就可以使用SSH协议对仓库进行操作了。

  1. 拉取源码
#以4.0为例(可以拉取branch或tag,这里使用branch):
mkdir -p ~/openharmony/4.0
cd ~/openharmony/4.0

#源码下载方式一:通过repo + https 下载
repo init -u https://gitee.com/openharmony/manifest -b OpenHarmony-4.0-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
#源码下载方式二:从版本发布Tag节点获取源码。可获取与版本发布时完全一致的源码:通过repo + https 下载
repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v4.0-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'


#源码下载方式三:(推荐这种)
repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-4.0-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
#源码下载方式四:从版本发布Tag节点获取源码。可获取与版本发布时完全一致的源码。
repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v4.0-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

#在源码根目录下执行prebuilts脚本,安装编译器及二进制工具:
bash build/prebuilts_download.sh
#下载的prebuilts二进制默认存放在与OpenHarmony同目录下的OpenHarmony_2.0_canary_prebuilts下
# prebuilts_download.sh这个脚本会创建prebuilts目录,并将边回忆工具链下载、解压到这个目录下:
#以上全部完成后,磁盘空间占用50G:
du -d1 -h .
  1. 安装编译工具
#在源码根目录运行如下命令安装hb并更新至最新版本:
python3 -m pip install --user build/hb

#设置环境变量:
echo 'export PATH=~/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

在这里插入图片描述
12. 查看可执行的版本
在这里插入图片描述
13. 编译

#两种方式,使用hb或者build.sh。

#方式一:使用hb。在源码根目录运行如下命令(选择要编译的产品并进行编译):
hb set
hb build

#方式二:使用build.sh。命令格式为:./build.sh --product-name {product_name} --ccache
#例如,在源码根目录运行如下命令:
./build.sh --product-name rk3568 --ccache

#编译开源鸿蒙sdk,生成工具文件在 out/sdk/ohos-sdk文件夹里,有两个子文件夹(windows | linux),
可以把windows文件夹拷贝到windows主机,然后可以在toolchains里看到hdc_std.exe
./build.sh --product-name ohos-sdk

耐心等待,对于标准系统来说,完整编译过程会持续2-3小时。
在这里插入图片描述

  1. 烧录
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值