修改qualcomm kernel config文件

本文介绍如何通过修改deconfig文件中的CONFIG_TOUCHSCREEN_FT5X06选项来决定触摸屏驱动是否编译进内核。通过实验发现,真正起作用的配置位于kernel/arch/arm64/configs/msm_defconfig文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何在deconfig文件里配置某个模块是否编译
首先以CONFIG_TOUCHSCREEN_FT5X06为例,这个CONFIG_TOUCHSCREEN_FT5X06在makefile里决定了obj-$(CONFIG_TOUCHSCREEN_FT5X06) += ft5x06_ts.o
然后看CONFIG_TOUCHSCREEN_FT5X06在哪里被define成y,在kernel/arch/arm/configs以及kernel/arch/arm64/configs里找到了一堆
但是经过鸟枪法:将y改成n,看out/target/product/msm8952_64/obj/KERNEL_OBJ的.config文件看CONFIG_TOUCHSCREEN_FT5X06是否变了
在发现了真正起作用的是kernel/arch/arm64/configs的msm_defconfig

然后寻找证据,全局搜索在./device/qcom/msm8952_64/AndroidBoard.mk:      KERNEL_DEFCONFIG := msm_defconfig所以前后验证了


应该说user img的config文件是msm_defconfig,而userdebug的config是msmcortex-perf_defconfig

<think>我们正在为高通audio-kernel源码编写一个recipe文件。recipe文件用于Yocto项目构建系统,用于定义如何构建软件包。步骤:1.确定源码获取方式:通常通过Git仓库获取。2.确定依赖项:构建audio-kernel可能需要内核头文件、交叉编译工具链等。3.编写任务:定义如何配置、编译和安装。注意:高通的音频内核模块通常作为内核模块构建,因此需要内核源码和配置。假设我们有一个高通audio-kernel的Git仓库,我们可以创建一个名为`audio-kernel_%.bb`的recipe文件。示例recipe文件结构:```DESCRIPTION="QualcommAudioKernelModule"LICENSE="Proprietary"#根据实际情况修改,高通代码可能有特定许可证LIC_FILES_CHKSUM="file://LICENSE;md5=..."#需要指定LICENSE文件的校验和#源码获取SRC_URI="git://<repository_url>;protocol=https;branch=${BRANCH}"SRCREV="<commit_hash>"#指定具体的提交哈希#分支名BRANCH="master"#或实际分支名#源码版本PV="1.0+git${SRCPV}"#依赖项DEPENDS="virtual/kernel"#因为内核模块需要内核头文件和构建环境#源码目录(相对于工作目录)S="${WORKDIR}/git"#编译任务do_compile(){#进入源码目录cd${S}#使用内核的构建系统来构建外部模块#需要指定内核源码路径(由DEPENDS提供的virtual/kernel)#通常使用${STAGING_KERNEL_DIR}来引用内核构建目录make-C${STAGING_KERNEL_DIR}M=${S}modules}#安装任务do_install(){#创建安装目录install-d${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/sound/drivers/qcom#安装编译好的模块install-m0644${S}/<module_name>.ko${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/sound/drivers/qcom/}#确保在安装后运行depmodFILES_${PN}+="${base_libdir}/modules"```注意:-上述中的`<repository_url>`需要替换为实际的Git仓库URL。-`<commit_hash>`替换为具体的提交哈希。-`<module_name>`替换为实际的模块名称(如`snd-soc-qcom.ko`等)。-由于是内核模块,安装路径必须与内核模块的路径一致,通常位于`/lib/modules/<kernel_version>/kernel/...`。另外,需要确保内核配置中启用了所需的选项(例如,CONFIG_SOUND等)。如果内核中没有配置,可能需要在recipe中通过附加文件(如defconfig片段)来配置。如果需要额外的配置,可以在SRC_URI中添加补丁或配置文件,并在do_configure阶段应用。由于高通的audio-kernel可能依赖于特定的内核版本,因此需要确保DEPENDS中的内核版本匹配。最后,注意许可证问题:高通代码通常有特定的许可,需要确保在LICENSE和LIC_FILES_CHKSUM中正确指定。相关问题:1.如何为内核模块编写Yoctorecipe?2.如何获取高通audio-kernel的源码?3.如何配置内核以支持高通音频模块?</think>### 编译高通 audio-kernel 源码的 recipe 编写指南 #### 1. **基础 recipe 结构** ```bitbake DESCRIPTION = "Qualcomm Audio Kernel Module" LICENSE = "Proprietary" LIC_FILES_CHKSUM = "file://LICENSE;md5=..." # 替换实际校验值 # 源码获取配置 SRC_URI = "git://${CHIPCODE_URL}/audio-kernel.git;protocol=https;branch=${BRANCH}" SRCREV = "a1b2c3d4..." # 指定源码提交哈希 BRANCH = "audio-kernel.lnx.5.0" # 参考Release Note[^1] # 依赖配置 DEPENDS = "virtual/kernel dtc-native" # 依赖内核和DTC工具[^2] inherit module # 源码目录 S = "${WORKDIR}/git" ``` #### 2. **关键配置说明** - **源码获取**: - 使用高通代码平台`CHIPCODE_URL`变量(需企业授权访问) - 分支名需参考Release Note文档[^1] - **设备树编译**: - 依赖`dtc-native`工具链处理`.dts`文件[^2] - 添加编译指令: ```bitbake do_compile_append() { dtc -O dtb -o ${S}/output/audio.dtb ${S}/dts/audio.dts } ``` #### 3. **内核模块集成** ```bitbake # 模块编译指令 EXTRA_OEMAKE = "KERNEL_SRC=${STAGING_KERNEL_DIR}" # 安装配置 do_install() { install -d ${D}${base_libdir}/modules/${KERNEL_VERSION} install -m 0644 ${S}/snd-soc-*.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/ } FILES_${PN} += "${base_libdir}/modules" ``` #### 4. **完整示例** ```bitbake # audio-kernel_1.0.bb SUMMARY = "Qualcomm Audio Kernel Drivers" SECTION = "kernel/modules" SRC_URI = "git://codeaurora.org/audio-kernel.git;protocol=https;branch=audio-kernel.lnx.5.0" SRCREV = "f1e2d3c4a5b67890..." PV = "1.0+git${SRCPV}" DEPENDS = "virtual/kernel dtc-native" inherit module do_compile() { dtc -I dts -O dtb -o audio-topology.dtb topology/audio-topology.dts oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR} CC="${KERNEL_CC}" LD="${KERNEL_LD}" } ``` #### 5. **编译验证** ```bash # 在Yocto环境中执行 bitbake audio-kernel # 验证输出文件 ls tmp/work/*/audio-kernel/*/git/*.ko ``` ### 注意事项 1. **源码访问**:需高通授权获取`CHIPCODE_URL`访问权限[^1] 2. **内核兼容性**:`KERNEL_VERSION`必须与目标内核完全匹配 3. **设备树处理**:`.dts`文件需用DTC编译为`.dtb`二进制[^2] 4. **许可证合规**:严格遵循高通代码的许可协议要求
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值