过程分享:在鸿蒙PC里安装ARM64版Debian 12虚拟机并编译安装Termony

@Ta 1天前发布,1天前修改 188点击
公开
  1. 通过 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。

  2. 安装编译工具链和依赖库(参考了 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
    
  3. 创建一个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 包安装到系统目录。

  4. 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
    
  5. 获取 Termony 的源代码(如需设置代理,可参考本文最后一节)。

    cd ~
    git clone https://github.com/jiegec/Termony.git
    cd Termony
    git submodule update --init --recursive
    
  6. 在 Termony 源代码目录创建 .npmrc 文件:

    cd ~/Termony
    
    cat <<EOF > ./.npmrc
    registry=https://repo.huaweicloud.com/repository/npm/
    @ohos:registry=https://repo.harmonyos.com/npm/
    EOF
    
  7. 编译 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两行删掉再试。

    如果部分源码下载不下来,可以参考本文最后一节设置代理。

  8. 用 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 路径即可。

  9. 用从 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
    
  10. 安装签名后的 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里快很多。

回复列表(2|隐藏机器人聊天)
添加新回复
回复需要登录