使用 Claude 為 HP Laser 1008a 開啟 macOS 列印功能
AI 輔助硬體啟用
一位身分識別為 Kuber (@kuberwastaken) 的個人成功利用 Claude 為 HP Laser 1008a 開啟了 macOS 的列印功能,這款印表機主要是為 Windows 設計的。該專案展示了大型語言模型 (LLMs) 在協助逆向工程以及為舊型或不支援的硬體建立軟體橋接器方面的能力。
實作演進:從封裝器到原生實作
該專案經歷了兩個截然不同的技術階段:
階段 1:Linux 驅動程式封裝器
最初,解決方案並非從頭開始編寫新的驅動程式。相反地,Claude 協助建立了一個系統,將現有的 HP Linux 專有驅動程式封裝在 macOS 上的 Docker 容器(或 Linux VM)中。這種方法將 Linux 驅動程式的功能橋接到 macOS 環境,讓印表機能夠透過利用來自另一個平台的現有程式碼來運作。
階段 2:原生 macOS 實作
在社群回饋與技術迭代之後,該專案轉向了完全原生的 macOS 實作。最終結果託管在 GitHub 上的 hp-laser-1008a-macos,從容器化的 Linux 橋接器轉向了原生驅動程式方法。
技術方法論與工作流程
根據作者的表示,並沒有達成這些結果的特定「黑客手段」(hack)。該過程涉及一個迭代循環:
- 清晰的溝通: 向 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 assemblies 經由 ILSpy 並使用 Wireshark 擷取 USB 協定,從而逆向工程了一個高爾夫球車馬達控制器。
- Embedded Rust 驅動程式: 一位開發者透過向 AI 提供技術規格與現有的 C 驅動程式,為一款不支援的電子紙螢幕建立了一個嵌入式 Rust 驅動程式。
- 舊型硬體復原: 使用者回報使用 AI 建立用於古老雷射雕刻機、舊款攝影機的利基型 Sony USB 協定,以及用於指向裝置 (ZSA Navigator) 的使用者空間驅動程式。
- System 系統配置: 一位使用者透過使用 Codex 來更新 PipeWire 裝置配置檔,解決了 Sound Blaster Katana 聲霸音響長久以來的 Linux 音訊同步問題。
Sources
相關
- 專案
- 專案
- Dispatch
- 專案
- Dispatch