Raspberry Pi OS Bookworm / Trixie で wpa_supplicant を使い続ける方法

みなさん、こんにちは。

日々Raspberry Pi(ラズパイ)でさまざまなシステムを構築していると、OSのサポート期間には敏感になりますよね。

未だ多くのユーザーが利用している Raspberry Pi OS Bullseye ですが、そのLTSサポートは2026年8月までとなっています。セキュリティ面を考えると、そろそろ次世代の Bookworm や、その先の Trixie への移行を検討し始めている方も多いのではないでしょうか。

しかし、ここで一つ大きな壁が立ちはだかります。それが 「Wi-Fi管理方式の変更」 です。

自作アプリなどでwpa_supplicantを使っていた方は、これまでの「慣れた設定」が通用せず、戸惑っている方も多いはず。そこで今回は、Bookworm / Trixie をあえて従来の 「dhcpcd + wpa_supplicant」方式に戻す手順 を解説します。

 


 

OSバージョンによるネットワーク管理の違い

 

まず、ラズパイのOSバージョンごとに、ネットワークがどのように管理されているかを整理しましょう。

OSバージョンコードネームWi-Fi 管理方式wpa_supplicant.conf
Debian 11Bullseyedhcpcd + wpa_supplicantあり(標準)
Debian 12BookwormNetworkManager(標準)基本なし(※1)
Debian 13TrixieNetworkManager に完全統一なし

(※1)BookwormのLite版では移行期のため従来方式が残っていましたが、Trixieでは完全に姿を消しました。

これまでの Bullseye では /etc/wpa_supplicant/wpa_supplicant.conf を編集するのが当たり前でしたが、最新の Trixie では NetworkManager がバックエンドで wpa_supplicant を制御する 形に変わっています。そのため、設定ファイルそのものが存在しないのが「正常な状態」です。

 


 

なぜ「従来方式」に戻す必要があるのか?

 

「新しい方式(NetworkManager)に慣れればいいのでは?」という意見もありますが、以下のようなケースでは、あえて従来方式に戻すメリットがあります。

  • 既存のデプロイ用スクリプトがある
    多数のラズパイを自動設定する仕組みが wpa_supplicant 前提で作られている場合。
  • ヘッドレス運用での安定性
    GUIを持たない環境で、シンプルに1つの設定ファイルを書き換えるだけでWi-Fiを切り替えたい。
  • リソースの節約
    非常にリソースが限られた環境で、NetworkManager よりも軽量な dhcpcd を好む場合。

特に自作アプリやIoTデバイスとしてラズパイを組み込んでいる場合、この変更は死活問題になりかねません。実際、私はwpa_supplicantをスクリプトで直接書き換えるプログラムが動かなくなり、一瞬途方にくれました。

時代の流れに合わせてNetworkManagerへ移行することも検討しましたが、すでに動作検証が済んでいる「安定環境」という資産を壊したくない……。その一心で、あえてwpa_supplicant方式への「逆行」を決断しました。

 


 

ヘッドレス環境とデスクトップ環境の大きな違い

 

ここで注意したいのが、使用しているOSのタイプ(Lite版かデスクトップ版か)によって挙動が異なる点です。

ヘッドレス環境(Lite版)

Lite版では、基本的に NetworkManager のみがネットワークを管理 しています。そのため、NetworkManager を無効化(disable)してしまえば、比較的スムーズに dhcpcd への切り替えが可能です。

デスクトップ環境(Full/Standard版)

デスクトップ版では、GUIでネットワークを管理するために、裏側で systemd-networkdiwd、さらにはグローバルな wpa_supplicant.service などが動いています。

これらがインターフェース(wlan0)を掴んでしまうと、dhcpcd が IPを取得できず「インターフェースが busy(使用中)」となってしまいます。

 


 

Trixie ヘッドレス環境での「最小構成」復旧手順

 

それでは、実際に私が検証して動作を確認した、Trixie で wpa_supplicant を復活させるための最小手順をご紹介します。

手順1 – 設定ファイルの作成

まずは、おなじみの設定ファイルを作成します。

sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

内容は以下を参考にしてください。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
    ssid="あなたのSSID"
    psk="あなたのパスワード"
}

作成後、セキュリティのために権限を絞っておきましょう。

sudo chmod 600 /etc/wpa_supplicant/wpa_supplicant.conf

手順2 – dhcpcd のインストールと有効化

Trixie では標準でインストールされていないため、手動で導入します。

sudo apt update
sudo apt install dhcpcd5
sudo systemctl enable dhcpcd

手順3 – wpa_supplicant@wlan0 の有効化

特定のインターフェース(wlan0)に対して wpa_supplicant を紐付けます。

sudo systemctl enable wpa_supplicant@wlan0

手順4 – systemd override の作成(最重要!)

ここが最大のポイントです。

Trixie ではデフォルトのサービス定義が wpa_supplicant.conf を参照しないようになっているため、明示的に設定ファイルを指定する「オーバーライド」が必要です。

sudo mkdir -p /etc/systemd/system/wpa_supplicant@wlan0.service.d
sudo vi /etc/systemd/system/wpa_supplicant@wlan0.service.d/override.conf

以下の内容を記述します。

[Service]
ExecStart=
ExecStart=/usr/sbin/wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0

手順5 – NetworkManager の無効化と起動

最後に、競合する NetworkManager を停止させ、設定を反映します。

sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

sudo systemctl daemon-reload
sudo systemctl start wpa_supplicant@wlan0
sudo systemctl start dhcpcd

これで、Bullseyeまでと同じように /etc/wpa_supplicant/wpa_supplicant.conf で Wi-Fi を管理できるようになります!

 


 

デスクトップ環境での追加対策

 

もしデスクトップ環境でうまく繋がらない場合は、以下のサービスが邪魔をしていないか確認してください。

# 状態確認
systemctl status iwd
systemctl status systemd-networkd

もしこれらが active になっている場合は、同様に停止・無効化を行いましょう。

sudo systemctl stop iwd
sudo systemctl disable iwd
sudo systemctl stop systemd-networkd
sudo systemctl disable systemd-networkd

 


 

古い方法を変えられない理由がある

 

今回のポイントを整理すると以下の通りです。

  • Trixie では NetworkManager が標準。wpa_supplicant.conf はデフォルトでは使われない。
  • 従来方式に戻すには dhcpcd5 の手動インストール が必要。
  • systemd の override 設定 がないと、設定ファイルを読み込んでくれない。
  • デスクトップ環境では iwd などの競合サービスにも注意。

時代の流れとしては NetworkManager への移行が推奨されていますが、開発環境の都合や運用ポリシー上、どうしても変えられない場面はありますよね。そんな時は、ぜひこの記事の手順を試してみてください。

 

本日も最後までお読みいただきありがとうございました。

それでは、よい Raspberry Pi ライフを!

カテゴリ: Raspberry Pi

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール