首页
商城
  • English
  • 简体中文
首页
商城
  • English
  • 简体中文
  • 产品系列

    • FPGA+ARM

      • GM-3568JHF

        • 一、简介

          • GM-3568JHF 简介
        • 二、快速开始

          • 00 前言
          • 01 环境搭建
          • 02 编译说明
          • 03 烧录指南
          • 04 调试工具
          • 05 软件更新
          • 06 查看信息
          • 07 测试命令
          • 08 应用编译
          • 09 源码获取
        • 三、外设与接口

          • 01 USB
          • 02 显示与触摸
          • 03 以太网
          • 04 WIFI
          • 05 蓝牙
          • 06 TF-Card
          • 07 音频
          • 08 串口
          • 09 CAN
          • 10 RTC
        • 四、应用开发

          • 01 UART读写案例
          • 02 按键检测案例
          • 03 LED灯闪烁案例
          • 04 MIPI屏幕检测案例
          • 05 读取 USB 设备信息案例
          • 06 FAN 检测案例
          • 07 FPGA FSPI 通信案例
          • 08 FPGA DMA 读写案例
          • 09 GPS调试案例
          • 10 以太网测试案例
          • 11 RS485读写案例
          • 12 FPGA IIC 读写案例
          • 13 PN532 NFC读卡案例
          • 14 TF卡读写案例
        • 五、QT开发

          • 01 ARM64交叉编译器环境搭建
          • 02 QT 程序加入开机自启服务
        • 六、RKNN_NPU开发

          • 01 RK3568 NPU 概述
          • 02 开发环境搭建
          • 运行官方 YOLOv5 示例
        • 七、FPGA开发

          • ARM与FPGA通讯
          • FPGA开发手册
        • 八、其他

          • 01 根目录文件系统的修改
          • 02 系统自启服务
        • 九、资料下载

          • 资料下载
    • ShimetaPi

      • M4-R1

        • 一、简介

          • M4-R1简介
        • 二、快速上手

          • 01 OpenHarmony概述
          • 02 镜像烧录
          • 03 应用开发快速上手
          • 04 设备开发快速上手
        • 三、应用开发

          • 01 ArkUI

            • 1 ArkTS语言简介
            • 2 UI 组件-Row 容器介绍
            • 3 UI 组件-Column 容器介绍
            • 4 UI 组件-Text 组件
            • 5 UI 组件-Toggle 组件
            • 6 UI 组件-Slider 组件
            • 7 UI 组件-Animation 组件&Transition 组件
          • 02 资料获取

            • 1 OpenHarmony 官方资料
          • 03 开发须知

            • 1 Full-SDK替换教程
            • 2 引入和使用三方库
            • 3 HDC调试
            • 4 命令行恢复出厂模式
            • 5 升级App为system权限
          • 04 构建第一个应用

            • 1 构建第一个ArkTs应用-HelloWorld
          • 05 案例

            • 01 串口调试助手应用案例
            • 02 手写板应用案例
            • 03 数字时钟应用案例
            • 04 WIFI 信息获取应用案例
        • 四、设备开发

          • 1 Ubuntu环境开发

            • 01 环境搭建
            • 02 下载源码
            • 03 编译源码
          • 2 使用DevEco Device Tool 工具

            • 01 工具简介
            • 02 开发环境的搭建
            • 03 导入SDK
            • 04 HUAWEI DevEco Tool 功能介绍
        • 五、内核外设与接口

          • 01 指南
          • 02 设备树介绍
          • 03 NAPI 入门
          • 04 ArkTS入门
          • 05 NAPI开发实战演示
          • 06 GPIO介绍
          • 07 I2C通讯
          • 08 SPI通信
          • 09 PWM 控制
          • 10 串口通讯
          • 11 TF卡
          • 12 屏幕
          • 13 触摸
          • 14 Ethernet(以太网)
          • 15 M.2 硬盘
          • 16 音频
          • 17 WIFI & BT
          • 18 摄像头
        • 六、资料下载

          • 资料下载
      • M4-R2

        • 一、产品简介

          • M4-R2 产品简介
        • 二、快速上手

          • 快速上手
        • 三、Android 系统

          • 1 快速上手

            • Android系统烧录与启动
            • 开发环境搭建
            • ADB调试与日志分析
            • SDK下载与编译环境搭建
            • Android系统基础操作
          • 2 SDK 编译

            • Android_SDK编译
            • Android构建系统与增量编译
          • 3 系统开发

            • Android系统定制
          • 4 应用开发

            • Android应用开发入门
            • Android JNI开发
          • 5 驱动与 HAL

            • Android HAL开发
          • 6 AI 与 NPU

            • Android NPU使用指南
        • 四、硬件参考

          • 核心板参数
          • 底板接口定义
          • 40PIN引脚定义
          • 电源管理
        • 五、常见问题与故障排除

          • 系统启动问题
          • 外设驱动问题
          • 网络连接问题
          • 显示问题
          • 常见编译错误
        • 六、应用方案参考

          • 智能显示终端方案
          • 边缘AI计算方案
          • 工业控制方案
          • NVR安防监控方案
          • 智能家居网关方案
        • 七、资料下载

          • 资料下载
      • M5-R2A

        • 一、产品简介

          • M5-R2A 产品简介
        • 二、快速上手

          • 系统烧录指南
          • 开发环境搭建
          • 快速上手
          • SDK下载与编译环境搭建
        • 四、Debian/Ubuntu 系统

          • 1 快速上手

            • 系统启动与基础操作
            • 网络配置与SSH
            • 软件包管理与更新
            • Debian 与 Ubuntu 镜像差异
          • 2 系统开发

            • Linux SDK编译
            • 内核配置与裁剪
            • 设备树详解与实践
            • 根文件系统构建
          • 3 外设驱动开发

            • GPIO驱动与控制
            • I2C驱动开发
            • SPI驱动开发
            • UART串口驱动
            • PWM驱动
            • ADC驱动
            • CAN/CAN-FD驱动
            • USB主机与设备驱动
            • SDMMC/eMMC驱动
            • 以太网GMAC驱动
            • 音频驱动
            • 摄像头Camera驱动
            • 触摸屏驱动
            • 显示DRM驱动
            • HDMI显示驱动
            • PCIe驱动
            • WiFi/蓝牙驱动
            • 看门狗WDT驱动
            • 热敏传感器THERMAL驱动
          • 4 应用开发

            • C/C++应用开发入门
            • Python应用开发
            • Qt嵌入式开发实战
            • GStreamer多媒体开发
            • 网络编程与应用
            • 文件系统与存储
          • 5 AI 与 NPU

            • NPU架构与性能概览
            • RKNN Toolkit2安装与使用
            • 模型转换与量化
            • 分类模型部署(LeNet/ResNet)
            • 目标检测部署(YOLOv5/v7/v8)
            • 语义分割部署
            • 人脸检测与识别
            • OCR文字识别
            • NPU性能调优与调试
          • 6 多媒体

            • 显示框架
            • 摄像头应用
            • 视频编解码(MPP)
            • 音频开发与ALSA
            • RGA图像处理
          • 7 性能优化与调试

            • 系统启动时间优化
            • CPU/GPU/NPU调优
            • 内存与存储优化
            • 功耗分析与优化
            • 调试工具使用指南
          • 8 高级主题

            • 安全启动与加密
            • OTA远程升级
            • Docker容器部署
            • ROS/ROS2机器人开发
            • RTOS与Linux协同
        • 五、Android 系统

          • 1 快速上手

            • Android系统烧录与启动
            • Android系统基础操作
            • ADB调试与日志分析
          • 2 SDK 编译

            • Android SDK编译
            • Android构建系统与增量编译
          • 3 系统开发

            • Android系统定制
          • 4 应用开发

            • Android应用开发入门
            • Android JNI开发
          • 5 驱动与 HAL

            • Android HAL开发
          • 6 AI 与 NPU

            • Android NPU使用指南
        • 六、硬件参考

          • 核心板参数
          • 底板接口定义
          • 40PIN引脚定义
          • 电源管理
        • 七、资料下载

          • 资料下载
      • Pico-G1

        • 一、产品概述

          • 01 产品介绍
          • 02 SDK版本基本信息
        • 二、快速入门

          • 01 开发环境搭建
          • 02 镜像编译
          • 03 镜像烧录
          • 04 系统登录
          • 05 网络配置
          • 06 文件传输
          • 07 SDK目录结构
          • 08 部署第一个应用程序
          • 09 部署第一个驱动程序
          • 10 SD卡挂载
        • 三、外设与接口

          • 01 GPIO控制
          • 02 UART串口通信
          • 03 I2C 通信
          • 04 SPI 通信
        • 四、MPP媒体开发

          • 01 MPP媒体处理软件
          • 02 图像处理链路
          • 03 视频输入
          • 04 图像编码
        • 五、NPU与AI

          • 01 NPU驱动与运行库架构
          • 02 .xmm 模型加载
          • 03 SVP视频处理
          • 04 AI降噪 (AI_NR)
        • 六、应用程序示例

          • 01 加解密接口应用
          • 02 ADC 采集应用
          • 03 低功耗应用
          • 04 音频处理应用
          • 05 视频编码应用
          • 06 视频输入应用
          • 07 视频图形子系统应用
          • 08 区域叠加应用
          • 09 智能视频引擎应用
          • 10 UVC 网络摄像头应用
          • 11 综合快速演示应用
          • 12 FPN 校正应用
          • 13 区域运动检测应用
          • 14 MTCNN 人脸检测应用
        • 七、扩展板外设功能例程

          • 00 - Pico 扩展板外设功能例程总览
          • 01 - OLED 显示应用
          • 02 - TFT 显示应用
          • 03 - MPU6050 陀螺仪应用
          • 04 - ADC 采集应用
          • 05 - 无源蜂鸣器应用
          • 06 - MQ 气体传感器应用
          • 07 - GPS 定位应用
          • 08 - SHT20 温湿度应用
          • 09 - 超声波测距应用
          • 10 - SPO2 血氧传感器应用
          • 11 - 电机控制应用
          • 12 - 舵机控制应用
    • 开源鸿蒙

      • SC-3568HA

        • 一、简介

          • SC-3568HA简介
        • 二、快速上手

          • OpenHarmony概述
          • 镜像烧录
          • 开发环境准备
          • Hello World应用以及部署
        • 三、应用开发

          • ArkUI

            • 第一章 ArkTS语言简介
            • 第二章 UI组件介绍和实际应用(上)
            • 第三章 UI组件介绍和实际应用(中)
            • 第四章 UI组件介绍和实际应用(下)
          • 拓展

            • 第一章 入门指引
            • 第二章 三方库的引用和使用
            • 第三章 应用编译以及部署
            • 第四章 命令行恢复出厂设置
            • 第五章 系统调试--HDC调试
            • 第六章 APP 稳定性测试
            • 第七章 应用测试
        • 四、设备开发

          • 第一章 环境搭建
          • 第二章 下载源码
          • 第三章 编译源码
        • 五、内核的外设与接口

          • 树莓派接口
          • GPIO 接口
          • I2C 接口
          • SPI通信
          • PWM控制
          • 串口通讯
          • TF Card
          • 屏幕
          • 触摸
          • 音频
          • RTC
          • Ethernet
          • M.2
          • MINI-PCIE
          • Camera
          • WIFI&BT
          • 树莓派拓展板
        • 六、资料下载

          • 资料下载
      • M-K1HSE

        • 一、简介

          • M-K1HSE 简介
        • 二、快速开始

          • 开发环境搭建
          • 源码获取
          • 编译说明
          • 烧录指南
        • 三、应用开发

          • 00 应用开发环境搭建
          • 01 第一个应用-Hello World
        • 四、外设与接口

          • 01 Audio
          • 02 RS485
          • 03 Display
        • 五、系统定制开发

          • 系统移植
          • 系统定制
          • 驱动开发
          • 系统调试
          • OTA升级
        • 六、资料下载

          • 资料下载
    • HVS视觉融合相机

      • 快速开始

        • 01 SDK 介绍
        • 02 资料下载
        • 03 设备固件烧录
        • 04 第一个 C++ 程序
        • 05 第一个 Python 程序
        • 06 Python 数据分析
        • 07 MultiVision Studio
        • 08 版本介绍
      • 二次开发

        • 01 编程指引

          • 01 打开相机
          • 02 读取事件
          • 03 录制与回放
          • 04 事件处理
          • 05 显示与可视化
          • 06 调参
          • 07 采集 APS 图像
          • 08 帧率切换
          • 09 时间戳同步
        • 02 Toolkit SDK

          • 01 Hybrid Vision Toolkit
          • 02 快速上手
          • 03 C++ API
          • 04 Python API
        • 03 Algo SDK

          • 01 Hybrid Vision Algo
          • 02 Algo API
          • 03 Windows Algo SDK
        • 04 USB数据协议
        • 05 示例程序总览
        • 06 应用场景
      • 基础知识

        • 01 事件相机基础原理
        • 02 HVS 融合视觉
        • 03 事件可视化
        • 04 数据格式参考
        • 05 术语表
        • 06 偏置与调参
        • 07 视频教程
      • HVS 相机

        • 01 HVS 相机快速上手
        • 02 网络化能力

          • 01 HVS 相机系统架构
          • 2 EVS Network Server
          • 3 EVS Time Sync
          • 4 Web Window
        • 03 HVS 相机兼容性矩阵
        • 04 常见问题解决指南
        • 05 产品

          • CF-NRS1(灵光一号视觉融合相机)
      • HVS 模块

        • 01 MIPI 模块快速上手
        • 02 载板适配

          • RDK X5 载板适配
          • RDK S100 载板适配
          • 树莓派载板适配
          • shimetapi 板载板适配
        • 03 MIPI 模块兼容性矩阵
        • 04 产品

          • EVS_003 传感器模块
    • AI硬件

      • 1684XB-32T

        • 一、简介

          • AIBOX-1684XB-32简介
        • 二、快速上手

          • 初次使用
          • 网络配置
          • 磁盘使用
          • 内存分配
          • 风扇策略
          • 固件升级
          • 交叉编译
          • 模型量化
        • 三、应用开发

          • 开发简介

            • Sophgo SDK开发
            • SOPHON-DEMO简介
          • 大语言模型

            • 部署Llama3示例
            • Sophon LLM_api_server开发
            • 部署MiniCPM-V-2_6
            • Qwen-2-5-VL图片视频识别DEMO
            • Qwen3-chat-DEMO
            • Qwen3-Qwen Agent-MCP开发
            • Qwen3-langchain-AI Agent
          • 深度学习

            • ResNet(图像分类)
            • LPRNet(车牌识别)
            • SAM(通用图像分割基础模型)
            • YOLOv5(目标检测)
            • OpenPose(人体关键点检测)
            • PP-OCR(光学字符识别)
        • 四、资料下载

          • 资料下载
      • 1684X-416T

        • 简介

          • AIBOX-1684X-416简介
        • Demo简单操作指引

          • shimeta智慧监控demo的简单使用说明
      • RDK-X5

        • 简介

          • RDK-X5 硬件简介
        • 快速开始

          • RDK-X5 快速开始
        • 应用开发

          • AI在线模型开发

            • 实验01-接入火山引擎豆包 AI
            • 实验02-图片分析
            • 实验03-多模态视觉分析定位
            • 实验04-多模态图文比较分析
            • 实验05-多模态文档表格分析
            • 实验06-摄像头运用-AI视觉分析
          • 大语言模型

            • 实验01-语音识别
            • 实验02-语音对话
            • 实验03-多模态图片分析-语音对话
            • 实验04-多模态图片比较-语音对话
            • 实验05-多模态文档分析-语音对话
            • 实验06-多模态视觉运用-语音对话
          • ROS2基础开发

            • 实验01-搭建环境
            • 实验02-工作包的创建及编译
            • 实验03-运行 ROS2 话题通信节点
            • 实验04-ROS2 相机应用
          • 40pin-IO开发

            • 实验01-GPIO 输出(LED闪烁)
            • 实验02-GPIO 输入
            • 实验03-按键控制 LED
            • 实验04-PWM 输出
            • 实验05-串口输出
            • 实验06-IIC 实验
            • 实验07-SPI 实验
          • USB模块开发使用

            • 实验01-USB 语音模块使用
            • 实验02-声源定位模块使用
          • 机器视觉技术实战

            • 实验01-打开 USB 摄像头
            • 实验02-颜色识别检测
            • 实验03-手势识别体验
            • 实验04-YOLOv5物体检测
      • RDK-S100

        • 简介

          • RDK-S100 硬件简介
        • 快速开始

          • RDK-S100 硬件简介
        • 应用开发

          • AI在线模型开发

            • 实验01-接入火山引擎豆包 AI
            • 实验02-图片分析
            • 实验03-多模态视觉分析定位
            • 实验04-多模态图文比较分析
            • 实验05-多模态文档表格分析
            • 实验06-摄像头运用-AI视觉分析
          • 大语言模型

            • 实验01-语音识别
            • 实验02-语音对话
            • 实验03-多模态图片分析-语音对话
            • 实验04-多模态图片比较-语音对话
            • 实验05-多模态文档分析-语音对话
            • 实验06-多模态视觉运用-语音对话
          • ROS2基础开发

            • 实验01-搭建环境
            • 实验02-工作包的创建及编译
            • 实验03-运行 ROS2 话题通信节点
            • 实验04-ROS2 相机应用
          • 40pin-IO开发

            • 实验01-GPIO 输出(LED闪烁)
            • 实验02-GPIO 输入
            • 实验03-按键控制 LED
            • 实验04-PWM 输出
            • 实验05-串口输出
            • 实验06-IIC 实验
            • 实验07-SPI 实验
          • USB模块开发使用

            • 实验01-USB 语音模块使用
            • 实验02-声源定位模块使用
          • 机器视觉技术实战

            • 实验01-打开 USB 摄像头
            • 实验02-图像处理基础
            • 实验03-目标检测
            • 实验04-图像分割
      • AIBOX-M88(RK1828)

        • 一、简介

          • AIBOX-M88(RK1828) - 产品介绍
          • AIBOX-M88(RK1828) 硬件规格
          • AIBOX-M88(RK1828) 使用与安全
        • 二、快速开始

          • AIBOX-M88(RK1828) 镜像烧录
          • RK182X 硬件安装与验证
          • RK182X 开发环境快速搭建
          • RK182X SDK 总览
          • RK182X 环境搭建详解
          • RK182X 快速开始
          • 原厂 SDK 资料抽取记录
        • 三、开发指南

          • ClawChips 架构与原理
          • SKILL 使用手册
          • RK182X系列LLM推理(RK1828型号)
          • RK182X系列CNN推理(RK1828型号)
          • 模型转换
          • RK182X AI Agent 应用开发指南
          • RK182X 工业异常检测应用
        • 四、SDK 参考

          • RKNN3-SDK 概述

            • RKNN3 SDK 概述
          • RKNN3-Toolkit

            • RKNN3 Toolkit 安装与使用
          • RKLLM

            • RKLLM 设备端 LLM 推理
          • RK182X系列 NPU 概述与架构(RK1828型号)
          • RK182X INT8 量化推理部署
          • RK182X MPP 多媒体处理框架
          • MPP 详解

            • RK182X 视频解码
            • RK182X 视频编码
          • NPU 详解

            • RKNN 模型转换
            • RK182X NPU INT8 量化推理
            • RK182X 多模型并行推理
          • RGA 详解

            • RK182X RGA 2D 图形加速
          • VPU 详解

            • RK182X VPU 编解码
        • 五、硬件参考

          • RK182X系列 硬件架构概述(RK1828型号)
          • RK182X 引脚定义与复用配置
          • RK182X 引脚定义
          • RK182X 电源管理
          • RK182X 时钟与 PLL 配置
          • RK182X 时钟与频率配置
        • 六、实战教程

          • Hello World
          • Hello RK1828 - 第一个程序
          • RTSP 推流
          • RTSP 推流 + AI 分析
          • 视美泰AI龙虾一键部署
          • PaddleOCR-VL 文字识别
          • Qwen3-1.7B LLM 文本对话
          • AI 巡检多视角(Qwen3-VL 包装)
          • YOLOv5 目标检测
        • 七、资料下载

          • 资料下载
        • 八、常见问题

          • 常见问题
    • 核心板

      • C-3568BQ

        • 简介

          • C-3568BQ 简介
      • C-3588LQ

        • 简介

          • C-3588LQ 简介
      • GC-3568JBAF

        • 简介

          • GC-3568JBAF 简介
      • C-K1BA

        • 简介

          • C-K1BA 简介
    • 软件平台

      • ShiMetaPi Workbench

        • 一、产品简介

          • 产品概述
          • 核心架构
          • 功能入口
          • 支持的硬件
          • 版本说明
        • 二、快速入门

          • 安装与登录
          • 连接设备
          • 配置环境
          • 接入 AIHub
          • 首次调用模型
        • 三、用户指南

          • 工作区总览
          • 设备管理
          • 模型广场
          • 一键部署
          • 视觉 - SVP
          • 视觉 - 自定义模型
          • shimeta-py IDE
          • 终端
          • Agent 调试助手
          • 设置与资源
        • 四、常见问题

          • 安装与登录
          • 设备连接
          • 模型与部署
          • 视觉与运行时
          • 设置与其他
      • ShimetaPi软件源

        • 简介

          • ShimetaPi 软件源
        • Pico G1 (GK7206)

          • 快速开始

            • 安装与首次推理
            • shimeta_infer — 图片推理
            • shimeta_camera — 摄像头实时推理
            • SVP 场景检测
            • 文件传输与内置模型参考
            • 常见问题
          • HTTP API & Python SDK

            • HTTP API 参考
      • 模型微调训练平台

        • 一、平台介绍

          • 模型训练平台
        • 二、快速上手

          • 注册与登录
          • 创建第一个模型(30 分钟快速体验)
        • 三、训练指南

          • 数据准备与标注
          • 训练参数配置
          • 启动与监控训练
          • 模型评估与测试
        • 四、模型部署

          • 导出模型
          • 部署到边缘设备

