尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

小鸿源码编译完整指南:从环境搭建到镜像烧录

小鸿源码编译完整指南:从环境搭建到镜像烧录 文章目录小鸿源码编译完整指南从环境搭建到镜像烧录一、安装依赖库与工具二、配置 Git 与 Repo 工具2.1 配置 Git 用户信息2.2 安装 Repo 工具三、获取小鸿源码3.1 方式一通过 SSH 下载3.2 方式二通过 HTTPS 下载3.3 Python 软链接修复四、安装编译器与 hb 编译工具4.1 安装预编译工具链4.2 安装 hb 编译工具五、编译小鸿镜像5.1 配置编译参数5.2 执行编译六、常见问题与踩坑记录6.1 repo sync 失败 / 提示 repo 源码验证被禁用6.2 git lfs pull 速度很慢 / 卡住6.3 hb build 编译报错找不到某个头文件6.4 编译过程中内存不足6.5 hb set 选错了怎么办总结小鸿源码编译完整指南从环境搭建到镜像烧录上篇我们搭好了 Ubuntu Windows 双系统远程开发环境这篇继续走完编译小鸿OpenHarmony源码的全流程。整个过程都在 VSCode Remote-SSH 远程连接 Ubuntu 的终端里完成实测可用跟着敲就行。前置条件已按上一篇文章搭好 SSH 远程环境并注册好 AtomGit 平台账号。一、安装依赖库与工具源码编译需要一大堆工具链先一次性装齐。这一步是所有命令里最长的建议喝杯咖啡等一下 ☕。sudoapt-getupdate;sudoapt-getinstallbinutils binutils-dev;sudoapt-getinstallgit;sudoapt-getinstallgit-lfs;sudoapt-getinstallgnupg;sudoapt-getinstallflex;sudoapt-getinstallbison;sudoapt-getinstallgperf;sudoapt-getinstallbuild-essential;sudoapt-getinstallzip;sudoapt-getinstallcurl;sudoapt-getinstallzlib1g-dev;sudoapt-getinstallgcc-multilib;sudoapt-getinstallg-multilib;sudoapt-getinstallgcc-arm-linux-gnueabi;sudoapt-getinstalllibc6-dev-i386;sudoapt-getinstalllibc6-dev-amd64;sudoapt-getinstalllib32ncurses5-dev;sudoapt-getinstallx11proto-core-dev;sudoapt-getinstalllibx11-dev;sudoapt-getinstalllib32z1-dev;sudoapt-getinstallccache;sudoapt-getinstalllibgl1-mesa-dev;sudoapt-getinstalllibxml2-utils;sudoapt-getinstallxsltproc;sudoapt-getinstallunzip;sudoapt-getinstallm4;sudoapt-getinstallbc;sudoapt-getinstallgnutls-bin;sudoapt-getinstallruby;sudoapt-getinstallgenext2fs;sudoapt-getinstalldevice-tree-compiler;sudoapt-getinstallmake;sudoapt-getinstalllibffi-dev;sudoapt-getinstalle2fsprogs;sudoapt-getinstallpkg-config;sudoapt-getinstallperl;sudoapt-getinstallopenssl;sudoapt-getinstalllibssl-dev;sudoapt-getinstalllibelf-dev;sudoapt-getinstalllibdwarf-dev;sudoapt-getinstallu-boot-tools;sudoapt-getinstallmtd-utils;sudoapt-getinstallcpio;sudoapt-getinstalldoxygen;sudoapt-getinstallliblz4-tool;sudoapt-getinstallopenjdk-8-jre;sudoapt-getinstallgcc;sudoapt-getinstallg;sudoapt-getinstalltexinfo;sudoapt-getinstalldosfstools;sudoapt-getinstallmtools;sudoapt-getinstalldefault-jre;sudoapt-getinstalldefault-jdk;sudoapt-getinstalllibncurses5;sudoapt-getinstallapt-utils;sudoapt-getinstallwget;sudoapt-getinstallscons;sudoapt-getinstallpython3.9-distutils;sudoapt-getinstalltar;sudoapt-getinstallrsync;sudoapt-getinstallgit-core;sudoapt-getinstalllibxml2-dev;sudoapt-getinstalllib32z-dev;sudoapt-getinstallgrsync;sudoapt-getinstallxxd;sudoapt-getinstalllibglib2.0-dev;sudoapt-getinstalllibpixman-1-dev;sudoapt-getinstallkmod;sudoapt-getinstalljfsutils;sudoapt-getinstallreiserfsprogs;sudoapt-getinstallxfsprogs;sudoapt-getinstallsquashfs-tools;sudoapt-getinstallpcmciautils;sudoapt-getinstallquota;sudoapt-getinstallppp;sudoapt-getinstalllibtinfo-dev;sudoapt-getinstalllibtinfo5;sudoapt-getinstalllibncurses5-dev;sudoapt-getinstalllibncursesw5;sudoapt-getinstalllibstdc6;sudoapt-getinstallgcc-arm-none-eabi;sudoapt-getinstallvim;sudoapt-getinstallssh;sudoapt-getinstalllocales;sudoapt-getinstalllibxinerama-dev;sudoapt-getinstalllibxcursor-dev;sudoapt-getinstalllibxrandr-dev;sudoapt-getinstalllibxi-dev;sudoapt-getinstallcmake 这一长串命令其实就是把所有常见的编译工具链一次性装齐。如果中途某条报 already installed不用管继续往下走就行。二、配置 Git 与 Repo 工具2.1 配置 Git 用户信息安装好 git 和 git-lfs 后设置你的 git 用户名和邮箱这里填你自己的gitconfig--globaluser.nameyournamegitconfig--globaluser.emailyour-email-addressgitconfig--globalcredential.helper store实测效果 第三条credential.helper store是用来记住 HTTPS 认证信息的免去每次拉代码都要输密码的麻烦。2.2 安装 Repo 工具Repo 是 Google 写的用来管理多 Git 仓库的工具OpenHarmony 这种大型项目离不开它。步骤一创建本地 bin 目录用~/bin举例你可以换成其他路径mkdir~/bin步骤二下载 repo 脚本curlhttps://raw.atomgit.com/gitcode-dev/repo/raw/main/repo-py3-o~/bin/repo步骤三赋予执行权限chmodax ~/bin/repo步骤四安装 requests 依赖pip3install-ihttps://repo.huaweicloud.com/repository/pypi/simple requests 用华为云的 pip 源速度会快很多默认源经常超时。步骤五把 repo 添加到环境变量vim~/.bashrc# 在文件末尾加一行exportPATH~/bin:$PATH# 保存退出后让配置生效source~/.bashrc⚠️vim不熟悉的同学可以用gedit ~/.bashrc或者nano ~/.bashrc替代编辑方式完全一样。三、获取小鸿源码小鸿源码托管在 AtomGit 上可以通过 SSH 或 HTTPS 两种方式拉取。推荐用 SSH 方式免去每次输密码HTTPS 适合临时使用或 SSH key 没配好的情况。3.1 方式一通过 SSH 下载repo init-ugitatomgit.com:xiaohong-ai/manifest.git-bOpenHarmony-6.1.0.31-Release-mdefault_xiaohong.xml-gohos:mini --no-repo-verify-vreposync-c-j8repo forall-cgit lfs pull⚠️ SSH 方式需要先在 AtomGit 上配置好公钥不然会认证失败。配置方法本地执行ssh-keygen -t ed25519生成密钥对把~/.ssh/id_ed25519.pub的内容粘到 AtomGit 的 SSH 公钥设置里。3.2 方式二通过 HTTPS 下载repo init-uhttps://atomgit.com/xiaohong-ai/manifest.git-bOpenHarmony-6.1.0.31-Release-mdefault_xiaohong.xml-gohos:mini --no-repo-verify-vreposync-c-j8repo forall-cgit lfs pullrepo init是初始化本地仓库repo sync -c -j8是真正拉取代码8 线程并发repo forall -c git lfs pull是拉取大文件图片、固件之类的。实测repo init拉取过程repo sync同步过程这一步会持续好几分钟repo forall拉取 LFS 大文件3.3 Python 软链接修复⚠️常见报错repo sync过程中如果提示/usr/bin/env: python: 没有那个文件或目录说明系统缺少python命令的软链接。执行下面这条命令修复sudoln-s/usr/bin/python3 /usr/bin/python修完之后重新跑repo sync就行。四、安装编译器与 hb 编译工具4.1 安装预编译工具链源码拉取完成后先执行预编译脚本下载编译器cmake、clang 等bashbuild/prebuilts_download.sh这个脚本会自动下载编译所需的二进制工具下载速度取决于网络 如果下载慢脚本会自己重试耐心等就行。下载完成的工具会放在~/openharmony_prebuilts/目录下。4.2 安装 hb 编译工具hb是 OpenHarmony 专属的编译构建工具类似 Makefile 但更高级。步骤一在源码根目录安装 hbpython3-mpipinstall--userbuild/hb实测安装过程步骤二配置环境变量vim~/.bashrc# 在文件末尾加上exportPATH~/.local/bin:$PATH# 让配置生效source~/.bashrc步骤三验证 hb 是否安装成功hbhelp如果打印出一大堆[OHOS INFO]开头的帮助信息说明 hb 装好了五、编译小鸿镜像环境工具全部就绪终于到激动人心的编译环节了。5.1 配置编译参数在源码根目录执行hbset会进入一个交互式选择界面。先选os_level用上下键选mini小鸿是轻量级系统外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传回车后再选product选atomgit下的xiaohong选完会回到命令行参数已经配置好。5.2 执行编译启动完整编译hb build-f-f表示强制全量编译首次编译必须加。如果之前编译过想增量编译去掉-f即可。编译过程会刷一大堆[OHOS INFO] [NINJA]日志整个过程大概 4 分钟左右看机器性能当看到下面这两行时恭喜编译成功 [OHOS INFO] xiaohong build success [OHOS INFO] Cost Time: 0:04:17 编译产物默认输出在out/xiaohong/目录下镜像文件、配置文件全在这里。下一步就可以用 HiBurn 或其他烧录工具烧到板子了。六、常见问题与踩坑记录6.1 repo sync 失败 / 提示 repo 源码验证被禁用如果看到repo warning: verification of repo code has been disabled可以忽略这个警告不影响功能。-v参数本来就是--no-repo-verify的意思。6.2 git lfs pull 速度很慢 / 卡住LFS 文件一般比较大几百 MB 到几 GB如果网络不稳可以重试repo forall -c git lfs pull单独进某个仓库手动git lfs pull配置 LFS 代理git config --global lfs.url https://lfs.atomgit.com/6.3 hb build 编译报错找不到某个头文件通常是依赖没装全。重新跑一遍第一步的 apt-get 命令把漏掉的包装上。6.4 编译过程中内存不足可以减少并行任务数比如hb build-f-j4或者给虚拟机/机器加内存编译 OpenHarmony 建议至少 16GB。6.5 hb set 选错了怎么办重新执行hb set覆盖选即可。或者直接编辑源码根目录的ohos_config.json如果存在手动改 product 配置。总结整套编译流程串起来就是步骤关键命令作用1. 装依赖sudo apt-get install ...装齐编译工具链2. 配环境git configrepo~/.bashrcGit、Repo、环境变量3. 拉源码repo initrepo sync下载小鸿源码4. 装 hbpip install build/hb安装编译工具5. 编译hb sethb build -f生成可烧录镜像每一步成功都会有相应的输出信息耐心点跟着走基本都能一次过。下一步就是烧录到板子上跑起来了板子那块内容后面单独写一篇 本文命令全部基于官方开发指南 实测验证如果你按步骤走出现不一样的问题欢迎评论区贴日志一起排查。最后求个赞 收藏 关注三连支持一下博主更新动力
返回列表