# 内核文档

探索 Qualcomm^®^ Linux^®^ 内核 — 专为性能、可扩展性和片上系统 (SoC) 功能而定制。

## 内核概述

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 内核概述

Qualcomm Linux 有助于将 Linux 内核移植和定制到具有 Qualcomm 硬件 SoC 的设备上。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/overview.html#linux-overview-firstpage

## 开始使用 Qualcomm Linux 内核

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 访问 Qualcomm Linux 内核源代码

访问内核源代码和所需的 meta 层。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/getting_started_chapter2.html#access-the-source-code-task

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 确定支持的 Qualcomm 主机

识别软件支持的机器。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/getting_started_chapter2.html#supported-machines

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 编译 Yocto 镜像配方和内核配置

了解如何为基础版本和自定义版本编译 Yocto 镜像。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/getting_started_chapter2.html#kernel-configuration-image

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 访问平台设备树

找到 Qualcomm SoC 的平台设备树。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/getting_started_chapter2.html#platform-device-tree

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 管理树外设备树 (DT) 叠加片段

编译期间，在特定于机器的配置文件中配置树外 DTB 叠加 (DTBO)。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/getting_started_chapter2.html#out-of-kernel-device-tree-fragments

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 管理树外内核模块

使用 Yocto 编译和自动加载树外内核模块。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/getting_started_chapter2.html#out-of-tree-kernel-modules

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 编译设备镜像

使用 Yocto 编译完整的 Qualcomm Linux 镜像。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/getting_started_chapter2.html#build-chapter2

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 调通设备

编译完成后启动设备。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/getting_started_chapter2.html#flash-images-and-boot

## 启动流程和架构概述

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 通用可扩展固件接口 (UEFI) 启动管理器

了解 Qualcomm Linux 冷启动流程。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/boot-flow-and-architecture-overview.html#section-uefi-boot-managers

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> Systemd-boot

了解管理 Qualcomm Linux 启动项和统一内核镜像的 systemd-boot。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/boot-flow-and-architecture-overview.html#systemd-boot

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> Qualcomm Linux 内核作为 EFI stub

直接通过 EFI stub 启动 Qualcomm Linux 内核。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/boot-flow-and-architecture-overview.html#efi-stub

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 启动镜像和 ESP 或启动分区

了解 EFI 系统分区 (ESP) 的构成。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/boot-flow-and-architecture-overview.html#section-ovm-wjs-s1c

## 配置启动后设置

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 启动后框架概述

配置内存、CPU 和系统参数。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/post-boot-settings.html#postboot-frameowrk

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 安装启动后 systemd 服务

在启动后框架中配置 systemd 服务

https://docs.qualcomm.com/doc/80-70022-3SC/topic/post-boot-settings.html#section-gsc-kdv-s1c

## 开发内核

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 使用 Yocto 工作流开发内核

设置主机，编译并开发 Qualcomm Linux 内核。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/kernel-development.html#yocto-kernel-support

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 编译独立于 Yocto 的内核

在无 Yocto 编译系统支持的情况下编译 Qualcomm Linux 内核。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/kernel-development.html#compthekernelinde

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 配置 DTB 支持和内核配置

向 Qualcomm Linux 内核添加新的 DTB。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/kernel-development.html#platform-support

## 配置远程处理器 (remoteproc) 子系统

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 配置 remoteproc 恢复和子系统重启

通过 remoteproc 针对 Qualcomm Linux 平台的崩溃检测、恢复编排和核心 dump 诊断，确保子系统的恢复能力。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/remoteproc-overview.html#configure-remote-proc-su

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> Qualcomm 对 remoteproc 的支持

了解如何配置远程处理器。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/remoteproc-overview.html#configure-remote-proc-su

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 启用或禁用核心 dump

为子系统启用或禁用核心 dump。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/remoteproc-overview.html#enable-coredump

## 配置和管理内存

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 将 ZRAM 配置为交换设备

配置 ZRAM 内存参数。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/memory.html#configure-zram

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 扩展内存映射

修改设备树源包含 (DTSI) 中的保留或连续内存分配器 (CMA) 内存。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/memory.html#extend-memory-map

## 配置调度器

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 了解 CPU 拓扑和 EAS

了解 CPU 容量和拓扑。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/scheduler.html#cpu-topology-and-eas

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 配置实体负载跟踪

调整调度器负载跟踪参数。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/scheduler.html#per-entity-load-tracking-pelt

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 配置利用率限制 (UCLAMP)

调整进程的 UCLAMP。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/scheduler.html#utilization-clamping-uclamp

## 配置动态电压和频率调节 (DVFS) 调节器

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 选择 CPU DVFS 调节器

配置 CPU 频率调节器。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/dynamic-clock-and-voltage-scaling-dcvs.html#select-cpu-dvfs

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 配置缓存和内存 DVFS 调节器

配置缓存和 DDR 带宽频率。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/dynamic-clock-and-voltage-scaling-dcvs.html#configure-cache-and-memory-dvfs

## 配置 pinctrl 驱动程序

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 配置 pinctrl 驱动程序

管理和配置用于通用输入/输出 (GPIO) 的引脚。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/pinctrl-configuration.html#pinctrl-configuration

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 配置 GPIO 的使用

了解 SoC 中可用的 GPIO 配置。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/customize-cache-and-memory-dvfs.html#configure-cache-and-memory

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 配置 GPIOS 以生成时钟或脉冲宽度调制

使用 GPIO 生成 PWM 脉冲。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/pinctrl-configuration.html#configure-gpios-pwm

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 从用户空间配置 GPIO

从用户空间管理 GPIO。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/pinctrl-configuration.html#control-gpios-from-userspace

## 从设备访问内容

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 启用安全 shell (SSH)

使用 SSH 连接至设备。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/access-content-from-the-device.html#adb-shell

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 从设备获取信息

采集基本内核日志。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/access-content-from-the-device.html#retrieve-the-info

## 采集内核日志

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 采集串行控制台日志

配置串行控制台以采集早期启动日志。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/capture-the-kernel-logs.html#capture-the-kernel

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 配置控制台日志级别

配置内核日志级别。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/capture-the-kernel-logs.html#configure-console-log

## 配置调试方法

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 启用并挂载 debugfs 文件系统

挂载 debugfs 文件系统以从用户空间跟踪、调试和检查内核数据结构。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/debug.html#enable-and-mount-debugfs

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 使用内核探针进行调试

使用 kprobes 配置内核。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/debug.html#kernel-probes

## 配置内核调试器

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 使用内核 GNU 调试器 (KGDB) 调试内核模块

将 KGDB 连接到设备。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/configure-kernel-debugger.html#debugging-kernel-and-modules-via-gdb

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 使用 KGDB 通过串行 COM 端口调试

配置 KGDB 以通过串行端口连接。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/configure-kernel-debugger.html#use-kgdb-with-serial-com-port

## 排查内核问题

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 选错/没有可用的 DTB 导致启动失败

验证启动时设备树加载。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/common_troubleshooting.html#boot-failure-due-to

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16" fill="none" aria-label="icon3">
  <path d="M8 2V14M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z" stroke="#2A2AEA" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> 串行控制台不工作

调试串行端口配置问题。

https://docs.qualcomm.com/doc/80-70022-3SC/topic/common_troubleshooting.html#serial-console-not-working

Last Published: Nov 04, 2025

[Next Topic
内核概述](https://docs.qualcomm.com/bundle/publicresource/80-70022-3SC/topics/overview.md)