macOSでHP Laser 1008aをネイティブ印刷させる!Claude Codeを使った解決策
Claude Code Teaching macOS to Natively Print to the HP Laser 1008a
Claude Code Teaching macOS to Natively Print to the HP Laser 1008a
macOSからHP Laser 1008aへ直接印刷する方法にお困りではありませんか?Claude Codeを活用して、このプリンターをmacOSでネイティブに認識・印刷させるための実践的な手順を解説します。
うちのBrother dcp-t230もmacOS用のドライバーがないし、USB専用のプリンターなんだよね。もし無駄にしてもいいトークンがあるなら、同じことを試してみたい。
Claude Codeは極端に「正直(honest)」だよね。短い書き起こしの中でその単語を10回も使ってるし。
残念だけど、この記事と見出しはかなりミスリーディングだよ。結果が出たこと自体は否定しないし、動くようになったのは便利だけど、「ネイティブ」じゃない。それに一部の人が勘違いしてるみたいに、Claudeがドライバーを書いたわけでもない。基本的にはmacOS上のLinux VMでHPの既存のプロプライエタリなドライバーを動かして、それをmacOSにブリッジしただけだよ。あと、ユーザーの~/.hp1008ディレクトリからコードを実行するrootランチャーが必要になるから、セキュリティも弱くなっちゃってる。
だから前の記事での批判は正しいってことだね。実際はただDocker内でLinuxドライバーを動かして、それを何かすごいものみたいに見せかけているだけだよ。まあ、このページでは最初の「ドライバーを書いた」っていう主張がトーンダウンしてるのは気になるけど。とはいえ、結果としてMacから印刷できるようになったわけだから、LLMの成果が重視されるこの新しい世界においては、十分にその役割を果たしたと言えるんじゃないかな。
(Claudeを駆使して)USB経由でプログラムできるけどWindowsアプリでしかサポートされていないゴルフカートのモーターコントローラーのリバースエンジニアリングに成功したよ。Claudeは.NETアセンブリでILSpyを使う方法や、WiresharkでUSBプロトコルをキャプチャする方法を案内してくれて、Windowsアプリの全機能を完全に把握させてくれた。成果物としてポータブルなCライブラリとCLIプログラムができて、今のところうまくいってる。自分はAI懐疑派の部類に入ると思うけど、手作業で数週間から数ヶ月かかることをこのツールのおかげで実現できたのは認めざるを得ないな。
なぜかはよく分からないけど、Claudeの最後のこのセリフに少しゾッとしてしまったよ:
テストページを通してデバッグのパートナーになれてよかったです。印刷を楽しんでください、あなたとご家族で。
多分、自分の中でのLLMの使い方がすごく「質問>回答」とか「これやって>エージェントがやる」っていう事務的なものだからだと思う。最後になんて「うわ、すごい動くじゃん、ありがとう!」なんて言わないし、そういうのを見慣れてないからかな。もしこれが日常的だったら、間違いなくLLMを使う気が失せる。どこからこの感覚が来るのか正確には分からないけど、比較的無害な言葉なはずなのにすごく不自然に感じてしまう。相手がただの機械だからっていうのが大きいんだろうけど。
同じような経験をしたよ。ePaperディスプレイとPi 4を買ってカレンダーウィジェットを表示させようとしたんだ。元にしていたオープンソースプロジェクトが旧世代のePaperディスプレイを前提にしていて、ファームウェアが完全に変わっていたから詰まってしまった。新しいファームウェアのサンプルは見つけたけど、動かすのに苦労してね。Claudeに手伝ってもらったら、各3時間くらいのセッション2回でやり遂げられたよ。
興味がある人はここを見てみて。codeberg.org/mjmvisser/infoframe
Claudeが、すでに同じことを実現している既存のLinux-Airprint-VMプロジェクトやプロダクトを使うことを提案したほうが理にかなってたんじゃない?
https://printervention.app を使ったゼロインストール手法すらあるしね。これはWebUSB対応ブラウザの中でLinux VMを隔離して実行するものだよ。このサイト自体、少し前にHNにも投稿されていたし。
LLMのコードアシスタントソフトが何でも書きたがるのは分かるけど、同じ解決策を何度も何度も作り直すのはちょっと非効率に見えるね。
昔、Teletype ASR33をAirPrintに繋いだ時のことを思い出したよ(https://github.com/hughpyle/ASR33/tree/master/cups )。今ならLLMを使えば30分で終わってただろうな。面白みは減ったかもしれないけど、PPDの設定をいじくり回して失った膨大な時間は二度と戻ってこないしね。
めちゃくちゃいいね。自分も25年以上前のOrbディスクを復活させるために同じようなことをやりたいと思ってる。