使用 Claude 为 HP Laser 1008a 开启 macOS 打印功能

AI 辅助硬件启用

一位身份为 Kuber (@kuberwastaken) 的个人成功利用 Claude 为 HP Laser 1008a 开启了 macOS 上的打印功能,该打印机主要设计用于支持 Windows。 这个项目展示了大语言模型 (LLMs) 在协助逆向工程以及为旧版或不支持的硬件创建软件桥接方面的能力。

实现演进:从封装器到原生实现

该项目经历了两个截然不同的技术阶段:

阶段 1:Linux 驱动封装器

最初,解决方案并不涉及从头编写新驱动。相反,Claude 协助创建了一个系统,在 macOS 上的 Docker 容器(或 Linux VM)中封装了现有的 HP Linux 专有驱动程序。这种方法将 Linux 驱动的功能桥接到 macOS 环境,通过利用来自另一个平台的现有代码使打印机得以运行。

阶段 2:原生 macOS 实现

在社区反馈和技术迭代之后,该项目转向了完全原生的 macOS 实现。最终结果托管在 GitHub 上的 hp-laser-1008a-macos,从容器化的 Linux 桥接转向了原生驱动方法。

技术方法论与工作流

根据作者的说法,并没有实现这些结果的特定“黑客”手段。该过程涉及一个迭代循环:

  • 清晰的沟通: 向 AI 精确地传达想法和需求。
  • 有根据的推测: 根据 AI 的建议测试假设并完善方法。
  • 迭代测试: 通过多个测试页和调试循环,直到功能“稳定”下来。

社区见解与反论点

该项目在 Hacker News 上引发了关于 AI 在系统编程中的作用以及“AI 编写”驱动程序的有效性的重大讨论。

对 AI 过程的批评

一些用户指出,最初的解决方案本质上是对现有技术的重新包装。一位用户指出,在 macOS 上通过 Docker 运行 Linux 驱动以实现打印的功能自 2017 年以来就已存在,这表明 AI 可能是在综合现有教程,而不是在创新一种新的驱动架构。

“结果导向”的视角

相反,其他贡献者认为,技术实现细节对于结果而言是次要的。正如一位用户所说:

"All the people saying 'it's not a driver, it didn't write a driver, it's wrapping the Linux one' are missing the point: no one cares - the printer prints. It didn't before, and now it does."

AI 在逆向工程中的更广泛应用

讨论揭示了其他几个用户使用 LLMs 进行类似硬件启用任务的实例:

  • USB 协议映射: 一位用户通过使用 Claude 分析 .NET 程序集(通过 ILSpy)并使用 Wireshark 捕获 USB 协议,逆向工程了一个高尔夫球车电机控制器。
  • 嵌入式 Rust 驱动程序: 一位开发者通过向 AI 提供技术规范和现有的 C 驱动程序,为一款不支持的电子纸屏幕创建了嵌入式 Rust 驱动程序。
  • 旧版硬件恢复: 用户报告使用 AI 为古老的激光雕刻机、旧摄像机的利基 Sony USB 协议以及指向设备的内核态驱动程序 (ZSA Navigator) 构建驱动程序。
  • 系统配置: 一位用户通过使用 Codex 来更新 PipeWire 设备配置文件,修复了 Sound Blaster Katana 声霸音箱长期存在的 Linux 音频同步问题。

Sources

相关