<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Android/Linux驱动开发传帮带学习，让驱动入门门槛更低！]]></title><description><![CDATA[爱安卓，爱linux，爱生活。]]></description><link>https://blog.youkuaiyun.com/qq_30624591</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_30624591]]></copyright><item><title><![CDATA[AI都能写代码了，是不是就不需要古法编程了，尤其是驱动开发？]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/168770779</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/168770779</guid><author>qq_30624591</author><pubDate>Thu, 22 Oct 2026 18:00:30 +0800</pubDate><description><![CDATA[AI虽能提升编码效率，但无法替代程序员的核心能力。复杂问题排查、需求权衡、系统协调与故障定位等关键环节仍需深厚技术功底。盲目依赖AI会导致调试低效、无法解决深层问题。真正高效的开发，是基于扎实技术积累，合理运用AI工具，实现效率与质量的双重提升。]]></description><category></category></item><item><title><![CDATA[adb批量执行机箱板卡操作，压测或者查看数据]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/166777996</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/166777996</guid><author>qq_30624591</author><pubDate>Mon, 28 Sep 2026 10:12:48 +0800</pubDate><description><![CDATA[本文介绍批量执行ADB命令的Shell脚本，涵盖USB链路下多设备的EMMC寿命查询、网络连通性检测、ADB网络连接/断开设置，以及批量获取设备开机时间（uptime）以监控重启情况。同时包含内存与CPU压力测试指令，实现对多板卡设备的自动化运维与健康状态评估。]]></description><category></category></item><item><title><![CDATA[RK3588 debian11的SDK代码新增一个分区怎么修改]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/164374602</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/164374602</guid><author>qq_30624591</author><pubDate>Fri, 04 Sep 2026 19:03:08 +0800</pubDate><description><![CDATA[<think>我们只需要根据提供的内容生成摘要，≤150字。内容给的是在RK3588 Debian11 SDK新增ext4分区（share）的修改步骤，包括parameter.txt、package-file、创建镜像、fstab等。摘要需要简洁概括核心方法和关键点。注意字数限制。</think>在RK3588 Debian11 SDK中新增ext4分区（如share），需修改parameter.txt定义分区地址（十六进制扇区），package-file声明镜像，用dd和mkfs.ext4生成空镜像，可选]]></description><category></category></item><item><title><![CDATA[Ubuntu服务器上管理 SSH 公钥和私钥]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/164338852</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/164338852</guid><author>qq_30624591</author><pubDate>Thu, 03 Sep 2026 19:02:54 +0800</pubDate><description><![CDATA[<think>我们需要理解用户请求。用户说：“根据以下内容，生成≤150字的文章摘要”。我们需要基于给定的内容生成一个简短的摘要，不超过150字。内容是Ubuntu服务器上管理SSH公钥的指南。 要求生成摘要，不是摘要吗？我们需要提取关键点：生成密钥、上传公钥、替换旧公钥、安全加固。长度限制150字，中文按字计。我们要写一个简洁的摘要。 确保不能包括markdown格式？可以适当简化。写一段话。 现在我来构思。首先第一句话介绍目的。然后提炼步骤：本地生成ed25519密钥，用ssh-copy-id或手动将公]]></description><category></category></item><item><title><![CDATA[RK3568 Android15以太网网卡驱动框架分析和主要接口流程]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/164087241</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/164087241</guid><author>qq_30624591</author><pubDate>Wed, 26 Aug 2026 14:02:54 +0800</pubDate><description><![CDATA[在RK3568的Android 15系统上，网卡驱动的核心框架是Linux内核的stmmac驱动，辅以Rockchip的平台粘合层（。初始化：始于设备树解析，经由平台驱动匹配，最终完成网络设备注册。配置：硬件参数和PHY管理通过MDIO总线进行。数据流：依赖DMA描述符环进行高效的数据包收发。Android集成：网卡设备对上层Android系统（如）是透明的，所有网络操作最终都通过标准Linux网络协议栈和Socket接口与驱动交互。]]></description><category></category></item><item><title><![CDATA[RK3568_Android15相机数据流分析]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/164051167</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/164051167</guid><author>qq_30624591</author><pubDate>Tue, 25 Aug 2026 11:50:13 +0800</pubDate><description><![CDATA[相机数据流：传感器 → MIPI CSI-2→ VICAP (CIF) → ISP (含3A) → ISPP → 应用。VICAP 获取 RAW。ISP 输出 YUV。ISPP 根据需要进行缩放/转换。在 Rockchip 平台上，这被认为是标准路径。]]></description><category></category></item><item><title><![CDATA[RK3568-Android15调试Camera摄像头功能详解]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/164048256</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/164048256</guid><author>qq_30624591</author><pubDate>Tue, 25 Aug 2026 10:43:05 +0800</pubDate><description><![CDATA[我会从最基础的硬件连接开始，分析camera的数据链路，深入到设备树(DTS)的修改、内核驱动的确认，HAL层的配置，debug的过程，最终打开camera apk验证拍照、录像功能。这是一切调优工作的起点和基础。建议先用 v4l2-ctl --list-devices 查看系统中所有的视频设备，并对每一个设备都运行一次 --list-formats-ext，很可能就能找到支持 YUYV 或 NV12 格式的 YUV 输出节点，如果没有或者这样的节点抓不到数据帧，就直接抓取raw数据，然后在进行格式转换。]]></description><category></category></item><item><title><![CDATA[OTA功能验证过程笔记]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/164029652</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/164029652</guid><author>qq_30624591</author><pubDate>Mon, 24 Aug 2026 17:59:18 +0800</pubDate><description><![CDATA[基于现有 LVM 分区，搭建 A/B 双根分区，实现 OTA 升级（用 dd 烧录非活跃分区并切换启动分区）现状是：根分区：/dev/mapper/pve-root，大小 39.6G，已用空间可能远小于此（建议先 df -h / 查看）。数据池：pve-data-tpool 总 53.9G，其中 pve-mydata 占 50G 挂载在 /mnt/mydata，另外还有 pve-data（thin 卷，可能未使用）。交换：8G。]]></description><category></category></item><item><title><![CDATA[OTA升级和AB分区切换]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/164027976</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/164027976</guid><author>qq_30624591</author><pubDate>Mon, 24 Aug 2026 17:14:24 +0800</pubDate><description><![CDATA[最近搞了一下OTA升级，大概流程就是从HTTP服务器下载img固件压缩包，然后解压，比对md5值，然后解压，同步img内容到另一个分区（注意添加AB分区，A和B分区相互切换，完成OTA升级功能），然后修改切换分区的grub配置文件，然后重启，完成OTA升级和分区的切换。]]></description><category></category></item><item><title><![CDATA[PVE-debian13系统实现OTA功能的一些验证操作]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/163859408</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/163859408</guid><author>qq_30624591</author><pubDate>Tue, 18 Aug 2026 16:55:19 +0800</pubDate><description><![CDATA[摘要：本文详细介绍了在LVM分区环境下搭建A/B双根分区系统以实现OTA升级功能的方案。首先通过删除原有数据池释放空间，创建两个15G的根分区(rootfs_a和rootfs_b)并格式化。随后设置数据分区，编写GRUB启动菜单实现分区切换功能。通过rsync克隆根分区数据，生成文件系统镜像并验证OTA升级流程。最后说明如何调整分区布局，包括扩容、设置默认启动分区以及删除旧根分区释放空间的注意事项。整个方案强调操作前需备份数据，并建议在救援模式下执行关键分区操作。]]></description><category></category></item><item><title><![CDATA[Linux系统实现OTA功能第一步---导出当前运行系统（debian）的镜像]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/163718402</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/163718402</guid><author>qq_30624591</author><pubDate>Thu, 13 Aug 2026 10:38:19 +0800</pubDate><description><![CDATA[摘要：直接使用dd命令备份运行中的根分区可能导致镜像不一致。推荐采用文件级同步方法：1) 用truncate创建合适大小的空镜像文件并格式化为ext4；2) 挂载镜像后使用rsync同步根文件系统，排除临时目录；3) 卸载后获得完整系统镜像。这种方法避免了直接复制空闲空间，确保镜像文件系统一致性，且能灵活控制镜像大小。（149字）]]></description><category></category></item><item><title><![CDATA[Linux中断上半部和下半部是个啥，什么时候要分中断上半部和下半部]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/163693450</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/163693450</guid><author>qq_30624591</author><pubDate>Wed, 12 Aug 2026 11:35:53 +0800</pubDate><description><![CDATA[这个问题问到了点子上，理解“为什么分上下半部”是写出健壮驱动的关键。]]></description><category></category></item><item><title><![CDATA[Linux中断子系统是个啥]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/163693031</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/163693031</guid><author>qq_30624591</author><pubDate>Wed, 12 Aug 2026 11:28:09 +0800</pubDate><description><![CDATA[简单来说，。它的主要作用是，确保CPU能及时响应外设请求，同时高效地完成其他任务。]]></description><category></category></item><item><title><![CDATA[如果TP在休眠唤醒过后，出现无法操作，中断也不响应了，怎么排查问题和确认问题]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/163692165</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/163692165</guid><author>qq_30624591</author><pubDate>Wed, 12 Aug 2026 11:07:41 +0800</pubDate><description><![CDATA[摘要： TP休眠唤醒后失效问题需系统性排查。首先检查软件状态（/proc/interrupts、dmesg日志），确认中断注册与I2C通信是否正常。其次通过示波器测量TP中断引脚信号：若无信号，可能是硬件/固件问题（如供电异常）；有信号但系统无响应，则检查驱动中断配置（如IRQF_NO_SUSPEND标志）或唤醒锁竞争。常见解决方案包括修正中断触发方式、增加硬件复位流程、检查电平匹配。若仍无效，需联合厂商排查固件兼容性。核心步骤：日志分析→信号测量→配置修正→硬件复位→厂商支持。]]></description><category></category></item><item><title><![CDATA[RK3568_Android15实现安卓全栈开发----操作GPIO控制LED]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/163672681</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/163672681</guid><author>qq_30624591</author><pubDate>Tue, 11 Aug 2026 17:37:23 +0800</pubDate><description><![CDATA[本文介绍了在RK3568（Android 15）平台上实现App控制GPIO的全流程方案。通过硬件服务架构，从设备树配置、内核驱动开发到HAL层实现，详细说明了GPIO控制LED的完整调用链。关键步骤包括：1）在设备树中定义GPIO节点；2）编写字符设备驱动实现GPIO操作；3）通过ioctl接口提供控制命令；4）创建用户空间设备节点。该方案采用标准Android硬件抽象架构，适用于需要从应用层直接操作底层硬件的开发场景，为Android驱动开发者提供了完整的参考实现。]]></description><category></category></item><item><title><![CDATA[mipi的像素时钟怎么计算]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/163662697</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/163662697</guid><author>qq_30624591</author><pubDate>Tue, 11 Aug 2026 11:40:20 +0800</pubDate><description><![CDATA[摘要： MIPI像素时钟（PixelClock）的计算基于图像时序参数，公式为PixelClock=H_Total×V_Total×FPS，其中H_Total和V_Total分别包含有效区域和消隐区（前沿、后沿、同步脉宽）。以800×1280分辨率、60Hz帧率为例，计算得像素时钟约67.05MHz。进一步推导MIPI单通道速率需考虑数据格式（如RGB888）、8b/10b编码（25%开销）及协议头部（10-15%），最终结合通道数和DDR采样得到物理层时钟（如2通道配置约695MHz）。实际应用中需参考芯]]></description><category></category></item><item><title><![CDATA[addr2line怎么使用]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/163638093</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/163638093</guid><author>qq_30624591</author><pubDate>Mon, 10 Aug 2026 14:39:29 +0800</pubDate><description><![CDATA[addr2line是 GNU binutils 工具集中的一个实用程序，它的核心功能是将程序地址或符号+偏移量转换成对应的源文件名和行号。这在调试程序崩溃、分析堆栈跟踪时非常有用。]]></description><category></category></item><item><title><![CDATA[linux驱动开发中，堆和栈是什么，它们有什么区别]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/163465692</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/163465692</guid><author>qq_30624591</author><pubDate>Tue, 04 Aug 2026 10:47:25 +0800</pubDate><description><![CDATA[Linux驱动开发中的堆与栈关键区别 内核开发中，栈（Stack）和堆（Heap）是两类核心内存区域： 栈：自动管理，固定大小（8KB~16KB），仅存临时变量，速度极快。严禁分配大对象，否则导致栈溢出引发内核崩溃。 堆：手动分配（kmalloc/vmalloc），空间大但需显式释放（kfree）。注意GFP_KERNEL（可休眠）与GFP_ATOMIC（中断上下文）标志选择，避免内存泄漏或OOM。 核心差异：栈自动回收、空间小、速度快；堆灵活但需手动管理，易碎片化。 实践准则：小变量用栈，大内存用堆且检查]]></description><category></category></item><item><title><![CDATA[对于出现内存跑飞问题，KASAN工具怎么使用]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/163464609</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/163464609</guid><author>qq_30624591</author><pubDate>Tue, 04 Aug 2026 10:37:13 +0800</pubDate><description><![CDATA[KASAN是Linux内核中检测内存错误的动态工具，使用流程为：配置编译内核（启用KASAN选项并选择模式）、运行测试复现问题、分析KASAN报告。报告会显示错误类型（如越界访问或释放后使用）、操作细节和调用栈，帮助定位问题代码。注意KASAN会显著影响性能，仅适用于调试环境，且对编译器版本有要求。不同架构可选通用、软件标签或硬件标签模式，后者开销最低但需硬件支持。关键是通过调用栈分析定位问题根源。]]></description><category></category></item><item><title><![CDATA[驱动开发常见内核问题的分析和处理--这篇文章顶得上一个师的力量]]></title><link>https://blog.youkuaiyun.com/qq_30624591/article/details/163444854</link><guid>https://blog.youkuaiyun.com/qq_30624591/article/details/163444854</guid><author>qq_30624591</author><pubDate>Mon, 03 Aug 2026 16:15:38 +0800</pubDate><description><![CDATA[保留现场：第一时间通过串口捕获完整、未经截断的日志。这是最重要的证据。复现问题：如果问题可以稳定复现，那已经解决了一半。尝试找出复现规律。启用调试武器常规调试printkdmesg。内存问题：开启 KASAN。锁问题：开启 lockdep。卡死问题：启用 softlockup_detector。简化问题：注释掉可疑的代码块，或使用最小配置，逐步缩小范围。定位修复：使用addr2lineobjdump等工具深入分析，最终修复并验证。记住一个关键点不要害怕崩溃。]]></description><category></category></item></channel></rss>