从 iGame Center 到 Linux:Colorful CVN Z890 ARK FROZEN RGB 控制器逆向与 Qt 控制台实现
本文介绍了在Linux系统下为Colorful CVN Z890 ARK FROZEN主板实现RGB控制的开发过程。作者通过逆向分析,确认了控制器的USB VID/PID为`2f4c:1000`,并发现真正的RGB输出端点位于USB interface 02而非interface 01。文章详细说明了帧格式:由10个数据包(每包20组RGB)加1个提交包组成,共覆盖200个可寻址槽位。通过Qt控制台,作者实现了静态、呼吸、彩虹、波浪等主机侧渲染效果,并将板载RGB、ARGB 1/2的物理映射交由用户自定义绑定。文章还涉及udev权限配置、KDE启动器集成、脚本支持及项目边界说明,提供了完整的Linux RGB控制解决方案。
把 SVP 真正接回 bilibili-linux:共享内存补帧、切换恢复与可上游合并的重构
本文介绍了一个将B站网页播放器嵌入视频补帧功能的技术方案,核心目标是让补帧结果直接呈现在原播放器界面中,而非外部播放器。项目基于`bilibili-linux`源码构建,通过VapourSynth与SVPFlow进行插帧,并采用共享内存或原始帧回传等策略避免二次编码。文章详细阐述了DASH源流选择、动态目标帧率、帧环回压机制、音画同步、硬件兼容与性能监控(OSD)等具体设计。整体上,该方案将补帧作为播放器的可选增强,确保在性能不足或切换失败时能优雅回退,不破坏原有播放与弹幕体验。
KDE 下区分多个 Electron 音频流:用 PipeWire 规则修正 Chromium 元数据
本文介绍了在 KDE Plasma 中解决多个 Electron 应用音频流均显示为“Chromium”的问题。核心思路是:KDE 默认优先显示 `application.name`(通常为“Chromium”),而 `application.process.binary` 字段包含了如 `bilibili`、`yesplaymusic` 等具体的程序名,更适合作为区分依据。作者排除了事后修改属性的方案(如 `pactl update-sink-input-proplist`),因为 PipeWire-Pulse 不支持改写已创建的流。
最终方案是利用 PipeWire 的 `pulse.rules`,在流创建阶段匹配 `application.name = "Chromium"` 和 `application.process.binary`,并覆盖 `application.name` 和 `node.name` 为实际程序名。作者还提供了一个用户级 systemd 服务,用于自动监听新出现的 Chromium 音频流并生成相应规则。该服务仅在首次发现新应用时会重启 `pipewire-pulse` 导致音频短暂中断,后续启动不会再受影响。
Arch Linux 下让 Sunshine 接管 SDDM:X11 捕获、服务交接与多显示器触控适配
本文介绍了如何在Arch Linux + KDE Plasma Wayland环境下,实现Sunshine串流服务从SDDM登录界面到用户桌面的完整覆盖。核心方案是分离两个Sunshine服务:系统级root服务在SDDM阶段使用X11捕获,用户级服务在登录后使用KMS/Wayland路径,两者共享证书但使用独立的应用列表。文章详细解决了三个关键问题:root服务缺少Wayland环境导致503错误、Xauthority动态路径处理、以及多显示器下output_name和触控坐标的适配。最终通过systemd服务配合polkit规则实现登录前后的自动切换,既支持开机未登录时远程访问,又保留了桌面阶段的多显示器管理和触控功能。
Arch Linux 下为 AUR 版 SVP 手动安装 RIFE Vulkan 引擎
本文介绍了在Arch Linux上为AUR版SVP安装RIFE插件的完整过程。作者发现AUR的`svp-bin`包仅包含SVP主程序,缺少RIFE组件,因此采用官方`RIFE-ncnn-Vulkan`组件方案,无需安装PyTorch或CUDA Toolkit。文章详细记录了从环境确认、驱动验证、SVP更新到通过`4.0-3rife.7z`压缩包手动安装RIFE的步骤,包括SHA1校验、解压至`/opt/svp`目录、可选安装GitHub模型等。最后说明了如何在SVP Manager中选择NVIDIA RTX 5070 Ti作为Vulkan设备,并解答了常见问题。核心思路是保持AUR管理SVP核心,RIFE组件独立从官方仓库获取,避免文件管理混乱。
Arch Linux 配置 Wake-on-LAN:Realtek RTL8125 用 NetworkManager 持久唤醒
### 摘要
本文记录了在 Arch Linux 主机上配置局域网唤醒(WOL)的完整过程,目标是让有线网卡在关机后通过 Magic Packet 唤醒。文章强调配置的关键在于确认负责唤醒的有线网卡(Realtek RTL8125,内核驱动r8169),并通过NetworkManager的`802-3-ethernet.wake-on-lan=magic`参数持久化配置,而非临时修改。作者分别检查了连接配置、PCI设备唤醒开关(`power/wakeup`为enabled)、BIOS/UEFI待机供电等独立环节,最终通过`wakeonlan`工具向广播地址发送Magic Packet验证。文章还总结了常见失败点,如混用无线MAC地址、仅修改临时ethtool状态等,并提供了复盘检查清单,确保各层次配置正确后才能成功唤醒。
从 Windows HID 到 Linux 常驻服务:FK360 EL ARGB 数显驱动复盘
## 摘要
本文介绍了作者为FK360 EL ARGB水冷头在Linux系统上开发的开源驱动项目。该水冷头的数显原本只支持Windows官方软件,作者通过逆向分析,确认了其通过USB HID接口使用固定65字节报告传输监控数据的协议,实现了纯Python标准库的Linux用户态驱动。
文章详细解析了65字节报告的数据结构,包括CPU/GPU温度、占用率、频率、功耗等字段的偏移和编码方式。针对Linux系统,作者解决了多源数据采集问题,包括从hwmon读取温度风扇、从/proc读取CPU占用和内存、从Intel RAPL读取CPU功耗、以及通过nvidia-smi获取GPU数据的技术方案。驱动通过systemd以root常驻运行,并配有udev规则管理设备权限,还提供了TUI配置界面和安装脚本。项目代码已开源在GitHub上。
LXC 容器部署 OpenClaw 指南:硬核破解 Homebrew 的 Root 限制
本文介绍了在LXC容器中以root用户部署OpenClaw时,解决其Skill依赖Homebrew(Linuxbrew)禁止root运行限制的两种方案。方案一遵循官方规范,创建隔离的“linuxbrew”用户并安装,通过环境变量供OpenClaw调用。方案二则通过修改Homebrew源码(brew.sh和api.rb文件),直接绕过root检测和下载拦截,实现root身份下的直装与使用,并配置了必要的Git信任和环境变量。最终,修补后的环境可顺利使用brew为OpenClaw安装Skill所需工具链。
一次 Playwright + Docker 的踩坑记录
本文作者分享了在服务器上部署使用Playwright进行网页截图功能时遇到的三个主要问题及解决方案。首先,由于网络环境差,无法在线下载Chromium浏览器,作者采用离线拷贝浏览器文件并设置环境变量`PLAYWRIGHT_BROWSERS_PATH`指向该目录的方法绕过下载。其次,即使浏览器文件存在,仍因缺少系统动态库而无法启动,需在Docker中安装Chromium的运行时依赖库。最后,为解决中文字体显示为方框或误用日文字形的问题,作者安装了Noto CJK字体并配置字体优先级,确保简体中文优先显示。文末提供了完整的Dockerfile示例,通过离线浏览器、安装依赖和调整字体,最终实现了稳定运行。
KDE 下 WPS 双击文件打不开的问题及解决方案
本文总结了在KDE桌面环境下使用WPS Office时无法通过双击打开文件的问题及其解决方案。问题主要源于WPS新版Linux命令行启动器的bug,以及无法正确处理KIO-FUSE挂载的SMB/NAS路径。作者在社区提供的AUR脚本基础上进行了改进,增强了自动切换工作目录、支持多种路径格式、添加日志记录和多文件兼容功能。通过创建并配置自定义启动脚本,并修改.desktop文件中的启动命令,成功解决了远程文件的打开问题,但本地文件受WPS自身限制可能仍无法打开。改进后的方案提供了更稳定的文件打开体验和调试支持。