内核配置与裁剪

本文档介绍 RK3588 Linux 内核(基于 Linux 6.1)的 Kconfig 配置系统、menuconfig 使用、模块管理以及针对硬件平台的裁剪策略。

适用范围: 在 PC 上的 RK3588 Linux SDK 中配置和裁剪内核,C-3588LQ V1.0 + SHIMETAPI-M5-R2A V1.0 底板硬件平台。


1. 概念基础

1.1 内核配置系统

Linux 内核使用 Kconfig 配置系统,通过 make menuconfig 等工具生成 .config 文件,控制:

状态标记含义体积影响
=y编译进内核增大内核镜像
=m编译为模块模块按需加载
(留空)不编译减小镜像,但功能缺失

RK3588 在 SDK 中默认使用 rockchip_linux_defconfig 作为基础配置(defconfig 是内核默认配置文件的统称),并支持 *.config 片段文件叠加。

1.2 RK3588 内核特性

  • 基础版本:Linux 6.1(CONFIG_ROCKCHIP_VOP2=y 而非 RK3568 的 CONFIG_ROCKCHIP_VOP)
  • 双簇 CPU:小核 Cortex-A55 + 大核 Cortex-A76,共 8 核
  • 内置 NPU(6 TOPS):CONFIG_ROCKCHIP_NPU=y
  • 内置 VOP2/VOP3 显示控制器

2. 准备工作

2.1 硬件 / 软件清单

项目内容
主控板C-3588LQ 核心板 + SHIMETAPI-M5-R2A 底板
调试串口线USB 转 TTL(3.3V),波特率 1500000
存储设备eMMC / SD 卡(16GB+)
开发电脑Ubuntu 20.04/22.04,已配置 RK3588 Linux SDK

2.2 确认设备当前内核

开发板:确认内核版本(用于对照裁剪目标):

uname -r

输出:

6.1.141
uname -a

输出:

Linux linaro-alip 6.1.141 #11 SMP Fri Oct  9 10:22:09 CST 2026 aarch64 GNU/Linux
zcat /proc/config.gz | head -5

/proc/config.gz 存在(47307 bytes),解压后即可查看当前正在运行的内核配置。


3. menuconfig 操作

3.1 进入配置界面

电脑端:

cd <SDK_PATH>/kernel

# 加载默认配置
make ARCH=arm64 rockchip_linux_defconfig

# 启动图形化配置
make ARCH=arm64 menuconfig

也可以通过 SDK 入口间接进入:

cd <SDK_PATH>
./build.sh kernel    # 在编译过程中断(Ctrl+C)后会自动进入 kernel 目录

3.2 操作键速查

按键功能
↑ ↓上下移动光标
Enter进入子菜单
Y编译进内核(*)
M编译为模块(M)
N不编译
?查看帮助信息
/搜索配置项
Space循环切换 Y/M/N
Esc Esc返回上级菜单
Tab切换焦点到按钮

