【需求价值】:
hb当前只有编译构建功能,缺少内核定制裁剪配置入口。
【需求描述】:
对于Lite-M、LiteOS-A、Linux内核,需要进入相应的内核目录,执行如下命令弹出内核配置界面进行定制裁剪:
cd openharmony/kernel/linux/linux-4.19
make menuconfig
# or:
cd openharmony/kernel/liteos-m
make menuconfig
# or:
cd openharmony/kernel/liteos-m
make menuconfig
本来支持gn和makefile 2种方式,对于使用gn编译时,还要使用makefile的方式来调用menuconfig界面,gn和makefile没有彻底分清界限。
hb set产品后,期望提供 hb config功能可以在根目录下就打开内核配置界面,不再需要切换到相应的内核目录调用make命令。
对于liteos-m, hb config实现功能类似于:
cd openharmony/kernel/liteos-m
make menuconfig
对于liteos-a, hb config实现功能类似于:
cd openharmony/kernel/liteos-a
make menuconfig
对于linux,如linux-5.10, hb config实现功能类似于:
cd openharmony/kernel/linux/linux-5.10
make menuconfig
【方案描述】:
对于LiteOS-A、LiteOS-M内核,make menuconfig
实现在kernel\liteos_m(a)\Makefile
文件种,如下:
update_config menuconfig:
$(HIDE)test -f "$(CONFIG)" && cp -v "$(CONFIG)" .config && menuconfig $(args) && savedefconfig --out "$(CONFIG)"
其中menuconfig是python三方库kconfiglib提供的接口命令,hb工具可以调用实现。
对于Linux,类似。
【配套文档】:
【验收标准】:
编译时产品选择和kernel裁剪这两件事,从时间上来说一个属于编译阶段一个属于配置阶段;从业务上来说一个属于编译领域一个属于内核领域;从必要性上来说,绝大部分需要编译的开发都不需要知道kernel是怎么裁剪配置的,改过去只会让绝地大部分人摸不着头脑;从实用性上来说,进kernel目录进行menuconfig裁剪已经是业界通用方式,即使改到hb set,反而让人不习惯。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
内核天然的就是用makefile,aosp也一直这么沿用的,如果要切换代价太大,得不偿失。hb只是一种优化产品选择方式,跟谁用什么框架编译,本身就是没有什么关系的。
@chenmudan 内核也不使用makefile了。。。
登录 后才可以发表评论