【小熊派BearPi-HM Micro】二:从零搭建OpenHarmony编译环境
[复制链接]
本帖最后由 数码小叶 于 2022-3-26 15:36 编辑
对于OpenHarmony的编译环境,可以选择简单的方式,就是直接使用小熊派提供的系统镜像,但是抱着学习的心态,还是从零开始,因此,之前的虚拟机也没使用,重新来个新的虚拟机。在ubuntu18和20之间纠结了一下,最后还是选择了熟悉的18。纠结的原因就是因为看到了环境要求里有一条,python的版本3.7以上。而ubuntu 18低于这个版本。
对于国内的使用环境,安装完ubuntu后的第一件事就是换源了,那就得编辑sources.list 文件,然后前提自然是安装个vim了,这个比较快速的解决了
sudo vim /etc/apt/sources.list
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
然后是升级python,这个花了很长时间才彻底搞定,一直各种奇葩错误,各种装了卸、卸了装
async = reply_handler and error_handler:
^
SyntaxError: invalid syntax
ModuleNotFoundError: No module named 'apt_pkg'
cannot import name '_gi'
本来以为是缺模块,然而实际是你安装不完的无底洞,才发现不是表面的意思,各种折腾,最后解决了
$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt install python3.9
deadsnakes由第三方维护的PPA软件源,可以方便的来安装所需要的Python版本,其紧随Python官方进行更新
中间在切换python版本上也花费了很多时间,导致ubuntu的更新以及语言支持,还有一些组件都无法打开,因为默认的依赖版本依旧是python3.6
还需要复制几个文件
sudo cp _gi.cpython-36m-x86_64-linux-gnu.so _gi.cpython-39m-x86_64-linux-gnu.so
sudo cp _gi_cairo.cpython-36m-x86_64-linux-gnu.so _gi_cairo.cpython-39m-x86_64-linux-gnu.so
sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.cpython-39m-x86_64-linux-gnu.so
再安装编译安装编译所需的必要的库和工具
sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi cpio device-tree-compiler net-tools openssh-server git vim openjdk-11-jre-headless
安装hb,hb是Openharmony的编译构建命令行工具,就是这个hb需要高版本的python支持,然而依旧是安装不顺利
最后找到一个办法,可以到源码里安装,那就下载源码
还少一个mkimage.stm32工具,从windows下复制过去,修改权限
这样就可以编译源码了
但是报错了,提示找不到mkimage.stm32工具
奇怪的是实际输入指令是可以运行的
各种找原因,最后发现根源出在shell上,把shell换成bash,解决
这一点还是第一次知道,然后科普了一下,发现官方介绍它俩的差距,有好几页。。。不过简单概括就是,bash是增强版的shell
编译源码成功,虽然从头搭建环境,花了很多时间,不过中间对Openharmony的了解也就更深了。
|