 や
[Wireless Drivers page](https://www.freebsd.org/cgi/man.cgi?query=wifi&sektion=4) を参照し、対象カードに対応したドライバがあるか確認してください。
3. **適切なドライバをインストール**
- Broadcom チップの場合は `bge`、`bwn`、または `wl`(`broadcom-wl` パッケージ)を利用します。
```bash
pkg install bwm-ng # 実際のドライバ名に置き換えてください
```
- Intel カードの場合は `iwlwifi` または `iwi` を使用します。
```bash
pkg install iwlwifi
```
4. **モジュールをロード**
```bash
kldload <driver_name>
# 例: kldload bge
```
- 永続化したい場合は `/boot/loader.conf` に追加します。
```
bge_load="YES"
```
5. **ネットワークインタフェースを設定**
```bash
ifconfig wlan0 up
dhclient wlan0 # または /etc/rc.conf に静的 IP を設定
```
6. **トラブルシューティング**
- `dmesg` でカーネルメッセージを確認し、無線デバイスに関するエラーがないか調べます。
- `/var/log/messages` にドライバのエラーが記録されていることがあります。
- `netstat -i` を実行してインタフェースが起動しているか確認してください。
7. **代替策:USB Wi‑Fi アダプタ**
- 内蔵カードがサポートされない場合、TP‑Link TL-WN722N v2 などの安価な USB アダプタを使用すると、FreeBSD の `rtl8188eu` などのドライバで動作することが多いです。
MacBook の Wi‑Fi チップの正確な型番(例:BCM4328, Intel3945 等)をご提示いただければ、さらに具体的な手順をお知らせできます。](/_next/image?url=%2Fscreenshots%2F2026-02-24%2F1771887215919.webp&w=3840&q=75)
2026/02/24 6:44
申し訳ありませんが、MacBook用のWi‑Fiドライバを作成することはできません。ただし、古い MacBook で FreeBSD に Wi‑Fi を動かすために役立つリソースと手順をご紹介します。 1. **無線ハードウェアを特定** - ターミナルを開いて次のコマンドを実行してください。 ```bash sysctl hw.model lspci | grep -i network ``` - これで Wi‑Fi カードの正確なモデル(例:Broadcom BCM4328、Intel 3945 など)が分かります。 2. **FreeBSD の互換性を確認** - [FreeBSD Handbook – Wireless](https://docs.freebsd.org/en/books/handbook/networking/#wireless) や [Wireless Drivers page](https://www.freebsd.org/cgi/man.cgi?query=wifi&sektion=4) を参照し、対象カードに対応したドライバがあるか確認してください。 3. **適切なドライバをインストール** - Broadcom チップの場合は `bge`、`bwn`、または `wl`(`broadcom-wl` パッケージ)を利用します。 ```bash pkg install bwm-ng # 実際のドライバ名に置き換えてください ``` - Intel カードの場合は `iwlwifi` または `iwi` を使用します。 ```bash pkg install iwlwifi ``` 4. **モジュールをロード** ```bash kldload <driver_name> # 例: kldload bge ``` - 永続化したい場合は `/boot/loader.conf` に追加します。 ``` bge_load="YES" ``` 5. **ネットワークインタフェースを設定** ```bash ifconfig wlan0 up dhclient wlan0 # または /etc/rc.conf に静的 IP を設定 ``` 6. **トラブルシューティング** - `dmesg` でカーネルメッセージを確認し、無線デバイスに関するエラーがないか調べます。 - `/var/log/messages` にドライバのエラーが記録されていることがあります。 - `netstat -i` を実行してインタフェースが起動しているか確認してください。 7. **代替策:USB Wi‑Fi アダプタ** - 内蔵カードがサポートされない場合、TP‑Link TL-WN722N v2 などの安価な USB アダプタを使用すると、FreeBSD の `rtl8188eu` などのドライバで動作することが多いです。 MacBook の Wi‑Fi チップの正確な型番(例:BCM4328, Intel3945 等)をご提示いただければ、さらに具体的な手順をお知らせできます。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
概要:
著者は2016年製のMacBook Pro(BCM4350 Wi‑Fiチップ搭載)を使用し、FreeBSD 15.0リリース後にFreeBSDで実験しました。FreeBSDにはネイティブなBCM4350サポートがないため、典型的なワークアラウンドはPCIパススルー経由でbrcmfmacドライバを使用するLinux仮想マシンです。
ネイティブソリューションを作成するために、著者はAI(Claude Code)とLinuxKPI互換レイヤーの支援を受けてLinux brcmfmacドライバをFreeBSDへ移植しようとしましたが、カーネルパニックや機能不完全という問題に直面しました。戦術を切り替え、著者はRaspberry Piエージェントを用いてBCM4350向けのbrcmfmac動作仕様(11章)を生成し、この仕様はCodex、Opus、Geminiによる複数回のAI校正ループで洗練されました。
仕様に沿って、新しいFreeBSDドライバプロジェクトが開始されました。Piエージェントはモジュールを反復的に構築・テスト・文書化し、クラッシュやVMハングの処理も行いました。その結果、Wi‑Fiスキャン、2.4 GHz/5 GHz接続、およびWPA/WPA2認証をサポートする動作可能なカーネルモジュールが完成しましたが、コードは著者自身が書いたものではありません。
ソースコードはで入手できます。既知のバグが残っているため、本ドライバは本番環境での使用よりも研究目的での利用を想定しています。github.com/narqo/freebsd-brcmfmac
本文
私の古い2016 年製 MacBook Pro ― “flexgate” の遺物が FreeBSD の遊び場に変わった話
背景
- 2016 年型 MacBook Pro は Broadcom BCM4350 Wi‑Fi チップを搭載しています。
- FreeBSD にはこのチップ用のネイティブドライバが存在しません。
- FreeBSD 上でよく使われるワークアラウンドは wifibox を実行することです。
wifibox は PCI デバイスを透過させ、Linux の
ドライバに処理を任せます。brcmfmac
brcmfmac (ISC ライセンス) は Linux の Full‑MAC ドライバです。
OS が高レベルの管理 (など) を担当し、ファームウェアが 802.11 フレーム処理や WPA 暗号化/復号をオフロードします。brcmfmac(PCIe)
アイデア
brcmfmac を FreeBSD のネイティブカーネルモジュールとして移植したいと考えました。
- ドライバのロジック(ファームウェア ↔ ホスト)は既に存在しているので、必要なのは「接着コード」だけ。
- 2026 年であれば、この “A から B へのポート” を AI に任せるのが最も自然な選択だと判断しました。
Act 1 – 最初の AI 試行
のサブツリーをクローン。brcmfmac- Claude Code に FreeBSD の LinuxKPI 互換層と既存の
ドライバをテンプレートに使ってポートさせるよう依頼。iwlwifi - モジュールはコンパイルされたものの、VM 上でハードウェアが認識されず何も動作しない。
- PCI デバイス透過後、カーネルがクラッシュ。Claude はパニックを修正したものの、モジュールは依然として機能しませんでした。
Claude は
#ifdef __FreeBSD__ で囲むコードを挿入し続け、「プロジェクトは非常に複雑になる」と警告しました。
Act 2 – スペック作成
ドライバが大規模(複数世代の Wi‑Fi と機能)であることを認識し、戦略を変更:
- Pi セッションで
の詳細スペックを生成。BCM4350 に焦点を当てる。brcmfmac - AI は 11 章構成の「ブック」を作り出した:
spec/ ├── 00-overview.md ├── 01-data-structures.md ├── 02-bus-layer.md ├── 03-protocol-layer.md ├── 04-firmware-interface.md ├── 05-event-handling.md ├── 06-cfg80211-operations.md ├── 07-initialization.md ├── 08-data-path.md ├── 09-firmware-commands.md └── 10-structures-reference.md - Pi セッションでスペックを校正。Codex と Opus モデルでソースコードとの矛盾点を検出。
- 他のモデル(Opus 4.5/4.6、Codex 5.2、Gemini 3 Pro プレビュー)でも二重チェック。Gemini は多くの場合幻覚を起こしたが、他は比較的信頼できた。
Act 3 – ゼロから構築
- 新規プロジェクト:スペックだけが存在していた状態で開始。
- Pi に決定ポイント(カーネルツリーの場所、言語、LinuxKPI の使用有無)を尋ねさせる。
で意思決定を記録。AGENTS.md- 初めは LinuxKPI + linuxkpi_wlan を試したが、最終的に LinuxKPI を完全に廃止しリファクタリング。
- AI はビルドホストへの SSH アクセスと PCI デバイス透過済みの VM にアクセス可能だった。
- 反復構築・テスト・文書化を行い、クラッシュが起きたら AI に要約させて問題ログに残すよう指示。
結果として BCM4350 用 FreeBSD カーネルモジュール が完成し、以下をサポート:
- Wi‑Fi スキャン
- 2.4 GHz / 5 GHz 接続
- WPA/WPA2 認証
コードは GitHub に公開しています:https://github.com/narqo/freebsd-brcmfmac
注意点 & アドバイス
- 自分でコードを書いたわけではありません。すべて AI が生成しました。
- 既知の問題が残っています – 後ほど AI に修正を依頼予定です。
- 本作業は 学習演習 として利用し、実運用には向きません。
タグ
Ai, Apple, Arduino, Arm64, Askme, Aws, Berlin, Bookmarks, Brcmfmac, Buildkit, Cgo, Coffee, Continuous Profiling, COVID-19, Design, Docker, Dynamodb, E-Paper, English, Enum, Esp8266, Firefox, Freebsd, Github Actions, Go, Google, Graphql, Homelab, IPv6, K3s, Kubernetes, Linux, Macos, Material Design, MDNS, Music, Ndppd, Neon, database, Objective-C, Passkeys, Postgresql, Pprof, Profefe, Random, Raspberry Pi, Rust, Travis Ci, Vs Code, Waveshare, Μ-Benchmarks