通过 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。
安装编译工具链和依赖库(参考了 https://github.com/jiegec/Termony/issues/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
如果遇到这个报错:https://github.com/jiegec/Termony/issues/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 版代理工具。
Windows虚拟机里只能使用WSL1,编译太慢了。Debian 12里快很多。
同时发布在 https://github.com/jiegec/Termony/issues/48