3.3 搜索配置项

按 / 键输入关键字(例如 CONFIG_DRM):

Symbol: DRM [=y]
Type : bool
Prompt: Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
  Location:
    -> Device Drivers
      -> Graphics support
  Defined at drivers/gpu/drm/Kconfig:12

3.4 内核配置文件路径

文件说明路径
.config当前生效的内核配置<SDK>/kernel/.config
rockchip_linux_defconfigRK3588 默认配置kernel/arch/arm64/configs/rockchip_linux_defconfig
*.config 片段功能片段配置kernel/arch/arm64/configs/

4. 模块管理(开发板端)

4.1 查看已加载模块

开发板:

lsmod                    # 列出已加载模块
modinfo <module_name>    # 模块详细信息
modinfo -p <module_name> # 模块参数

4.2 加载 / 卸载模块

开发板:

insmod /path/to/module.ko    # 加载单个模块
modprobe <module_name>       # 按依赖关系加载

rmmod <module_name>          # 卸载
modprobe -r <module_name>     # 连带卸载依赖

4.3 模块开机自动加载

开发板: 在 /etc/modules-load.d/ 下放一个 .conf 文件:

# 创建自定义自动加载列表
cat > /etc/modules-load.d/my-modules.conf << 'EOF'
g_mass_storage
rtl8821cu
EOF

