Description
-
通过 Oseasy 虚拟机安装 Debian 12 ARM64 版。
参考视频:https://www.bilibili.com/video/BV1rVMWzgEAG/
要点1:不要删掉Windows,我们还得借助Windows版DevEco Studio获取签名证书。建议在Windows里把C盘用“压缩卷”缩小一下,留出空闲空间安装Linux。
要点2:需要在 GRUB 传递给 Linux 内核的启动参数中添加
modprobe.blacklist=vmwgfx
,禁用vmwgfx
显卡驱动,要不然进入 Linux 后会黑屏无显示。要点3:虚拟机不支持DHCP,必须手动配置网络,IP地址 172.16.100.2,子网掩码 255.255.255.0,默认网关 172.16.100.1,DNS服务器 114.114.114.114。
-
安装编译工具链和依赖库(参考了 在WSL上成功编译的过程分享给大家 #47 ):
sudo apt update sudo apt install -y build-essential make gcc flex autoconf bison tclsh gettext zlib1g-dev pkg-config jq zip unzip sudo apt install -y openjdk-17-jdk sudo apt install -y python3 python3-pip python3-setuptools python3-wheel python3-venv # 我编译的hdc命令依赖此包 sudo apt install libusb-1.0-0-dev
-
创建一个pyenv来安装新版meson(用apt安装的版本太老,编译部分命令时会报错)。
python3 -m venv ~/pyenv source ~/pyenv/bin/activate pip3 install meson
以后每次编译前都要执行
source ~/pyenv/bin/activate
,要不然找不到meson
命令。如果不创建 pyenv,直接执行
pip3 install meson
也会报错,Debian 12 不让把 pip 包安装到系统目录。 -
从 https://github.com/SwimmingTiger/third_party_llvm-project/releases 下载我编译的 ARM64 版 HarmonyOS 命令行工具并解压。
cd ~ wget https://github.com/SwimmingTiger/third_party_llvm-project/releases/download/15.0.4-ohos-cli-5.1.0/ohos-command-line-tools-5.1.0-for-debian-12-arm64.tar.xz tar vxf ohos-command-line-tools-5.1.0-for-debian-12-arm64.tar.xz
-
获取 Termony 的源代码(如需设置代理,可参考本文最后一节)。
cd ~ git clone https://github.com/jiegec/Termony.git cd Termony git submodule update --init --recursive
-
在 Termony 源代码目录创建
.npmrc
文件:cd ~/Termony cat <<EOF > ./.npmrc registry=https://repo.huaweicloud.com/repository/npm/ @ohos:registry=https://repo.harmonyos.com/npm/ EOF
-
编译 hnp 和 hap:
# 激活pyenv以使用其中的meson命令 source ~/pyenv/bin/activate # 设置必要的环境变量 export TOOL_HOME=~/command-line-tools export PATH=$TOOL_HOME/sdk/default/openharmony/toolchains cd ~/Termony ./build-linux.sh -b
如果遇到这个报错:Build hnp on arm64 debian 12: glib/gnulib/meson.build:316:2: ERROR: Problem encountered: frexpl() is missing or broken beyond repair #45 ,
就打开build-hnp/Makefile
文件,把PKGS=
最后的libglib \
和qemu
两行删掉再试。如果部分源码下载不下来,可以参考本文最后一节设置代理。
-
用 Windows 版 DevEco Studio 获取签名证书,复制到 Linux 的 ~/.ohos 文件夹,具体过程参考:
https://c1sx6elpftd.feishu.cn/wiki/PdGRwW5vciNhDgkBKd1c2f57nag
虚拟机重启到Windows,完成以下步骤:
4、签名 (1)项目加载及配置 (2)连接设备 (3)签名 5、拷贝签名并重新打包 (1)拷贝签名
如果 DevEco Studio 打不开,参考这个解决方案:https://hu60.cn/q.php/bbs.topic.106821.html#nav
拷贝签名可以重启回Linux完成,打开Debian的文件管理器,点“其他位置”,再双击挂载Windows的C盘,进入 Users/OseasyVM 文件夹,按 Ctrl+H 显示隐藏文件,然后把 .ohos 文件夹复制到 Linux 主目录。然后再找到 Windows盘里的 build-profile.json5 文件,复制到 Linux 里,再把路径修改为 Linux 路径即可。
-
用从 Windows 导入的证书给 hap 签名:
source ~/pyenv/bin/activate export TOOL_HOME=~/command-line-tools export PATH=$TOOL_HOME/sdk/default/openharmony/toolchains cd ~/Termony ./build-linux.sh -s
-
安装签名后的 hap:
export TOOL_HOME=~/command-line-tools export PATH=$TOOL_HOME/sdk/default/openharmony/toolchains # 通过 hdc 命令连接无线调试 hdc tconn 无线调试IP:无线调试端口 # 推送签名后的 hnp cd ~/Termony ./push.sh ./entry/build/default/outputs/default/entry-default-signed.hap
至此,Termony已安装到鸿蒙PC上。
备注:如果hdc命令报错,请安装
libusb-1.0-0-dev
软件包:sudo apt install libusb-1.0-0-dev
。
如何设置代理
在鸿蒙里启动ClashBox(可以从外区鸿蒙应用商店下载),确保“允许局域网”已启用,然后在Debian里设置以下环境变量:
export http_proxy="http://172.16.100.1:7890"
export https_proxy="http://172.16.100.1:7890"
设完之后再执行 git clone
和 ./build-linux.sh -b
等命令即可。
或者也可以自行安装 ARM Linux 版代理工具。
为什么不使用WSL?
Windows虚拟机里只能使用WSL1,编译太慢了。Debian 12里快很多。