赞
踩
本文描述了移植一块开发板的通用步骤,和具体芯片相关的详细移植过程无法在此一一列举。后续社区还会陆续发布开发板移植的实例供开发者参考。
本文以移植名为 MyProduct 的开发板为例讲解移植过程,假定 MyProduct 是 MyProductVendor 公司的开发板,使用 MySoCVendor 公司生产的 MySOC 芯片作为处理器。
在 //vendor/MyProductVendor/{product_name} 名称的目录下创建一个 config.json 文件,该文件用于描述产品所使用的 SOC 以及所需的子系统。配置如下:
//vendor/MyProductVendor/MyProduct/config.json
{ "product_name": "MyProduct", "version": "3.0", "type": "standard", "target_cpu": "arm", "ohos_version": "OpenHarmony 1.0", "device_company": "MyProductVendor", "board": "MySOC", "enable_ramdisk": true, "subsystems": [ { "subsystem": "ace", "components": [ { "component": "ace_engine_lite", "features":[] } ] }, ... ] }
主要的配置内容
已定义的子系统可以在“//build/subsystem_config.json”中找到。当然你也可以定制子系统。
这里建议先拷贝 Hi3516DV300 开发板的配置文件,删除掉 hisilicon_products 这个子系统。这个子系统为 Hi3516DV300 SOC 编译内核,显然不适合 MySOC。
至此,你可以使用如下命令,启动你产品的构建了:
./build.sh --product-name MyProduct
构建完成后,可以在 //out/{device_name}/packages/phone/images
目录下看到构建出来的 OpenHarmony 镜像文件。
这一步需要移植 Linux 内核,让 Linux 内核可以成功运行起来。
修改文件 //build/subsystem_config.json
增加一个子系统。配置如下:
"MySOCVendor_products": {
"project": "hmf/MySOCVendor_products",
"path": "device/MySOCVendor/MySOC/build",
"name": "MySOCVendor_products",
"dir": "device/MySOCVendor"
},
接着需要修改定义产品的配置文件 //vendor/MyProductVendor/MyProduct/config.json,
将刚刚定义的子系统加入到产品中。
源码中提供了 Linux 4.19 的内核,归档在 //kernel/linux-4.19
。本节以该内核版本为例,讲解如何编译内核。
在子系统的定义中,描述了子系统构建的路径 path,即 //device/MySOCVendor/MySOC/build
。这一节会在这个目录创建构建脚本,告诉构建系统如何构建内核。
建议的目录结构:
├── build
│ ├── kernel
│ │ ├── linux
│ │ ├──standard_patch_
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。