<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[文石_2009的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/farsight_2098</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; farsight_2098]]></copyright><item><title><![CDATA[把 Linux 的屏幕搬进 Windows 窗口]]></title><link>https://blog.csdn.net/farsight_2098/article/details/166581390</link><guid>https://blog.csdn.net/farsight_2098/article/details/166581390</guid><author>farsight_2098</author><pubDate>Thu, 24 Sep 2026 11:41:17 +0800</pubDate><description><![CDATA[本文介绍一款轻量级远程屏幕共享工具：服务端用纯C直接读取Linux帧缓冲 /dev/fb0，通过内嵌lodepng编码为PNG，经TCP（6000端口）推送；客户端基于Qt解包、解码并按需刷新显示。协议极简，仅以4字节大端长度头标识帧，支持客户端动态调节帧率（20–50ms），实现“最新帧优先”显示与等比缩放。全链路零外部依赖，适用于嵌入式无头设备调试，实测1920×720画面@5fps仅约8.1Mbps带宽，兼顾性能与可靠性，体现底层直读与最小可行设计的精髓。]]></description><category></category></item><item><title><![CDATA[Linux Framebuffer 截屏工具]]></title><link>https://blog.csdn.net/farsight_2098/article/details/166488711</link><guid>https://blog.csdn.net/farsight_2098/article/details/166488711</guid><author>farsight_2098</author><pubDate>Wed, 23 Sep 2026 17:30:02 +0800</pubDate><description><![CDATA[本文介绍在无GUI的嵌入式Linux环境下，通过直接读取/dev/fb0帧缓冲实现截屏的极简方案。利用mmap映射显存，结合ioctl获取屏幕参数，将32bpp ARGB数据转为24位BMP格式，手动构造54字节BMP头，倒序写入像素并处理行对齐填充。代码零依赖，适用于无X11/Wayland环境，可快速用于调试与开发。]]></description><category></category></item><item><title><![CDATA[无锁双实例软件看门狗：嵌入式Linux轻量级软狗完整实现]]></title><link>https://blog.csdn.net/farsight_2098/article/details/163530366</link><guid>https://blog.csdn.net/farsight_2098/article/details/163530366</guid><author>farsight_2098</author><pubDate>Thu, 06 Aug 2026 11:23:58 +0800</pubDate><description><![CDATA[本文介绍了一种基于GCC原子操作的无锁软件看门狗(SoftWatchdog)设计方案，具有热重启、多线程安全等特性。核心采用双实例+原子变量版本控制机制，通过__sync原子指令实现无阻塞操作，避免了传统互斥锁的性能瓶颈。系统支持动态切换实例、错误隔离、精准定位卡死任务，并通过10种测试场景验证了容错性和稳定性。该方案适用于嵌入式Linux环境，仅需5个基础API接口，具有低CPU开销、实时性强等优势，同时文章也指出了单实例限制等不足，并提供了完整实现代码和标准使用模板。]]></description><category></category></item><item><title><![CDATA[充电桩硬件开发踩坑：器件信息必须与CQC/CCC证书完全一致]]></title><link>https://blog.csdn.net/farsight_2098/article/details/163524431</link><guid>https://blog.csdn.net/farsight_2098/article/details/163524431</guid><author>farsight_2098</author><pubDate>Thu, 06 Aug 2026 09:46:21 +0800</pubDate><description><![CDATA[摘要： 充电桩认证中，关键元器件与证书信息不一致是常见驳回原因。工程师常忽略「制造商」和「生产厂」的区别，导致合规风险。CQC和CCC证书查询需严格核验字段：证书状态、制造商（需与BOM完全匹配）、生产厂（需备案）、型号、标准版本及有效期。区分CQC自愿认证与CCC强制认证，避免混用查询入口。供应商提供的PDF证书可能篡改，应以官方查询结果为准。典型案例显示，制造商与申请人不同将导致整机认证失败。建议选型阶段即通过CQC官网核验，避免后期返工。 ]]></description><category></category></item><item><title><![CDATA[Linux C 实战：基于 UDP + 自定义二进制协议的中心化广播聊天室]]></title><link>https://blog.csdn.net/farsight_2098/article/details/163473583</link><guid>https://blog.csdn.net/farsight_2098/article/details/163473583</guid><author>farsight_2098</author><pubDate>Tue, 04 Aug 2026 14:42:02 +0800</pubDate><description><![CDATA[本文实现了一个基于UDP的中心化聊天室系统，采用自定义二进制协议解决传统UDP聊天室的用户身份识别问题。系统核心特点包括：1）服务端中转广播模式，支持跨子网通信；2）自定义轻量协议（0x01标识+昵称+消息），兼容原始报文；3）客户端使用select实现单线程多路复用，同时处理键盘输入和网络消息；4）完善的边界校验与日志系统。项目采用纯C标准库，包含服务端管理模块（用户注册、消息广播）和客户端模块（协议编解码、IO并发），支持昵称注册、消息转发、同名覆盖等功能。]]></description><category></category></item><item><title><![CDATA[纯C无依赖二维码生成工具：从qrcodegen到自定义网页二维码导出]]></title><link>https://blog.csdn.net/farsight_2098/article/details/163154543</link><guid>https://blog.csdn.net/farsight_2098/article/details/163154543</guid><author>farsight_2098</author><pubDate>Fri, 24 Jul 2026 10:47:18 +0800</pubDate><description><![CDATA[本文介绍了一个基于纯C语言的二维码生成工具qrtool，支持BMP位图和HTML矢量两种输出格式。该工具整合了Nayuki的qrcodegen二维码库和配套BMP导出功能，新增了命令行参数解析和HTML输出模块。核心特点包括：零外部依赖、跨平台运行、支持自定义文本内容/纠错等级/尺寸边距等参数。特别对HTML输出进行了优化，生成的SVG矢量二维码具有无损缩放特性，适用于网页嵌入和打印场景。文章详细说明了代码架构、编译方法、使用示例，并提出了颜色自定义、Logo嵌入等后续优化方向。方案轻量高效，适合嵌入式。]]></description><category></category></item><item><title><![CDATA[全志 T113-i 截屏调试记录]]></title><link>https://blog.csdn.net/farsight_2098/article/details/161789930</link><guid>https://blog.csdn.net/farsight_2098/article/details/161789930</guid><author>farsight_2098</author><pubDate>Mon, 08 Jun 2026 09:57:29 +0800</pubDate><description><![CDATA[摘要：全志T113-i(TinaLinux)设备通过系统原生节点实现截屏，无需额外工具。截屏方法：通过串口/SSH终端执行&quot;echo 1.bmp &gt; /sys/class/disp/disp/attr/capture_dump&quot;命令，截图将保存为当前目录下的1.bmp文件。多屏场景下可先指定显示通道，如&quot;echo 0 &gt; /sys/class/disp/disp/attr/disp&quot;再执行截屏命令。该方案简单高效，充分利用系统原生功能。]]></description><category></category></item><item><title><![CDATA[全志T113嵌入式Linux：NAND分区实现Swap交换分区实战踩坑与最优方案]]></title><link>https://blog.csdn.net/farsight_2098/article/details/161661004</link><guid>https://blog.csdn.net/farsight_2098/article/details/161661004</guid><author>farsight_2098</author><pubDate>Wed, 03 Jun 2026 17:13:33 +0800</pubDate><description><![CDATA[本文针对全志T113芯片（128MB物理内存）在运行复杂应用时内存不足的问题，提出安全可靠的Swap扩容方案。通过实测对比三种实现方式，指出直接对MTD裸分区mkswap会导致UBIFS永久损坏和NAND闪存极速损耗的严重问题。推荐采用EXT4文件系统内创建SwapFile的方案，详细演示了分区格式转换、Swap文件创建和内核参数优化步骤。该方案相比裸分区Swap可显著降低闪存磨损，保持文件系统完整性。]]></description><category></category></item><item><title><![CDATA[基于UDP的简易的VPN中继系统实现：端点客户端与中继服务器]]></title><link>https://blog.csdn.net/farsight_2098/article/details/159643637</link><guid>https://blog.csdn.net/farsight_2098/article/details/159643637</guid><author>farsight_2098</author><pubDate>Mon, 30 Mar 2026 11:45:57 +0800</pubDate><description><![CDATA[本文实现的VPN中继系统基于UDP和TUN设备，以轻量级、易部署为核心设计理念，满足小型私有网络互通、跨网段通信等场景需求。系统核心优势在于无需复杂的内核模块开发，纯用户态实现IP层数据转发，同时通过心跳保活、自动重连、端点列表同步等机制保证通信稳定性。通过本文的解析，开发者可快速理解VPN中继系统的核心原理，并基于现有代码扩展更多高级功能。]]></description><category></category></item><item><title><![CDATA[Qt 纯数字虚拟键盘设计与实现]]></title><link>https://blog.csdn.net/farsight_2098/article/details/159281016</link><guid>https://blog.csdn.net/farsight_2098/article/details/159281016</guid><author>farsight_2098</author><pubDate>Fri, 20 Mar 2026 11:52:34 +0800</pubDate><description><![CDATA[本文介绍了在Qt中实现纯数字虚拟键盘的解决方案。针对小屏幕设备上传统键盘按钮过小、易误触的问题，作者开发了一个单独的数字键盘组件。该方案具有以下特点：1) 按键尺寸大，减少误触；2) 采用单例模式实现全局唯一实例；3) 通过事件过滤器自动检测输入框点击；4) 支持样式定制。实现过程中解决了布局间距控制、键盘位置计算等技术难点，并提供了CMake和QMake两种构建方式。该键盘组件具有易移植、高性能的特点，适合嵌入式触屏设备使用。]]></description><category></category></item><item><title><![CDATA[解决rcS脚本启动程序环境变量缺失：bash -lc 实用技巧]]></title><link>https://blog.csdn.net/farsight_2098/article/details/158617147</link><guid>https://blog.csdn.net/farsight_2098/article/details/158617147</guid><author>farsight_2098</author><pubDate>Tue, 03 Mar 2026 15:33:18 +0800</pubDate><description><![CDATA[嵌入式Linux开发中，程序在rcS里开机自启时经常出现环境变量缺失，手动运行却正常。本文从原理讲清楚为什么rcS环境变量少，并给出最简洁稳定的方案：bash -lc 启动程序，一行命令解决问题。]]></description><category></category></item><item><title><![CDATA[带触摸屏的usb屏幕调试记录]]></title><link>https://blog.csdn.net/farsight_2098/article/details/157900039</link><guid>https://blog.csdn.net/farsight_2098/article/details/157900039</guid><author>farsight_2098</author><pubDate>Mon, 09 Feb 2026 09:43:36 +0800</pubDate><description><![CDATA[摘要：开发者在RK3568和全志T113_i开发板上使用带HDMI和USB接口的触摸屏时遇到触摸不准问题。通过检查/dev/input下的event节点和I2C总线确认硬件连接正常，最终发现是触摸偏移导致。使用ts_calibrate工具校准后问题解决，证实是常见的触摸屏校准需求而非驱动问题。（149字）]]></description><category></category></item><item><title><![CDATA[Qt 实战：多 SQLite 数据库操作与 QSqlTableModel 绑定]]></title><link>https://blog.csdn.net/farsight_2098/article/details/157732732</link><guid>https://blog.csdn.net/farsight_2098/article/details/157732732</guid><author>farsight_2098</author><pubDate>Wed, 04 Feb 2026 16:21:27 +0800</pubDate><description><![CDATA[本文详细介绍了在Qt项目中如何通过唯一连接名实现多SQLite数据库的隔离操作。关键点包括：1）为每个数据库创建唯一连接名；2）使用QSqlTableModel绑定对应连接；3）通过select()加载数据。文章提供了完整示例代码，演示了两个数据库的独立操作，并强调了连接名唯一性、错误处理和资源释放等注意事项。该方法可扩展至任意数量的数据库，满足复杂项目的分库需求，是Qt数据库开发的实用技巧。]]></description><category></category></item><item><title><![CDATA[QT中使用QSqlTableModel快速展示SQLite3数据表（TableView实现）]]></title><link>https://blog.csdn.net/farsight_2098/article/details/157433875</link><guid>https://blog.csdn.net/farsight_2098/article/details/157433875</guid><author>farsight_2098</author><pubDate>Tue, 27 Jan 2026 15:53:20 +0800</pubDate><description><![CDATA[本文介绍了一种基于QT模型/视图架构的数据库可视化方法，通过QSqlTableModel和QTableView实现SQLite3数据表的零SQL展示。核心步骤包括：配置工程文件添加sql模块，建立数据库连接，初始化模型并绑定数据表，最后将模型与视图控件关联。该方法无需手动编写SQL查询语句，开发效率提升50%以上，支持自动数据同步、排序、筛选等功能。文章还提供了错误处理机制和扩展功能实现，如自定义表头、数据筛选、列排序等。]]></description><category></category></item><item><title><![CDATA[一个程序模拟 直流绝缘监测仪，一个程序模拟 直流绝缘监测仪上位机]]></title><link>https://blog.csdn.net/farsight_2098/article/details/157389680</link><guid>https://blog.csdn.net/farsight_2098/article/details/157389680</guid><author>farsight_2098</author><pubDate>Mon, 26 Jan 2026 10:43:51 +0800</pubDate><description><![CDATA[按照文档写了两个代码，模拟下面这个 直流绝缘检测仪]]></description><category></category></item><item><title><![CDATA[Linux 虚拟串口实战：socat 打造全双工串口通信环境]]></title><link>https://blog.csdn.net/farsight_2098/article/details/157389294</link><guid>https://blog.csdn.net/farsight_2098/article/details/157389294</guid><author>farsight_2098</author><pubDate>Mon, 26 Jan 2026 10:39:02 +0800</pubDate><description><![CDATA[本文介绍如何使用socat命令在Linux系统中创建虚拟串口对，实现全双工数据透传。通过核心命令&quot;sudosocat-d-d pty,raw,echo=0,link=/dev/ttyUSB0 pty,raw,echo=0,link=/dev/ttyUSB1&quot;，可快速创建映射到/dev/ttyUSB0和/dev/ttyUSB1的虚拟串口。文章详细解析了调试参数、串口模式参数和设备映射参数的功能，并提供了完整的操作步骤和通信验证方法。该方法适用于嵌入式开发、工控系统测试等场景，解决了物理串口]]></description><category></category></item><item><title><![CDATA[全志T113嵌入式Linux解决Qt5 QSQLITE驱动加载失败问题]]></title><link>https://blog.csdn.net/farsight_2098/article/details/157255572</link><guid>https://blog.csdn.net/farsight_2098/article/details/157255572</guid><author>farsight_2098</author><pubDate>Thu, 22 Jan 2026 15:44:27 +0800</pubDate><description><![CDATA[摘要：在全志T113 ARM架构嵌入式Linux开发板上部署Qt5程序时，SQLite数据库连接失败，提示驱动未加载。经分析，主要原因为：1) Qt插件路径未正确配置；2) 驱动文件架构不匹配（需ARM版）；3) 依赖库缺失。解决方案包括：检查驱动兼容性（file和ldd命令）、配置QT_PLUGIN_PATH环境变量、代码中指定插件路径（addLibraryPath），并确保权限和挂载正常。验证成功后程序可输出可用驱动列表并正常操作数据库。]]></description><category></category></item><item><title><![CDATA[Windows强制弹出移动硬盘：从常规到硬核的完整解决方案]]></title><link>https://blog.csdn.net/farsight_2098/article/details/156949208</link><guid>https://blog.csdn.net/farsight_2098/article/details/156949208</guid><author>farsight_2098</author><pubDate>Wed, 14 Jan 2026 17:01:47 +0800</pubDate><description><![CDATA[移动硬盘无法安全弹出？这篇指南提供了从基础到进阶的完整解决方案。首先关闭所有关联程序并重启资源管理器，解决80%的占用问题。若无效，可用资源监视器精准定位并结束占用进程。终极方案是使用磁盘管理工具强制脱机：图形界面操作或通过diskpart命令行（注意替换X为硬盘编号）。重要提醒：切勿直接硬拔，避免损坏文件系统；操作时务必确认选择的是移动硬盘而非系统盘。按照&quot;关闭程序→重启资源管理器→结束进程→强制脱机&quot;的流程，可100%解决弹出问题。]]></description><category></category></item><item><title><![CDATA[Linux内核实战精髓实录29 - bonding驱动程序多物理网卡绑定，实现激活备份模式]]></title><link>https://blog.csdn.net/farsight_2098/article/details/155487724</link><guid>https://blog.csdn.net/farsight_2098/article/details/155487724</guid><author>farsight_2098</author><pubDate>Tue, 13 Jan 2026 13:46:28 +0800</pubDate><description><![CDATA[摘要：Linux bonding驱动通过将多块物理网卡绑定为虚拟网卡，提升网络可靠性。激活备份模式（Active-Backup）仅使用一块活跃网卡，其余作为备份，故障时自动切换。该模式无需交换机支持，部署简单，适合高可靠性场景。配置步骤包括加载内核模块、设置bond0虚拟网卡和绑定从属网卡，并通过MIimon或ARP监测链路状态。故障切换在毫秒级完成，确保业务连续性。优化建议包括调整监测间隔、结合ARP监测及选择合适内核版本，以实现最佳性能和可靠性。]]></description><category></category></item><item><title><![CDATA[Linux内核实战精髓实录28-VLAN设置指南：命令行与配置文件实现虚拟局域网划分]]></title><link>https://blog.csdn.net/farsight_2098/article/details/155487653</link><guid>https://blog.csdn.net/farsight_2098/article/details/155487653</guid><author>farsight_2098</author><pubDate>Sun, 04 Jan 2026 17:20:55 +0800</pubDate><description><![CDATA[本文详细介绍了Linux系统中VLAN的配置方法。VLAN通过逻辑划分网络提升安全性、隔离广播域并优化带宽利用。配置需依赖8021q内核模块和iproute2工具，提供两种实现方式：临时命令行配置（重启失效）和永久配置文件（CentOS使用nmcli/network-scripts，Ubuntu使用netplan）。文章还涵盖高级特性（VLAN优先级和QinQ）及常见故障排查方法，强调生产环境应使用永久化配置，并注意不同发行版的网络管理工具差异。]]></description><category></category></item></channel></rss>