重启后系统会自动 modprobe 这些模块。


5. 设备驱动配置关键项

RK3588 SDK 的典型配置路径:

5.1 显示驱动配置

Device Drivers → Graphics support →
  <*> Direct Rendering Manager (DRM)
  [*]   DRM driver for Rockchip
  [*]     Rockchip VOP2
  <*>   Rockchip VOP2 gamma LUT
  <*>   DRM bridge IC support

5.2 NPU 驱动

Device Drivers →
  <*> Rockchip NPU support

确认:出厂 SDK 已启用 NPU。开发板上执行 dmesg | grep rknpu 会显示 RKNPU fdab0000.npu: RKNPU: rknpu iommu is enabled。

5.3 多媒体驱动

Device Drivers → Multimedia support →
  <*> Rockchip Camera driver
  <*> Rockchip ISP driver
  <*> Video4Linux (V4L) drivers

5.4 网络驱动

Device Drivers → Network device support →
  <*> Ethernet driver support
    <*>   Rockchip GMAC driver
  <*> Wireless LAN
    <*>   Realtek 8821CU/8811CU support

5.5 USB 驱动

Device Drivers → USB support →
  <*> Support for Host-side USB
  <*>   Rockchip USB controller
  <*> USB Gadget Support
    <*>   USB Gadget functions

