构建与工作流程
我应该使用哪种构建工作流程,Yocto 还是独立构建?
当你需要生产就绪的设备镜像、希望由 Yocto 管理工具链和 sysroot,或者正在修改内核配置片段时,使用 Yocto 工作流程。当你只需要重新构建和重新部署内核而无需重新构建完整的根文件系统时,使用独立构建工作流程进行快速内核迭代。 有关并排对比,请参阅快速入门 - 选择你的工作流程。如何只构建内核而不重新构建完整镜像?
使用独立构建工作流程。它使用基于 Docker 的交叉工具链(kmake-image)独立于 Yocto 编译内核。生成的结果是一个可以直接放置到 ESP 分区的 UKI 镜像。有关设置和构建步骤,请参阅独立构建内核。
Qualcomm Linux 使用什么内核版本?
Qualcomm Linux 跟踪长期支持(LTS)内核。当前版本为 v6.18.x。完整的版本和兼容性表请参阅支持的版本与兼容性。设备树与硬件
如何为我的单板找到正确的 DTB?
DTB 名称遵循<SoC>-<board>-<variant>.dtb 模式。机器配置文件(meta-qcom/conf/machine/)中的 KERNEL_DEVICETREE 变量显示了默认构建哪些 DTB。有关各 SoC 的 DTB 列表和设备树布局详情,请参阅设备树架构。
日志与调试
如何提高或捕获内核日志输出?
使用dmesg 访问内存中的环形缓冲区,或通过串行控制台捕获日志。日志详细程度由控制台日志级别控制。有关串行控制台设置和日志级别配置,请参阅内核日志。
如何连接内核调试器(KGDB)?
KGDB 需要目标设备与运行 GDB 的主机之间建立串行连接。内核必须在启用CONFIG_KGDB 和 CONFIG_KGDB_SERIAL_CONSOLE 的情况下构建。完整的设置步骤请参阅内核调试器(KGDB)。
内核模块与子系统
如何添加树外(out-of-tree)内核模块?
树外模块使用 Yocto 的module 类进行构建。配方继承 module,指向驱动源码,并设置 KERNEL_MODULE_AUTOLOAD 以在启动时加载模块。有关完整的配方示例,请参阅树外内核模块。
如何切换到实时(RT)内核?
RT 内核是一个启用PREEMPT_RT 的单独构建配置。有关构建说明、切换步骤和已知限制,请参阅 RT 内核基础。
