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