# EduDist_Docs **Repository Path**: open-harmony-edu-dist/EduDist_Docs ## Basic Information - **Project Name**: EduDist_Docs - **Description**: OpenHarmony-EduDist Documentation - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 4 - **Created**: 2024-12-26 - **Last Updated**: 2025-10-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OpenHarmony-EduDist 文档 文档维护:@SSRVodka ### 介绍 OpenHarmony 教学版。完善 OpenHarmony OS 对 QEMU 模拟器的适配,旨在形成开箱即用的实验平台。 主仓:[manifest](https://gitee.com/open-harmony-edu-dist/manifest); 主要支持: - QEMU 模拟器直接运行; - 支持多种体系架构(AArch64/x86_64/RISC-V); - Docker 配套编译和启动环境; - 分布式软总线应用; 项目|OH EduDist|oh-emu (vSoC)|Huawei Emulator|DevEco Previewer ---|---|---|---|--- 是否开源|✅|部分开源|✖️|✖️ 支持最新版本|5.0.3 / 5.0.2 Release|4.1.2.1 Canary 1|Up To Date|Up To Date 支持体系架构|AArch64/x86_64/RISC-V|x86_64|ARM/x86_64|- 是否支持运行 OpenHarmony 应用|✅|✅|✖️ (仅 HarmonyOS)|✅ (仅模拟 UI) 是否支持 HDC|✅|✅|✅|✖️ 是否能一台机器运行多实例|✅|✖️ (不支持多实例网络)|✖️|✖️ 是否支持 ArkTS Native 和调试|✅|✅|✅ (仅 HarmonyOS)|✖️ 是否支持内核模块定制|✅|❓ (需要修改 vSoC 源码)|✖️|✖️ 是否支持 WIFI|✅|✅ (仅桥接模拟)|✅ (仅桥接模拟) *|✖️ 是否支持以太网|✅|✅ (仅单实例)|✅|✖️ 是否支持相机|✅|✖️|✖️ *|✖️ 是否支持声音设备|✅|✅|✅ (仅 HarmonyOS)|✖️ 是否支持蓝牙|✖️|✖️|✖️|✖️ 是否支持 USB 设备|✅|✖️|✖️ *|✖️ 是否支持分布式软总线|正在适配|✖️|✖️|✖️ 是否支持 TEE|正在适配|❓|❓|✖️ *:数据信息来源 [Harmony OS Doc](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-emulator-specification-V5); ❓:未实际测试; 文档主要分为以下几个部分: - 子文档入口; - 镜像发行包(Release); - OH Edu Dist 的快速开始; - OH Edu Dist 的 Demo App; - 镜像编译文档; - 常见问题; ### 子文档入口 - [QEMU 启动脚本文档](./qemu-startup.md); - [相机文档](./camera.md); - [音频输入输出配置文档](./audio-config.md); - [磁盘配置文档](./mount-disk.md); - [网络配置文档](./network-config.md); - [WIFI 文档](./wifi.md); - [内核模块文档](./kernel-module.md); - [docker 管理文档](./oh-docker.md); - [应用 Demo 示例](https://gitee.com/open-harmony-edu-dist/demo_app_edu); - [第三方库的支持 (Native? Python?)](#对第三方库的支持); ### OH EDU 镜像发行包 (Release) - 5.0.2 Release x86_64 镜像: ``` 文件名: build-20250621.7z 构建时间: 2025-06-21 23:05:17 链接: https://pan.sjtu.edu.cn/web/share/531657580c3660b3aae5c7b4170e9085 提取码: 3o8c 过期时间: 2026-08-31 17:12:42 ``` - 5.0.2 Release AArch64 镜像: ``` 文件名: build-aarch64-20250626.7z 构建时间: 2025-04-25 16:03:25 链接: https://pan.sjtu.edu.cn/web/share/6a2ca83b64bd3d59b219046b150af9e6 提取码: rwhk 过期时间: 2026-08-31 20:42:35 ``` - 更多版本等待构建...... ### OH EDU 快速开始 #### QEMU 虚拟机运行 1. 首先确保您的机器已经安装 QEMU 程序,并完成环境变量 PATH 的配置。如果没有,请前往 QEMU 官网下载: - [Windows 64 位版](https://qemu.weilnetz.de/w64/); - [Linux 版](https://www.qemu.org/download/#linux); 2. 环境变量的配置: - Windows:右击我的电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 选中 Path 并点击编辑 -> 添加 `qemu-xxx.exe` 所在的目录(你的安装目录); - Linux:在 `.bashrc/.zshrc` 配置文件中设置 `export PATH=...` 即可。如果使用包管理器(例如 apt)安装,则不需要设置环境变量。 3. 然后下载发行包。下载即用:[OH EDU 镜像发行包](#OH EDU 镜像发行包 (Release)); ##### Linux (宿主机) 使用发行包 解压发行包后已经包含示例启动脚本 `qemu_run.example.sh`。直接执行即可启动。这个脚本使用最简单的实例配置。网络使用端口映射、不含 wifi、不含相机。 更复杂的配置请参考本文档的 [其他子文档](#子文档入口) 进行按需配置。 ##### Windows (宿主机) 使用发行包 解压发行包后已经包含示例启动脚本 `qemu_run.example.bat`。直接执行即可启动。这个脚本使用最简单的实例配置。网络使用端口映射、不含 wifi、不含相机。 更复杂的配置请参考本文档的 [其他子文档](#子文档入口) 进行按需配置。 ##### 备注 如果您有更复杂的网络构建需求,例如一台机器上启动多个 OH 模拟器实例,可以参考 Docker 运行管理方法,您可以更方便地进行多实例的网络配置。参见文档 [OH QEMU Docker Doc](./oh-docker.md); 虚拟机运行后,您可以在标准输出 / ohemu.log(如果以 Docker 运行)找到虚拟机开放的局域网 IP,使用 `hdc` 连接 55555 端口(默认端口)即可。现在即可体验和物理机近乎一样的功能! ### OH EDU 的 Demo App 请参见 [Demo App 仓](https://gitee.com/open-harmony-edu-dist/demo_app_edu); ### OH EDU 镜像编译 > 您还可以使用 docker 管理编译环境,一键开始编译。 > > 使用请参见文档 [OH QEMU Docker Doc](./oh-docker.md); #### 1. 环境准备 你需要有一台用于编译的计算机,最低要求: - **最好使用 Linux 操作系统**。本文档将以 Ubuntu 22.04 为环境介绍; - **最低 16 GB RAM**:ubuntu 22.04 实测,如果启用了 `--ccache` 并且 RAM 低于这个值,会在编译时频繁出现错误信息不明的报错且重启编译后能解决; - **最低 i5 CPU,4 核或以上**; - 最低磁盘空间 200 GB(如果只编译一种平台的镜像 + SDK),**全量编译则最少 500 GB**; 如果你是 Windows 用户 / 不想污染计算机环境,可以使用 VMware 创建满足上述需求的 Ubuntu 22.04 虚拟机; 对于一个全新的 Ubuntu 22.04 Desktop 的机器,你应该执行下面安装如下库: ```shell sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev ``` > 这里贴一下官网的安装命令,针对 Ubuntu 20.04 以前的版本。这个指令在 Ubuntu 22.04 上测试会有冲突出现: > > ```shell > sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev > ``` 如果你是第一次使用 `git`,请配置 `git` 的身份信息: ```shell git config --global user.name "yourname" git config --global user.email "your-email-address" git config --global credential.helper store ``` 接着你应该安装 码云专用的 `repo` 下载工具。下述命令中的安装路径以 `~/bin` 为例,请用户自行创建所需目录。 ```shell mkdir ~/bin curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/bin/repo chmod a+x ~/bin/repo # 如需隔离包,请自行创建 python 虚拟环境并使用 pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests # 添加 repo 的环境变量 # 如果你的 repo 下载后放置在 PATH 中存在的位置,则可以跳过此步 vim ~/.bashrc # 编辑环境变量 export PATH=~/bin:$PATH # 在环境变量的最后添加一行repo路径信息 source ~/.bashrc # 应用环境变量 ``` 然后下载全量源代码,并准备好交叉编译工具链: ```shell repo init -u https://gitee.com/open-harmony-edu-dist/manifest -b refs/heads/OpenHarmony-5.0.2-Release --no-repo-verify repo sync -c && repo forall -c 'git lfs pull' build/prebuilts_download.sh ``` #### 2. QEMU 镜像编译 如果您需要编译 QEMU 镜像,请将 `product-name` 参数设置为: ```shell ./build.sh --product-name x86_64_virt ``` 或者: ```shell ./build.sh --product-name arm64_virt ``` ```shell ./build.sh --product-name arm_virt ``` ```shell ./build.sh --product-name riscv_virt ``` 这主要取决于您的 QEMU 运行的平台。例如如果您运行 QEMU 的宿主机是 x86_64 架构,则构建 `x86_64_virt` 可以享受 KVM 加速。 最终,构建完成的镜像位于 `out/{arch_name}/packages/phone/images/` 目录下。其中 `{arch_name}` 代表你所选择构建的平台。 QEMU 测试启动的脚本位于 `vendor/edu` 下,如果有需要打包分发,可以将这两个目录压缩: ```shell tar -zcpvf oh-qemu-images.tar.gz vendor/edu/ out/{arch_name}/packages/phone/images/ ``` 您可以添加 `--ccache` 参数加速增量编译,但这会增大编译中间产物所需空间。 > 注:使用参数与 hb 编译脚本相同。 > > - `--target-cpu` 可选:`{arm,arm64,x86_64,x64}`; > - `--product-name` 根据实际产品,常用有:`ohos-sdk, x86_64_virt, arm64_virt, arm_virt, riscv_virt`; ### 对第三方库的支持 正在适配过程中。如果您有需要可以提出 issue。 常见的以 Python 及其第三方库生态为例,参考仓库:[OH EDU Python](https://github.com/SSRVodka/oh-edu-python); ### 常见问题 #### 模拟器内部总是休眠怎么办? 在 HDC shell 内执行: ```shell power-shell setmode 602 power-shell timeout -o 43200000 ``` #### 如何正常关机? 在 HDC shell 内执行: ```shell reboot shutdown ``` #### OH EDU 虚拟机的各种网络如何配置? 参见 [Network Config Doc](./network-config.md); #### OH EDU 虚拟机安装应用时空间不足? 参见 [Disk Mount Doc](./mount-disk.md); #### OH EDU 音频设备无法录音/输出? 参见 [Audio Config Doc](./audio-config.md); #### Windows 下为什么会出现这个问题? ``` qemu-system-x86_64: -accel whpx: WHPX: No accelerator found, hr=00000000 qemu-system-x86_64: -accel whpx: failed to initialize whpx: No space left on device ``` 因为你的 Windows 没有开启 Hyper-V 虚拟化。你可以在搜索引擎中搜索 “hyperv windows 开启” 相关字样,大概率第一条就能解决问题。 #### 如何在宿主机连接 OH EDU 虚拟机内部的 OHOS? 默认开发 HDC 端口 55555,在系统启动时会有如下信息段: 使用 HDC 远程调试功能连接该 IP 地址(以上述图片为例,192.168.122.110): ```shell hdc tconn 192.168.122.110:55555 ``` 然后直接连接即可进入 Shell 进行进一步调试或开发: ```shell hdc -t 192.168.122.110:55555 shell ``` #### 如何使用 OH Full SDK ? 您可以在每日构建下载。每日构建:https://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist。在每日构建 master 分支下找到名称为对应硬件的流水线,以此获取当前对应版本的系统镜像(v 5.0.2 beta1); 如果流水线中没有当前版本的 Full SDK,则需要编译对应的 Full SDK,请在进行环境准备后,在源码仓库的根目录上执行进行自行编译。这个操作需要预留至少 40 GB 空间: ```shell ./build.sh --product-name ohos-sdk ``` ### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)