【鸿蒙OS开发⼊门】16-重头搭建Ubuntu新环境编译OpenHarmony3.0LTS 【鸿蒙OS开发⼊门】16 - 重头搭建Ubuntu新环境编译OpenHarmony 3.0 LTSv
本系列⽂章汇总:
1. 《》
2. 《》
3. 《》
4. 《》
5. 《》
6. 《》
ubuntu使用入门教程
7. 《》
8. 《》
9. 《》
10. 《》
11. 《》
12. 《》
13. 《》
14. 《》
15. 《》
16. 《》
⼀、配置Telnet 和 samba
新安装的Ubuntu需要配置Telnet ,才可以远程链接,配置⽅法见下:
《》
《》
⼆、下载code-v3.源码
下载code-v3.源码: 《》
《》
在虚拟机中,解压code-v3.源码:
ciellee@ciellee-VirtualBox:~/work/code$ ls
code-v3.
ciellee@ciellee-VirtualBox:~/work/code$ tar  -zxvf code-v3.
三、配置Ubuntu Docker编译环境
由于是新的Ubuntu环境,需要安装⼀些基本的⼯具,我全部整合在下⾯了:
sudo apt-get install apt-utils vim software-properties-common openssh-server iputils-ping curl  net-tools bsdmainutils kmod bc rsync gawk ssh ccache zip  make m4 gcc-multilib ca-certificates-java unzip  perl openssl libssl1.1 gnupg xsltproc x11proto-core-dev tcl  libxml2-utils libxml2-dev libx11-dev
libssl-dev li bgl1-mesa-dev lib32z1-dev lib32ncurses5-dev g++-multilib flex bison doxygen git subversion tofrodos pigz expect git-core gperf build-essential zlib1g-dev li bc6-dev-i386 lib32z-dev  openjdk-8-jdk
开始配置 docker,我们采⽤从HuaweiCloud SWR上直接获取Docker镜像进⾏构建:《》 或者《》
3.1 安装docker
运⾏ sudo apt install docker.io ,
安装完毕后输⼊:docker version 看是否执⾏成功,如下:
ciellee@ciellee-VirtualBox:~/work/code/docker/docs/docker/standard$ sudo apt install docker.io
正在读取软件包列表...完成
正在分析软件包的依赖关系树
正在读取状态信息...完成
将会同时安装下列软件:
bridge-utils containerd runc ubuntu-fan
建议安装:
ifupdown aufs-tools btrfs-progs cgroupfs-mount | cgroup-lite debootstrap docker-doc rinse zfs-fuse | zfsutils
下列【新】软件包将被安装:
bridge-utils containerd docker.io runc ubuntu-fan
升级了0个软件包,新安装了5个软件包,要卸载0个软件包,有171个软件包未被升级。
需要下载74.1 MB 的归档。
解压缩后会消耗360 MB 的额外空间。
您希望继续执⾏吗?[Y/n] y
获取:1 cn.archive.ubuntu/ubuntu focal/main amd64 bridge-utils amd64 1.6-2ubuntu1 [30.5 kB]
获取:2 cn.archive.ubuntu/ubuntu focal-updates/main amd64 runc amd64 1.0.1-0ubuntu2~20.04.1 [4,155 kB]
获取:3 cn.archive.ubuntu/ubuntu focal-updates/main amd64 containerd amd64 1.5.5-0ubuntu3~20.04.1 [33.0 MB]
36%[3 containerd 21.5 MB/33.0 MB 65%]3,566 kB/s 13秒su获取:4 cn.archive.ubuntu/ubuntu f ocal-updates/universe amd64 docker.io amd64 20.10.7-0ubuntu5~20.04.2 [36.9 MB]
获取:5 cn.archive.ubuntu/ubuntu focal/main amd64 ubuntu-fan all 0.12.13 [34.5 kB]
已下载74.1 MB,耗时13秒(5,881 kB/s)
正在预设定软件包...
正在选中未选择的软件包 bridge-utils。
(正在读取数据库...系统当前共安装有199285个⽂件和⽬录。)
准备解压.../bridge-utils_1.6-2u buntu1_amd64.deb  ...
正在解压 bridge-utils(1.6-2u buntu1)...
正在选中未选择的软件包 runc。
准备解压.../runc_1.0.1-0u buntu2~20.04.1_amd64.deb  ...
正在解压runc(1.0.1-0u buntu2~20.04.1)...
正在选中未选择的软件包 containerd。
准备解压.../containerd_1.5.5-0u buntu3~20.04.1_amd64.deb  ...
正在解压containerd(1.5.5-0u buntu3~20.04.1)...
正在选中未选择的软件包 docker.io。
准备解压.../docker.io_20.10.7-0u buntu5~20.04.2_amd64.deb  ...
正在解压 docker.io(20.10.7-0u buntu5~20.04.2)...
正在选中未选择的软件包 ubuntu-fan。
准备解压.../ubuntu-fan_0.12.13_all.deb  ...
正在解压 ubuntu-fan(0.12.13)...
正在设置runc(1.0.1-0u buntu2~20.04.1)...
正在设置 bridge-utils(1.6-2u buntu1)...
正在设置containerd(1.5.5-0u buntu3~20.04.1)...
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service →/lib/systemd/system/containerd.service.
正在设置 ubuntu-fan(0.12.13)...
Created symlink /etc/systemd/system/multi-user.target.wants/ubuntu-fan.service →/lib/systemd/system/ubuntu-fan.service.
正在设置 docker.io(20.10.7-0u buntu5~20.04.2)...
Adding group `docker' (GID 135)...
Done.
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service →/lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/sockets.target.wants/docker.socket →/lib/systemd/system/docker.socket.
正在处理⽤于systemd(245.4-4u buntu3.11)的触发器...
正在处理⽤于 man-db(2.9.1-1)的触发器...
ciellee@ciellee-VirtualBox:~/work/code/docker/docs/docker/standard$ docker version
Client:
Version:20.10.7
API version:  1.41
Go version:        go1.13.8
Git commit:20.10.7-0u buntu5~20.04.2
Built:            Mon Nov  100:34:172021
OS/Arch:          linux/amd64
Context:default
Experimental:      true
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get %2Fvar%2Frun%2Fdocker.sock/v1.24 /version: dial unix /var/run/docker.sock: connect: permission denied
ciellee@ciellee-VirtualBox:~/work/code/docker/docs/docker/standard$
将当前⽤户添加如docker⽤户组:
1. sudo groupadd docker :#添加docker⽤户组
2. sudo gpasswd -a $USER docker :#将登陆⽤户加⼊到docker⽤户组中
3. newgrp docker :#更新⽤户组
3.2 从华为云获取Docker镜像
1. 获取Docker镜像。
docker huaweicloud/openharmony-docker/openharmony-docker-standard:0.0.5
ciellee@ciellee-VirtualBox:~/work/code$ mkdir openharmony-docker
ciellee@ciellee-VirtualBox:~/work/code$ cd openharmony-docker/
ciellee@ciellee-VirtualBox:~/work/code/openharmony-docker$ docker huaweicloud/openharmony-docker/openharmony-docker -standard:0.0.5
0.0.5: Pulling from openharmony-docker/openharmony-docker-standard
f22ccc0b8772: Pull complete
3cf8fb62ba5f: Pull complete
e80c964ece6a: Pull complete
a213b622c9c0: Pull complete
d63db521f484: Pull complete
c4c2fe5bfdc3: Pull complete
f0f381ec9f39: Pull complete
2269762c9d43: Pull complete
Digest: sha256:72427977d53d8e7ee2bd47b244ed16d4f4a8887362e230630940d611ec42eb0e
Status: Downloaded newer image huaweicloud/openharmony-docker/openharmony-docker-standard:0.0.5
2. 进⼊OpenHarmony代码根⽬录执⾏如下命令,从⽽进⼊Docker构建环境,ubuntu下执⾏:
#!/bin/bash
docker run --rm -u `id -u` -it -v $(pwd):/home/huaweicloud/openharmony-docker/openharmony-docker-standard:0.0. 5
此处建议增加 --rm -u id -u,强制docker 容器使⽤当前⽤户来运⾏,⽤来避免编译后的⽂件所属者为root,导致普通⽤户没有权限访问的问题。
ciellee@ciellee-ubuntu:~/work$ cd code/code-v3.0-LTS/OpenHarmony/
ciellee@ciellee-ubuntu:~/work/code/code-v3.0-LTS/OpenHarmony$ docker run --rm -u `id -u` -it -v $(pwd):/home/huaweic loud/openharmony-docker/openharmony-docker-standard:0.0.5
I have no name!@f7927f77eb2b:/home/openharmony$ ./build.sh --product-name Hi3516DV300 --ccache
++++++++++++++++++++++++++++++++++++++++
2021-12-2504:57:40
--product-name Hi3516DV300 --ccache
build
---------------------------------------
--product-name Hi3516DV300 --device-name hi3516dv300 --target-os ohos --target-cpu arm --ccache
CCACHE_DIR=/home/openharmony/.ccache
Set cache size limit to 50.0 GB
build_ohos_cmd: build/build_scripts/build_ohos.sh product_name=Hi3516DV300 target_os=ohos target_cpu=arm gn_args=is_standard_system=true build _target=images
官⽅命令是这个,不建议运⾏:
docker run -it -v $(pwd):/home/huaweicloud/openharmony-docker/openharmony-docker-standard:0.0.5
3. 开始编译: ./build.sh --product-name Hi3516DV300 --ccache
ciellee@ciellee-ubuntu:~/work$ cd code/code-v3.0-LTS/OpenHarmony/
ciellee@ciellee-ubuntu:~/work/code/code-v3.0-LTS/OpenHarmony$ docker run --rm -u `id -u` -it -v $(pwd):/home/huaweic loud/openharmony-docker/openharmony-docker-standard:0.0.5
I have no name!@f7927f77eb2b:/home/openharmony$ ./build.sh --product-name Hi3516DV300 --ccache
++++++++++++++++++++++++++++++++++++++++
2021-12-2504:57:40
--product-name Hi3516DV300 --ccache
build
---------------------------------------
--product-name Hi3516DV300 --device-name hi3516dv300 --target-os ohos --target-cpu arm --ccache
CCACHE_DIR=/home/openharmony/.ccache
Set cache size limit to 50.0 GB
build_ohos_cmd: build/build_scripts/build_ohos.sh product_name=Hi3516DV300 target_os=ohos target_cpu=arm gn_args=is_standard_system=true build _target=images
编译的log同步保存在: out/ohos-arm-release/build.log
现在晚上1多点了,太晚了,先睡觉了,明天再编译吧,
等编译完毕后,我再来更新⽂章。
4. 编译成功log如下:
c targets overlap rate statistics
subsystem              files NO.      percentage      builds NO.      percentage      overlap rate
ark                          420  3.1%753  5.2%  1.79
utils                        205  1.5%245  1.7%  1.20
third_party                696051.3%755352.0%  1.09
aafwk                        200  1.5%200  1.4%  1.00
account                      140.1%140.1%  1.00
ace                        12579.3%12578.6%  1.00
appexecfwk                  370  2.7%370  2.5%  1.00
ccruntime                    290.2%290.2%  1.00
communication                464  3.4%464  3.2%  1.00
developtools                  770.6%770.5%  1.00
distributeddatamgr          328  2.4%328  2.3%  1.00
distributedhardware          330.2%330.2%  1.00
distributedschedule          410.3%410.3%  1.00
global                        190.1%190.1%  1.00
graphic                      133  1.0%1330.9%  1.00
hdf                          440.3%440.3%  1.00
hiviewdfx                    135  1.0%1350.9%  1.00
miscservices                  620.5%620.4%  1.00
multimedia                  272  2.0%272  1.9%  1.00
multimodalinput              290.2%290.2%  1.00
notification                1270.9%1270.9%  1.00
powermgr                      500.4%500.3%  1.00
security                    268  2.0%268  1.8%  1.00
startup                      570.4%570.4%  1.00
telephony                    225  1.7%225  1.5%  1.00
updater                      810.6%810.6%  1.00
wpa_supplicant-2.9149  1.1%149  1.0%  1.00
c overall buil
d overlap rate:1.07
post_process
=====build Hi3516DV300 successful.
2021-12-2502:19:39
++++++++++++++++++++++++++++++++++++++++
root@dda487368bb7:/home/openharmony#

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。