(本記事は私の考えをAIにまとめてもらい作成しています。最終チェックはしていますが、AIらしい表現が含まれている可能性があります。)
はじめに
Raspberry Pi Zero WをWi-Fiアクセスポイント化(APモード)して使おうとしたときに、
hostapd を起動すると画面が文字化けしてフリーズする現象を経験したことはありませんか?
この問題は、Zero W特有のWi-Fiチップ(Broadcom BCM43430A1)の仕様と
ドライバ(brcmfmac)の不具合が重なった結果として起こるそうです。
とりあえず、ChatGPTがまとめた解決方法をまとめてみましたが、
やっぱり不安定。個体差もあるかもしれませんが。
私のお勧めは、別のWiFiドングル使うか、どうやら安定動作するらしいRaspberry pi4とかで試してみることをお勧めします。
本記事では、再現条件・原因・安定化設定を整理し、
SoftEther VPN + USBドングルをWANにしたWi-Fiルーター構成も紹介します。
🧭 システム構成図
┌────────────────────────────┐
│ Internet (au回線) │
└──────────┬─────────────────┘
│
[usb0: LTEドングル]
│
┌────────────┴────────────┐
│ Raspberry Pi Zero W │
│──────────────────────────│
│ ・SoftEther VPN client │
│ ・dnsmasq(DHCPサーバ) │
│ ・hostapd(Wi-Fi AP) │
└────────────┬────────────┘
│
[wlan0: SSID "xxx"]
│
┌────────────┴────────────┐
│ スマホ / PC / IoT機器 │
└──────────────────────────┘
この構成では:
usb0:LTEドングル(WAN)
vpn_vpn:SoftEther VPNクライアント経由トンネル
wlan0:ローカルWi-Fi AP(SSID: xxx)
💥 症状
sudo systemctl start hostapd を実行するとフリーズ
シリアルやHDMI出力に以下のようなカーネルメッセージが出る
Process hostapd (pid: XXX)
brcmfmac: brcmf_cfg80211_change_virtual_intf: fail
Kernel panic - not syncing: Fatal exception
🔍 原因
要因 内容
Wi-Fiチップの制限 BCM43430A1 は APモード中の管理フレーム処理が不安定。
brcmfmacドライバの不具合 ieee80211n=1 や wmm_enabled=1 の組み合わせで NULL参照が発生。
省電力機能の干渉 power_save=on のままだとスリープ復帰時に通信制御が暴走。
電圧降下 Zero Wは電源ラインが弱く、瞬断でSDIO通信エラーが起きやすい。
⚙️ 対象機種と発生傾向
機種 Wi-Fiチップ 発生頻度
Pi Zero W BCM43430A1 ★★★(ほぼ確実)
Pi 3 Model B BCM43430A0 ★★(稀に発生)
Pi 3 Model B+ BCM43455C0 ★(軽度)
Pi Zero 2 W BCM43436B0 ★(稀)
Pi 4 / 5 CYW43455/CYW55572 ⚪(安定)
🧩 対策まとめ
✅ ① Wi-Fi省電力を無効化
sudo iw dev wlan0 set power_save off
永続化設定:
echo "iw dev wlan0 set power_save off" | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local
✅ ② ドライバの不安定機能を無効化
echo "options brcmfmac feature_disable=0x82000" | sudo tee /etc/modprobe.d/brcmfmac.conf
sudo update-initramfs -u
sudo reboot
feature_disable=0x82000 は AMPDU aggregation / frame burst を停止し、
メモリアクセス競合を防ぎます。
✅ ③ hostapd.conf を安定構成にする
interface=wlan0
driver=nl80211
ssid=xxx
country_code=JP
hw_mode=g
channel=6
auth_algs=1
wpa=2
wpa_passphrase=xxx
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ieee80211n=0
wmm_enabled=0
ieee80211w=0
11n通信とQoSをOFFにする のがポイント。
✅ ④ 古い安定版hostapdを利用(任意)
sudo apt install hostapd=2:2.9.0-21+rpt1 -y
✅ ⑤ RF-kill(Wi-Fiブロック)解除
sudo rfkill unblock all
sudo ip link set wlan0 up
再発防止設定:
sudo tee -a /etc/rc.local <<'EOF'
rfkill unblock all
iw dev wlan0 set power_save off
exit 0
EOF
💡 トラブル時の確認コマンド
内容 コマンド
wlan0の状態確認 ip addr show wlan0
hostapdエラー確認 `sudo journalctl -xeu hostapd
Wi-Fiブロック状態確認 sudo rfkill list all
DHCP配布確認 sudo journalctl -fu dnsmasq
🔧 電源と安定運用の注意点
5V 2A以上の電源を推奨。
USBハブ経由でLTEドングルや他デバイスを接続する。
起動順序:
usb0(dhcp) → vpnclient → hostapd → dnsmasq の順が安定。
🧾 参考リンク
Raspberry Pi Firmware Issue #1463 — WiFi firmware brcmfmac crashes when using virtual AP interface
Raspberry Pi Linux Issue #7033 — Kernel crash in brcmfmac driver when hostapd is running
Pi Forum — Pi 3 internal WiFi adaptor stopping when used as AP
StackExchange — Make iw wlan0 set power_save off permanent
🏁 まとめ
状況 対策
起動直後にクラッシュ feature_disable=0x82000
数分後にフリーズ power_save off
DHCPが効かない wlan0 に固定IP付与、dnsmasq再起動
Wi-Fiが再起動後に消える rfkill unblock all
どうしても不安定 外付けWi-Fiドングル使用 or Pi 4移行
🎯 結論
Raspberry Pi Zero W は軽量で便利ですが、
内蔵Wi-Fiチップ(BCM43430)はAPモードでは構造的に不安定です。
長期運用やVPNルーター用途では、
外付けWi-Fiドングル
Raspberry Pi 4以上
への移行を検討するのが現実的です。
💡 動作検証環境
Raspberry Pi Zero W
Raspberry Pi OS Bookworm Lite (kernel 6.6.31-v7+)
hostapd 2.10 / 2.9.0-21+rpt1
dnsmasq + SoftEther VPN client 構成
電源 5V 2A(セルフパワーUSBハブ経由)