当前位置: 首页 > news >正文

OpenHarmony子系统开发 - 编译构建Kconfig可视化配置指导

OpenHarmony子系统开发 - 编译构建Kconfig可视化配置指导

概述

功能简介

该功能基于Kconfiglib与Kconfig实现,方便用户个性化配置OpenHarmony产品子系统部件。

基于Kconfig实现的可视化配置功能具有以下优点:

  • 能直观且全面地展示软件的部件选项。
  • 可靠性强,如Linux-kernel、buildroot等知名软件都采用Kconfig进行可视化配置。

基本概念

  • Kconfig :是一款Linux可视化配置文件格式。

  • Kconfiglib:是一款基于Kconfig格式实现的Linux可视化配置工具。

相关模块

  • Kconfig更新模块:用于更新Kconfig菜单栏目最新的部件信息列表。

  • config配置格式转换:用于将界面生成的config文件,转化为系统编译构建的标准化格式配置文件。

操作指导

  1. 获取源码

    OpenHarmony版本发布的源码获取请参考:源码获取教程

  2. 环境准备

    环境配置所需要的Kconfiglib已内置在OpenHarmony自带的hb工具中,如需安装hb工具,可参考:hb安装教程

  3. 开启可视化配置界面

    #进入build仓下目录
    cd build/tools/component_tools
    menuconfig kconfig
    

    界面示例

  4. 参数填写

    参数配置项可以参考:productdefine/common/base/base_product.json

    参数填写

  5. 选择部件并配置

    1. 点击方向键->选择子系统,进入子系统的部件列表。

    2. 按回车健选择子系统。

    3. 输入feature时,注意用英语逗号隔开多项输入。

      部件选择

  6. 保存所选配置

    按S键保存文件,可自定义输出文件名,默认为当前目录下.config文件。

    保存配置

  7. 生成OpenHarmony Style配置文件

    示例步骤:

    1. gn编译全量产品

      cp productdefine/common/base/base_product.json productdefine/common/products/ohos-arm64.json
      ./build.sh --product-name ohos-arm64  --build-only-gn --ccache --gn-args pycache_enable=true --gn-args check_deps=true --build-only-gn
      
    2. 生成部件依赖文件

      ./build/tools/module_dependence/part_deps.py --deps-files-path out/arm64/deps_files
      # output: out/arm64/part_deps_info/part_deps_info.json
      
    3. 生成OpenHarmony Style配置文件

      cd build/tools/component_tools
      python3 parse_kconf.py --deps=/path/to/out/arm64/part_deps_info/part_deps_info.json
      

      输出文件默认为当前目录下:product.json, 也可以使用python3 parse_kconf.py --out="example/out.json"来指定输出文件位置

      更多操作可查看python3 parse_kconf.py -h

常见问题

菜单列表缺失最新部件信息

由于产品不断的更新迭代,全量部件列表productdefine/common/base/base_product.json也会随之不断更新,从而导致Kconfig菜单缺少最新部件。

解决办法:

更新Kconfig文件

cd build/tools/component_tools
python3 generate_kconfig.py

更多选项通过python3 generate_kconfig.py -h查看。

相关文章:

  • 探索在生成扩散模型中基于RAG增强生成的实现与未来
  • NET400系列协议网关技术方案
  • vue3中接收props的两种写法
  • Liunx系统 : 进程间通信【IPC-Shm共享内存】
  • 基于PyQt5的全能图片处理工具开发实践
  • 本地缓存和分布式缓存
  • C++ 编程指南26 - 尽量缩短在临界区(critical section)内的执行时间
  • 用友U9二次开发-问题记录
  • 理解知识如何在大型Vision-Language Models 中演化
  • 从基础到实践(十三):无源晶振和有源晶振的应用指南
  • 从 Web2 到 Web3:互联网发展的重要转折
  • 电脑的常见问题的原因+解决方法
  • Anaconda中虚拟环境安装g++和gcc相同版本
  • Centos 7 修改语言和输入源为中文+修改终端快捷键复制为Ctrl+C、粘贴为Ctrl+V
  • 腾讯云低代码开发应用
  • Mentalab Explore 在低密度 EEG 系统中的创新应用
  • 封装哈希表实现unordered_map和unordered_set
  • nginx优化
  • 工作记录 2016-12-28
  • 【10】单片机时间和速度的起源:指令周期与晶振频率
  • 增城网站建设推广/国外产品推广平台
  • 网站建设项目竞争性招标文件/张文宏说上海可能是疫情爆发
  • html5 可以做网站吗/seo怎么弄
  • 东莞制作手机网站/常见的网络推广方式
  • 政府蒙古文网站建设汇报材料/长沙优化官网服务
  • 乐清网站建设honmau/广西疫情最新消息