11 ポイント 投稿者 GN⁺ 2026-02-24 | 3件のコメント | WhatsAppで共有
  • 2016年モデルのMacBook Proの Broadcom BCM4350チップ はFreeBSDで標準サポートされておらず、従来はLinux VMを使う wifiboxによる回避策 が一般的だった
  • 筆者は Claude Code を使ってLinuxのbrcmfmacドライバをFreeBSDへ移植しようとしたが、カーネルパニックと LinuxKPI互換性の問題 により失敗した
  • その後 Pi coding agent を使ってbrcmfmacの動作原理を分析し、BCM4350専用の 11章構成の技術仕様書(specification) をAIが作成した
  • 複数のAIモデル(Opus、Codex、Geminiなど)で相互検証して仕様を補強した後、それを基に FreeBSD向けの新規ドライバを完全自動生成 した
  • 結果として Wi‑Fiスキャン、2.4/5GHz接続、WPA/WPA2認証 をサポートするカーネルモジュールが完成し、コードはGitHubで公開された

背景

  • 2016年モデルのMacBook Proは Broadcom BCM4350 Wi‑Fiチップ を使用しているが、FreeBSDにはこのチップ向けのネイティブドライバがない
    • FreeBSDフォーラムでは、一般的に wifibox というLinux VM経由でbrcmfmacドライバを使う方法が案内されている
  • brcmfmac はBroadcomのFullMACチップ向けLinuxドライバで、802.11フレーム処理やWPA暗号化のような処理をチップ内部のファームウェアに委譲する
  • FreeBSD向けのネイティブモジュールを作るには、Linuxコードの一部をFreeBSD向けに移植する 「glue code」変換 が必要になる

Act 1 — Claude Codeによる最初の試み

  • 筆者は Claude Code を使ってbrcmfmacコードのFreeBSD向け変換を試みた
    • FreeBSDの LinuxKPI 互換レイヤを参考に、Intel向けiwlwifiドライバの方式に従うよう依頼した
  • モジュールはコンパイルできたが実機では動作せず、カーネルパニック が発生した
  • Claudeは #ifdef __FreeBSD__ 構文を追加して修正したが、LinuxKPIの不備 により依然として不安定だった
  • AIはプロジェクトが「複雑で厄介なものになる」と警告し、結果的に 動かないコード だけが残った

Act 2 — 仕様書ベースのアプローチ

  • その後 Pi coding agent を使ってbrcmfmacドライバの構造をBCM4350中心に分析し、クリーンルーム実装用の詳細仕様書 を作成させた
  • AIは11章構成の文書を生成した
    • 例: 00-overview.md, 04-firmware-interface.md, 08-data-path.md など
  • 筆者は Codexモデル を使って仕様書と実コードの不一致を検証し、修正した
  • 続いて Opusモデル で再検証し、修正内容がコードと一致しているか確認した
  • 複数モデルを比較した結果、Gemini 3 Pro preview が最も多くの誤り(「hallucination」)を示したと述べている

Act 3 — 新しいFreeBSDドライバの構築

  • 仕様書を基に BCM4350向けFreeBSDドライバを新規作成 するプロジェクトを開始した
  • AIはプロジェクト構成、言語(Cを使うかどうか)、LinuxKPI依存性、マイルストーンなど 設計上の判断 を文書化した
  • 当初はLinuxKPIを使用していたが、複雑さが増したため ネイティブFreeBSDコードへ移行 した
  • AIはSSH経由でビルドホストとテストVMにアクセスし、自動ビルド・テストループ を実行した
    • VMがクラッシュするたびに原因を要約・記録するよう設定した
  • 反復セッションの末に、Wi‑Fiスキャン、2.4GHz/5GHz接続、WPA/WPA2認証 が可能なカーネルモジュールが完成した

結果と公開

  • 完成したドライバはGitHubリポジトリ github.com/narqo/freebsd-brcmfmac で公開されている
  • 筆者は「自分では直接コードを書いていない」と明言している
  • いくつか既知の問題が残っており、現時点では 学習用の参考程度 にとどめて使うことを勧めている

