公司新闻

米6体育新闻

添加树莓派4B到OHOS30编译框架

发表时间: 2022-05-24 01:26:30 | 作者:米6体育官网app下载

  当然这么操作只是为了方便调试,而最终需要的是一个可以烧录到 TF 卡上的 img 镜像文件。

  这就需要将所有调试好的内容添加到 OHOS3.0 的编译框架,本以为是很简单的事情,好家伙,整了这么久,感觉添加编译框架比移植本身更复杂。

  于是我整理了添加树莓派单板到编译框架的内容,希望对各位有所帮助,为大家避坑。

  添加一个 products 编译组件,这个组件是在产品配置文件中指定的。比如:

  其他部分参考 Hi3516,但是其中 2 条,指定单板组件路径,并添加组件。如果删除这两条,将不能编译内核,只生成 OHOS 的文件系统。

  接下来在 device 目录下,新建一个 raspberrypi 编译组件文件夹,并添加 ohos.build 文件。和前面产品配置文件中的设置对应起来了。

  至此一个 rpi4b build 组件就添加到 OHOS3.0 的编译框架了,之后相关内容添加到这个文件夹下就可以了。

  接下来分析下目前移植了树莓派 4B 的哪些内容,如何将这些内容编译进 OHOS3.0。

  所以补丁文件需要放到正确的路径下,以正确的名字命名就可以 patch 到内核。

  hdf.patch 补丁文件,现在还没有移植 HDF 相关内容,所以可以先使用 Hi3516 的 rpi4b.patch 补丁文件,使用树莓派的官方镜像:

  内核配置文件目前已知的需要开启下面内容,但是肯定不止这些,以后会继续更新:

  前面内核配置的时候 rpi4b_standard_defconfig 中已经将触摸驱动编入内核,所以后面不需要在 init 加载模块了,修改下 eudev 的配置文件即可。

  正常情况下内核是由 uboot 进行引导的,而且 OHOS 默认生成 uImage。

  但是树莓派自带 BootLoader,虽然可以先用树莓派自带的 BootLoader 启动 uboot,再用 uboot 加载 uImage,但是这样会比较麻烦,而且会增加启动时间。不过目前 zImage 是写死在 kernel.mk 中的,没办法改下编译脚本。

  对于镜像烧录,Hi3516 会将 uImage、system.img、vendor.img 等镜像烧写到 emmc,但是树莓派使用 TF 卡启动,所以需要对 TF 卡进行分区,然后复制对应的内容到各个分区。

  首先制作树莓派 boot 目录,这个用来目录存放树莓派设备树、config.txt、cmdline.txt、内核镜像等信息。

  不过有个问题,主分区只支持 4 个,所以 updater.img 暂时先不合并了,这个问题等以后再来处理。

  最后将会得到一个 rpi4b.img 的镜像文件,将这个文件烧录到 SD 卡就可以了。

  到这里总算是跑通了一个完整的添加新单板的流程,只不过目前只适配了显示和触摸。接下来打算尝试 HDF 或者 distributed 部分。