Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
a5b386e4
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
a5b386e4
编写于
2月 21, 2022
作者:
O
openharmony_ci
提交者:
Gitee
2月 21, 2022
浏览文件
操作
浏览文件
下载
差异文件
!1471 【Kconfig】Add Wiki Of Kconfig Visual Operation For Product Configuration
Merge pull request !1471 from 烈烈/wiki_yhl
上级
ea0d165a
c58be133
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
114 addition
and
0 deletion
+114
-0
zh-cn/device-dev/subsystems/figure/kconfig保存.PNG
zh-cn/device-dev/subsystems/figure/kconfig保存.PNG
+0
-0
zh-cn/device-dev/subsystems/figure/kconfig参数输入.gif
zh-cn/device-dev/subsystems/figure/kconfig参数输入.gif
+0
-0
zh-cn/device-dev/subsystems/figure/kconfig界面.PNG
zh-cn/device-dev/subsystems/figure/kconfig界面.PNG
+0
-0
zh-cn/device-dev/subsystems/figure/kconfig部件选择.gif
zh-cn/device-dev/subsystems/figure/kconfig部件选择.gif
+0
-0
zh-cn/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guid.md
.../subsystems/subsys-build-gn-kconfig-visual-config-guid.md
+114
-0
未找到文件。
zh-cn/device-dev/subsystems/figure/kconfig保存.PNG
0 → 100644
浏览文件 @
a5b386e4
16.1 KB
zh-cn/device-dev/subsystems/figure/kconfig参数输入.gif
0 → 100644
浏览文件 @
a5b386e4
2.1 MB
zh-cn/device-dev/subsystems/figure/kconfig界面.PNG
0 → 100644
浏览文件 @
a5b386e4
39.0 KB
zh-cn/device-dev/subsystems/figure/kconfig部件选择.gif
0 → 100644
浏览文件 @
a5b386e4
1.7 MB
zh-cn/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guid.md
0 → 100644
浏览文件 @
a5b386e4
# 编译构建Kconfig可视化配置指导
## 概述
### 功能简介
该功能基于
[
Kconfiglib
](
https://github.com/ulfalizer/Kconfiglib
)
与
[
Kconfig
](
https://www.kernel.org/doc/html/latest/kbuild/kconfig-language.html#introduction
)
实现,方便用户个性化配置OpenHarmony产品子系统部件。
基于Kconfig实现的可视化配置功能具有以下优点:
-
能直观且全面地展示软件的组件选项。
-
可靠性强,如Linux-kernel、buildroot等知名软件都采用Kconfig进行可视化配置。
### 基本概念
-
[
Kconfig
](
https://www.kernel.org/doc/html/latest/kbuild/kconfig-language.html#introduction
)
:是一款Linux可视化配置文件格式。
-
[
Kconfiglib
](
https://github.com/ulfalizer/Kconfiglib
)
:是一款基于Kconfig格式实现的Linux可视化配置工具。
### 相关模块
-
[
Kconfig更新模块
](
https://gitee.com/openharmony/build/blob/master/tools/component_tools/generate_kconfig.py
)
:用于更新Kconfig菜单栏目最新的部件信息列表。
-
[
config配置格式转换
](
https://gitee.com/openharmony/build/blob/master/tools/component_tools/parse_kconf.py
)
:用于将界面生成的config文件,转化为系统编译构建的标准化格式配置文件。
## 操作指导
1.
获取源码
OpenHarmony版本发布的源码获取请参考:
[
源码获取教程
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md
)
2.
环境准备
环境配置所需要的Kconfiglib已内置在OpenHarmony自带的hb工具中,如需安装hb工具,可参考:
[
hb安装教程
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-package-environment.md#%E5%AE%89%E8%A3%85hb
)
3.
开启可视化配置界面
```
shell
#进入build仓下目录
cd
build/tools/component_tools
menuconfig kconfig
```
!
[
界面示例
](
./figure/kconfig界面.PNG
)
4.
参数填写
参数配置项可以参考:
[
productdefine/common/base/base_product.json
](
https://gitee.com/openharmony/productdefine_common/blob/master/base/base_product.json
)
!
[
参数填写
](
./figure/kconfig参数输入.gif
)
5.
选择部件并配置
1.
点击方向键->选择子系统,进入子系统的部件列表。
2.
按回车健选择子系统。
3.
输入
`feature`
时,注意用英语逗号隔开多项输入。
!
[
部件选择
](
./figure/kconfig部件选择.gif
)
6.
保存所选配置
按S键保存文件,可自定义输出文件名,默认为当前目录下
`.config`
文件。
!
[
保存配置
](
./figure/kconfig保存.PNG
)
7.
生成OpenHarmony Style配置文件
示例步骤:
1.
gn编译全量产品
```
shell
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.
生成部件依赖文件
```
shell
./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配置文件
```
shell
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
](
https://gitee.com/openharmony/productdefine_common/blob/master/base/base_product.json
)
也会随之不断更新,从而导致Kconfig菜单缺少最新部件。
解决办法:
-
更新
[
Kconfig文件
](
https://gitee.com/openharmony/build/blob/master/tools/component_tools/kconfig
)
```
shell
cd
build/tools/component_tools
python3 generate_kconfig.py
```
更多选项通过
`python3 generate_kconfig.py -h`
查看。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录