5.6 IO 电压域

Device Drivers →
  <*> Rockchip IO Voltage Domain support

RK3588 多个 IO 电压域通过设备树 pmu_io_domains 配置,编译内核时需启用对应支持。


6. 内核裁剪(减小体积)

6.1 裁剪策略

策略操作预期减小
关闭调试选项关闭 CONFIG_DEBUG_KERNEL 等~2-5MB
移除不用的驱动关闭未用的网卡、声卡、摄像头驱动~1-3MB
使用模块化不常用驱动编译为模块(=m)减小内核镜像
关闭文件系统支持只留需要的 ext4 等~0.5-1MB
关闭网络协议栈如不需要网络,可整个裁剪~1-2MB

6.2 建议关闭的配置项

电脑端 编辑内核 .config(或 menuconfig 逐项取消):

# 调试选项(量产固件建议关闭)
CONFIG_DEBUG_KERNEL=n
CONFIG_DEBUG_INFO=n
CONFIG_DYNAMIC_DEBUG=n
CONFIG_PRINTK=n        # 如不需要内核日志
CONFIG_MAGIC_SYSRQ=n

# 不常用的文件系统
CONFIG_F2FS_FS=n
CONFIG_BTRFS_FS=n
CONFIG_XFS_FS=n
CONFIG_JFS_FS=n
CONFIG_REISERFS_FS=n

