请先参考《2.2.3 使用示例:下载百问网鸿蒙源码、文档》下载GIT仓库,里面含有补丁文件。
补丁文件openharmony_100ask_v1.2.patch既支持IMX6ULL,也支持STM32MP157,只需要打一次补丁。它位于如下目录,这两个目录里的文件是一样的:
代码语言:javascript复制doc_and_source_for_openharmonyIMX6ULLsource 1_文档配套的源码patchopenharmony_100ask_v1.2.patch
doc_and_source_for_openharmonySTM32MP157source 1_文档配套的源码A7patchopenharmony_100ask_v1.2.patch
1.1 下载补丁文件
如果已经在Windows里下载了GIT资料,可以把补丁文件上传到Ubuntu。
也可以在Ubuntu中执行以下命令再次下载:
代码语言:javascript复制cd /home/book
$ git clone https://e.coding.net/weidongshan/openharmony/doc_and_source_for_openharmony.git
结果如下:
1.2使用补丁文件修改代码
假设在/home/book/openharmony目录下是鸿蒙的源码,补丁文件openharmony_100ask_v1.2.patch放在/home/book目录下。
执行以下命令打补丁:
代码语言:javascript复制cd /home/book/openharmony
patch -p1 < /home/book/openharmony_100ask_v1.2.patch
注意:鸿蒙的内核在不断更新,这个补丁是针对“OpenHarmony-1.0”版本的。
所以前面使用repo下载代码时必须指定“-b OpenHarmony-1.0”,参考《1.2.3 下载源码》。
1.3 编译
我的修改还不完善,还无法在根目录下编译。
需要进入kernel/liteos_a目录下配置、编译:
代码语言:javascript复制cd /home/book/openharmony/kernel/liteos_a
cp tools/build/config/debug/imx6ull_clang.config .config // 配置
make clean // 先清除一下,否则会提示错误
make -j 8 // 编译内核,可以得到out/imx6ull/liteos.bin
make rootfs // 编译根文件系统,可以得到rootfs.img
cp out/imx6ull/rootfs.img out/imx6ull/rootfs.jffs2 // 改个名易辨认,烧写工具使用rootfs.jffs2
如果一切正常,结果如下:
把上面得到的liteos.bin、rootfs.jffs2,复制到烧写工具的files目录下,然后参考《在STM32MP157上体验鸿蒙系统》,使用烧写工具下载运行它们。