自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

原创 设备树子系统与驱动开发入门

对于驱动开发工程师而言,设备树配置的正确性直接决定了驱动程序能否被内核正确加载。据统计,绝大多数驱动初始化失效(如 probe 函数未执行、GPIO 控制异常、中断未响应)的原因,并非源于驱动代码逻辑错误,而是由于设备树节点描述与驱动期望不符。本文将首先介绍如何在内核源码中定位目标设备树文件,随后深入剖析设备树核心属性的配置规范与常见误区。

2026-02-11 21:00:00 797

原创 Linux 显示服务器与合成器架构详解

本文将深入解构现代合成器(Compositor)的内部架构,剖析从应用渲染到屏幕显示的完整数据流,揭示零拷贝(Zero-Copy)、直接扫描(Direct Scanout)以及原子显示提交(Atomic KMS)等核心机制背后的工程原理。

2026-02-05 21:00:00 1156 1

原创 内核驱动调试接口与使用方法入门

内核态程序运行时,无法随意暂停系统。因此,我们需要构建一套从日志记录到实时追踪,再到现场分析的完整工具箱。本文将系统梳理 Linux 内核驱动开发中最高频、最实用的调试接口与方法。

2026-02-03 21:00:00 787

原创 字符设备框架与驱动开发入门

字符设备是一种以字节流方式读写的设备。与块设备(如硬盘)不同,它没有固定的块大小,通常按字节顺序访问。本文将带你从零开始写一个完整的字符设备驱动,打通从用户态(User Space)到内核态(Kernel Space)的交互通路。

2026-01-27 21:00:00 620

原创 Linux DRM GPU 驱动框架详解

在内核态,DRM(Direct Rendering Manager)子系统是所有 GPU 驱动的通用框架。特定硬件的 GPU 驱动(如 i915, amdgpu, panfrost 等)在 DRM 框架下运行。它们接收来自用户态的命令,管理 GPU 硬件资源(如显存、寄存器、命令队列),调度 GPU 执行任务,并通过中断和事件(如 dma_fence)将完成状态通知回用户态。

2026-01-22 21:00:00 775

原创 中断子系统与驱动开发入门

本文将以 GPIO 按键为例,从零开始构建一个完整的中断驱动程序,帮助你掌握从设备树描述到驱动代码实现的全流程。

2026-01-21 21:00:00 1204

原创 SPI 子系统与驱动开发入门

本文将以一个典型 SPI OLED 模块(SSD1306 控制器)为例,从零开始构建一个完整的 SPI 设备驱动,帮助你掌握从设备树描述到驱动代码实现的全流程。

2026-01-15 21:00:00 1246

原创 Linux KMS 与显示管线详解

KMS 是 DRM 的一部分,负责在内核中配置显示硬件的模式(分辨率、刷新率、时序)和输出状态,并驱动显示管线(planes、CRTC、encoder、connector、panel)。显示管线通常涉及多个硬件单元(如 GPU 渲染输出、硬件合成模块、Overlay/Planes、缩放器、CRTC、Encoder、Panel),具体实现依赖于不同的 SoC 或显卡架构。它既要保证性能(低延迟、低拷贝),又要保证一致性(避免撕裂),并遵循硬件功能和带宽约束。

2026-01-07 21:00:00 1926

原创 I2C 子系统与驱动开发入门

在 RK3588 等瑞芯微平台及各类嵌入式 Linux 系统中,I2C 是最常见的低速通信总线。无论是温湿度传感器、陀螺仪、电源管理芯片 (PMIC),还是触控 IC、显示接口转换芯片,绝大多数外设都依赖 I2C 进行控制。本文将从零开始,构建一个完整的 I2C 设备驱动,掌握从设备树描述到驱动代码实现的全流程,并介绍工业级驱动开发常用的 regmap 框架。

2025-12-24 08:00:00 679

原创 Linux DRM 图形与显示框架详解

在早期的 Linux 图形系统中,图形硬件的访问权限通常由 X Server 等单一、庞大的用户态程序独占。这种模式存在诸多弊端:系统稳定性差(X Server 崩溃可能导致整个图形界面瘫痪)、缺乏统一的内存管理和多应用协调机制,且无法安全地将渲染能力开放给普通应用程序。DRM 将图形硬件的管理权收归内核,为用户空间提供了一个安全、高效、统一的图形与显示服务框架。

2025-12-17 17:50:46 934

原创 GPIO 子系统与驱动开发入门

本文将从 GPIO 控制入手,通过编写一个简单的 GPIO 驱动,帮助你理解 Linux 内核中 GPIO 子系统的工作机制。

2025-12-03 21:00:00 630

原创 编写最简单的 Platform 驱动

Platform 驱动的本质非常简单——它只是 Linux 驱动模型(Device/Driver Model)的一种落地实现。为了拨开云雾,我们来编写一个最简单的 Platform 驱动,这篇文章将从原理到实操,带你走完 Platform 驱动的最小闭环,让你真正理解其核心思想。

2025-10-14 20:22:23 807

原创 搭建最简单的嵌入式 Linux 内核驱动开发环境(香橙派 5 Pro + Armbian)

本文面向具备 Linux 命令行与 C 语言基础的新手开发者,旨在帮助你在 ARM 单板机(SBC)上快速开启 Linux 内核驱动开发之旅。我们将从零开始,手把手带你搭建一套完整、高效且可复现的开发环境,涵盖硬件准备、系统烧录、编写驱动、交叉编译、部署和调试等全流程。本文以 香橙派 5 Pro 开发板和 Armbian 系统为例,但核心思路也适用于其他 ARM SBC 及基于 Debian 的发行版。

2025-09-29 21:30:00 2192

原创 编写最简单的 Linux 内核驱动(Hello World)

这篇文章是为像你一样,具备基础 Linux 命令行和 C 语言知识的初学者量身打造的。我们的目标非常明确:创建一个能在内核日志中打印出 "Hello, World!" 的模块。这是一个最简单、最经典的入门实践,能让你完整地体验一个内核模块的生命周期:编码 → 编译 → 加载 → 验证 → 卸载。

2025-09-25 20:00:00 2300

原创 搭建最简单的 Linux 内核驱动开发环境(Windows/WSL2)

本文为C语言开发者提供在WSL2环境下搭建Linux内核模块开发环境的详细指南。首先介绍WSL2的核心优势,强调其完整内核特性对内核开发的必要性。随后分步骤讲解:1)Windows端WSL2的安装与配置;2)Linux端编译工具链的安装;3)获取并编译匹配的WSL2内核源码;4)编写并编译"Hello World"内核模块;5)模块加载与日志查看方法。最后提供常见问题解决方案,如模块版本不匹配、日志输出问题等。通过本指南,开发者可在Windows系统下快速构建Linux内核开发环境。

2025-09-18 20:00:00 1905 1

原创 Linux、开源社区与 AI 技术期刊 —— 2025.09 W2

1. Linux 动态 —— 内核、驱动、图形栈与发行版2. 开源社区 —— 热门项目、实用工具与平台生态3. AI 前沿 —— 开源模型、平台与基础工具

2025-09-15 21:14:41 1075

原创 解密 Linux 内核驱动:它究竟是做什么的?

或许你会问:“Linux 内核已经很成熟了,我还有必要学驱动吗?非常有必要。因为在定制化硬件、新兴国产芯片平台或特定外设场景下,驱动往往是决定项目能否落地的那把“钥匙”。在后续文章中,我们将结合 Rockchip 平台(如 RK3588s、RK3399),带你从零开始编写、调试并优化第一个驱动程序,真正掌握这项核心技能。

2025-09-11 21:03:44 938

原创 Linux 图形与显示硬件架构总览

本文以瑞芯微RK3588平台为例,详细解析了Linux图形显示系统的硬件架构与软件交互链路。系统主要由GPU(Mali-G610)、显示控制器(VOP2)、视频处理单元(VPU3.0)和专用2D加速引擎(RGA3)等核心模块构成,通过DRM/KMS框架实现软件管控。重点阐述了各硬件模块的功能特点、内部架构及协同工作流程,包括GPU的并行渲染、显示控制器的多图层处理、VPU的零拷贝播放机制等关键技术。文章还揭示了从应用层到硬件层的完整交互链路,为图形显示系统的开发与优化提供了清晰的架构认知基础。

2025-09-09 20:00:00 1175 2

原创 Linux 图形与显示软件架构总览

本文系统性地剖析了Linux图形与显示系统的架构与实现。该系统采用分层设计,用户态通过Mesa3D实现图形API,内核态通过DRM/KMS框架管理硬件资源,二者通过ioctl高效协作。文章详细介绍了渲染和显示两大阶段的工作流程:应用通过图形API生成指令,经DRM驱动提交GPU执行,合成器将多窗口内容组合后,由KMS调度在V-Sync时完成页面翻转显示。同时阐述了SoC与PC平台的架构差异,包括内存管理、功耗策略等方面的不同。

2025-09-02 19:30:00 958

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除