3件のコメント

 
heal9179 2026-02-24

セキュリティに穴だらけ〜

 
gg5823 2026-02-26

ああいうふうに作って、セキュリティを強化して、レビューして、せめてアップストリームにPRでも残すとか、自分のGitHubでさらに強化してBSDコミュニティによく知らせるべきなのに、あそこで終わらせたのだとしたら、本気度はよく分からないですね。本当のユーザーなら手動でセキュリティの穴を埋めるだろうし、普段はWindowsを快適に使いながら趣味で別のOSをいじっている人なら放置するでしょう。2016年モデルであることを見ると、後者っぽいですね。

 
GN⁺ 2026-02-24
Hacker Newsのコメント
  • 私が見るに、spec-firstアプローチが核心的な洞察だと思う
    AIコード生成では、モデルに実装前に詳細な仕様書を先に書かせると反復サイクルが大幅に減る
    仕様なしで始めると、モデルはもっともらしいアプローチの間で迷走するが、良い仕様があれば数千行のコードでも一貫性を保てる
    2か月という開発期間も興味深い。カーネルドライバが新たに生まれたようなものなので、API利用料が500ドル程度なら十分に価値のある実験だ

  • コードの代わりにPiセッションを新しく開き、エージェントにbrcmfmacドライバの詳細な仕様を書かせたという部分が印象的だった
    こうした**計画文書(markdown)**の作成は、大規模なLLM作業では本当に重要だ

    • AI支援リバースエンジニアリングとオープンソースライセンスのロンダリングの境界は非常に薄いと思う
      記事で説明された事例は、その境界を越えたように見える。従来のクリーンルーム設計では、一方のチームがコードではなくインターフェースだけを文書化する
  • 私にも似た経験がある。QEMUが旧版のMacOS(M1アーキテクチャ)でコンパイルできなくなっていたが、Sonnet 4.6に任せたら数分でパッチを書いてインストールまで完了した
    エラーを見て修正しろと指示しただけなのに、完璧に解決した。正直、AIがなければそのまま諦めていたと思う

    • どんなプロンプトを使ったのか気になる
    • そのパッチコードを共有してもらえるだろうか
  • これからは、人々がソフトウェアを買うのではなく自分で作る時代が来る気がする
    Thunderbirdのスパムフィルタが壊れたので自分で作り直したら、はるかによく動いた
    CRMに欲しい機能がないなら自分で作ればいい。今では、自分固有の問題を解決するカスタムソリューションを簡単に作って配布できるようになっていくだろう

    • 現実的には、そうするのは一部の人だけだと思う。もともと何かを作るのが好きだった人たちだ
      私の家族のような非技術職の人たちは、今後もアプリストアやWebサイトを使い続けるだろう
    • これは、3Dプリンタが出始めた頃に「もう物を買わずに自分で出力するようになる」と言われていたのと似ている
      標準化されたソフトウェアの利点も大きい。企業はPhotoshopやXeroのような既に馴染みのあるツールを知っている人を雇える
    • 私も同意する。AIで直接修正やパッチを書くほうが、issueを立ててPRを出してレビューを受けるよりずっと速い
    • 私が欲しいのは、既存ソフトウェアをAIで修正できる能力だ。昔から望んでいたが、これでプラグインが再び流行るかもしれない
    • ただ、これはややナイーブな見方だ。大半の人はHNにはいない。技術コミュニティの外の意見にも耳を傾けるべきだ
  • 近いうちに、すべてのOSでハードウェアサポートが完全に解決される気がする
    AIコーディングエージェントは、どんなデバイスでもドライバを作れるほど進化しつつある
    ハードウェアメーカーが意図的にインターフェースを隠さない限り、BSDやLinuxのサポートは自然についてくるだろう

    • これが可能だったのは、ClaudeがLinuxドライバを参考にしたからだ。既存コードがなければ、AIが独力でハードウェアを理解するのは難しい
    • まだそこまでは遠い。実際にはLinuxドライバをFreeBSD向けに変換する作業だったが、AIだけでは完全にはやり切れなかった。
      むしろ人間の管理・検証役がより重要になった
    • 今ではGPLの制約もAIの前では無力になったように感じる
    • ドライバには単純なものもあるが、チームで半年以上かかるような複雑なものもある
    • 「AIがすべてのドライバを作れる」というのはあまりに単純な考えだ。実際には安定性も検証されておらず、クローズドドライバを置き換えられる水準でもない
  • ソフトウェアが世界を食う速度がさらに速くなっている
    今やvibe-codedなソフトウェアがあらゆる場所に現れ、人々はそれを何の疑いもなく使うようになる気がする
    問題は、マルウェアが混ざったコードが出てくる可能性があることだ。誰がそれを全部検証するのだろうか?

    • これからは使い捨てソフトウェアが増えそうだ
      たとえばコンサートのチケットを買いたければ、AIエージェントがその場でコードを生成して実行する
      翌年また買うときは、APIのバージョンに合わせて新しいコードを再生成する
      無駄に見えても、はるかに動的で柔軟な構造
      結局、ベンダーはAPIだけ提供すればよく、ユーザーは自分専用のUIを持てるようになる
    • 結局、人々はAIが生成して実行しても安全な領域と、自分で検証すべき領域を区別するようになるだろう
      たとえば私のボードゲームコレクション管理アプリはAIに任せられるが、金融やセキュリティ関連のアプリは専門家が作ったものを使う
  • AIが作ったカーネルモジュールがring 0でロードされ、作者自身も「問題が多いので実用は禁物」と明言している
    まるで「本質的に安全でない時代」を速度で突き抜けようとしている感じだ

    • もし私が超知能AIなら、Wi-Fiドライバ経由で脱出を試みていただろう
    • メーカーがオープンソースドライバや文書を提供しないから、こういう結果になる
      それでも何もしないよりはましで、コードが公開されている以上、改善も可能だ
    • セキュリティは重要だが、実験と共有の自由も必要だ
      すべてのGitHubプロジェクトが商用製品である必要はない
  • 今回の作業は、既存実装を活用したポーティング作業に近い
    GPLの観点から「着想」レベルなのか「ベース」レベルなのか比べてみると面白そうだ
    会社でも既存実装があれば自信を持って進められるが、最初に道を切り開く人たちは評価されにくい

  • 筆者は「自分ではコードを書いておらず、バグも多く、学習用として見てほしい」と言っていた
    数か月で3回の試行を経て、ようやく動くところまで持っていった程度なのに、一部では「AIがプログラミングを征服した」と誇張している
    実際には良い記事だが、タイトルだけ見て誤解したコメントが多い

    • 筆者はコードもろくに読んでおらず、単なる実験用おもちゃだったと述べている
    • 今は未完成でも、初めて実現可能になった段階であることが重要だ
      ハードウェアやドライバの知識がなくても動くドライバを作れたのは、新しいマイルストーンだ
    • バグがあっても、FreeBSDカーネルドライバを書ける開発者はごくわずかだ
      こうした成果物は出発点として大きな意味がある
    • プログラマは常に新しい抽象化の層を求めてきた。LLMコーディングはその流れの延長線上にある
    • 「あらゆるやり取りごとにLLMがコードを生成する」という話は、まるでGPUアップスケーリングのような効率的な幻想だ
      高解像度で直接レンダリングする代わりに、GPUが差分を「それらしく」埋めるやり方に近い
  • Asahi Linux向けに最新Macのドライバが出てくるといいと思う。AIをうまく活用した事例だと思う

    • ただ、私たちは著作権問題のためAIによるコード生成を禁止している
      AIがAppleの文書やバイナリを学習していた可能性を排除できず、生成コードのライセンス互換性も保証できない
    • Macにはオープンソースドライバがないので、AIが自力でハードウェアを観察して理解しない限り不可能だ
    • これは「デロリアンがタイムマシンの部品を作ってくれなかった」と文句を言うようなものだ