# 不常用的网络协议
CONFIG_IPV6=n          # 如不需要 IPv6
CONFIG_WIRELESS=n      # 如不需要 WiFi
CONFIG_BT=n            # 如不需要蓝牙

# 不相关的驱动
CONFIG_SOUND=n         # 如不需要音频
CONFIG_DRM=n           # 如不需要显示(无头设备)

6.3 使用配置片段

RK3588 SDK 支持配置片段文件:

电脑端:

# 查看 RK3588 SDK 自带的片段
ls buildroot/configs/rockchip/
# 包含: adbd.config  audio.config  base.config  benchmark.config  bt.config
#       camera.config  chromium.config  debug.config  display.config
#       game.config  gpu.config  network.config  ...

构建时这些片段会自动合并到内核配置中。


7. 保存配置并编译

7.1 保存为最小配置

电脑端:

# 保存精简配置
make ARCH=arm64 savedefconfig

# 替换默认配置(注意:会覆盖原默认配置!)
cp defconfig arch/arm64/configs/rockchip_linux_defconfig

# 编译内核
cd <SDK_PATH>
./build.sh kernel

7.2 Buildroot 场景

如果用 Buildroot 构建,内核配置直接由 Buildroot 管理:

电脑端:

# 在 Buildroot 配置内核
cd <SDK_PATH>
source envsetup.sh rockchip_rk3588
make linux-menuconfig

# 保存到 BR 默认配置
make linux-update-defconfig

# 编译
make

7.3 对比编译配置和运行配置

电脑端 vs 开发板对比:

# 开发板:导出运行配置
zcat /proc/config.gz | gunzip > /tmp/running_config

# 电脑端:取出编译配置
cat <SDK_PATH>/kernel/.config > /tmp/build_config

# 对比
diff /tmp/build_config /tmp/running_config

仅做参考。实际运行配置可能受 bootargs、initramfs、内核命令行影响。


8. Kconfig 语法参考

8.1 配置项定义

# 定义菜单项
menu "Rockchip Drivers"

# 布尔选项(Y/N)
config ROCKCHIP_DRM_VOP
    bool "Rockchip VOP driver"
    depends on DRM_ROCKCHIP
    default y
    help
      Rockchip VOP (Video Output Processor) driver.

# 三态选项(Y/M/N)
config ROCKCHIP_WIFI
    tristate "Rockchip WiFi support"
    depends on WLAN
    help
      Rockchip WiFi module support.

endmenu

8.2 Makefile 条件编译

# CONFIG_ROCKCHIP_DRM_VOP=y 时编译 vop.o
obj-$(CONFIG_ROCKCHIP_DRM_VOP) += vop.o

# CONFIG_ROCKCHIP_WIFI=m 时编译为模块
obj-$(CONFIG_ROCKCHIP_WIFI) += rkwifi.o

9. 故障排除

9.1 menuconfig 显示乱码

现象: make menuconfig 界面显示乱码或无法正常显示。

解决方案:

电脑端:

sudo apt-get install libncurses5-dev
export LANG=en_US.UTF-8

9.2 内核编译后无法启动

现象: 内核崩溃(Kernel Panic)或无法挂载根文件系统。

解决方案:

  1. 确认保留了 CONFIG_EXT4_FS=y(根文件系统通常是 ext4)
  2. 确认保留了 CONFIG_MMC_BLOCK=y(eMMC/SD 卡驱动)
  3. 用原始 rockchip_linux_defconfig 重新编译,逐步裁剪定位问题

9.3 模块加载失败

现象: modprobe 提示 Module XXX not found 或 Invalid module format。

解决方案:

开发板:

modinfo <module>.ko        # 查看模块信息(路径、vermagic)
uname -r                   # 查看当前内核版本

# 重新编译与内核版本完全匹配的模块

模块的 vermagic 字段必须与运行内核一致,否则拒绝加载。


相关文档

  • 01_Linux_SDK编译 — SDK 编译流程
  • 03_设备树详解与实践 — 设备树配置
  • 05_hardware-reference/00_硬件事实基线 — 硬件事实清单
在 GitHub 上编辑此页
Prev
Linux SDK编译
Next
设备树详解与实践