RPi4b で netplan と networkd を使用する Ubuntu Server 22.04 LTS は、wlan0 に DHCP IP を割り当てません。

RPi4b で netplan と networkd を使用する Ubuntu Server 22.04 LTS は、wlan0 に DHCP IP を割り当てません。

PRO がアクティブ化された 4GB Raspberry Pi 4b に Ubuntu Server 22.04 LTS を新規インストールしました。最初の起動時に、cloud-init シーケンスが完了するまで待つ必要があることに気づかなかったため、コンソールにログインするのが早すぎて失敗した可能性があります。

Raspberry Pi Imager を使用して Ubuntu Server 22.04 LTS の起動可能なメディアを作成し、詳細オプションを使用して Wi-Fi SSID とパスワードを指定しました。

サーバーは RPi4 の eth0 インターフェイスを起動し、ルーターから DHCP アドレスの予約を正常に取得します。ただし、有線接続を切断するために必要な内蔵 Broadcom Wi-Fi インターフェイスの IP を取得できません。

私はネットプランのセットアップ記事を読み、Wi-Fi を動作させる方法についてさまざまなフォーラムの投稿を多数見てきました。過去 4 日間でさまざまなことを試しましたが、Server 22.04 LTS で組み込みの RPi4b Wi-Fi インターフェイスを動作させることができません。

PRO がアクティブ化された Ubuntu Desktop 22.04 LTS は、eth0 と wlan0 の両方のインターフェースを起動します。NetworkManager で netplan を使用している間、両方ともルーターの MAC 予約から DHCP IP を取得します。

dmesg には eth0 リンクがアップしていることが記載されていますが、wlan0 または phy0 については記載されていません。dmesg でワイヤレスに関連する行は、省電力が有効になっていることを示す cfg80211 の行が数行あるだけです。

サーバー 22.04 は、netplan と networkd を使用してインターフェースを起動します。私が試したことは、次のとおりです。eth0 は IP4 を適切に取得しますが、wlan0 には IP が割り当てられていません。/etc/netplan で、01-network-manager-all.yaml で両方のインターフェースを次のように定義しようとしました。

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes
  wifis:
    wlan0:
      dhcp4: yes
      access-points:
        "MySSID":
          password: "MyPWD"

キー「optional:」を省略しました。yaml ファイルにその行があってもなくても、結果に違いはありません。どちらかまたは両方のインターフェースにそのキーを追加すると、「optional:」が「true」または「false」のどちらに設定されていても違いはありません。

netplan --debug try (または generate または apply) を実行すると、複数回試した構成は有効であり、問​​題と思われるものは何も表示されません。出力の一部を以下に示します。

starting new processing pass
wlan0: adding wifi AP 'MySSID'
We have some netdefs, pass them through a final round of validation
wlan0: setting default backend to 1
Configuration is valid
eth0: setting default backend to 1
Configuration is valid
Generating output files..
openvswitch: definition eth0 is not for us (backend 1)
NetworkManager: definition eth0 is not for us (backend 1)
Creating wpa_supplicant config
wlan0: Creating wpa_supplicant configuration file run/netplan/wpa-wlan0.conf
Creating wpa_supplicant unit /run/systemd/system/netplan-wpa-wlan0.service
Creating wpa_supplicant service enablement link 
   /run/systemd/system/systemd-networkd.service.wants/netplan-wpa-wlan0.service
openvswitch: definition wlan0 is not for us (backend 1)
NetworkManager: definition wlan0 is not for us (backend 1)

wpa_supplicant ファイルを確認しましたが、問題ないようです。正しい SSID とパスワードが含まれています。

$ sudo cat /run/netplan/wpa-wlan0.conf
ctrl_interface=/run/wpa_supplicant

network={
  ssid="MySSID"
  key_mgmt=WPA-PSK
  psk="MyPWD"
}

networkd journalctl エントリで、eth0 は IP を取得しているのに wlan0 は IP を取得していないことに気付きました。なぜ取得されないのかはわかりません。

$ sudo journalctl -b -u systemd-networkd
16:27:47 rpi4 systemd-networkd[775]: wlan0: Link DOWN
16:27:48 rpi4 systemd-networkd[775]: eth0: Re-configuring with /run/systemd/network/10-netplan-eth0.network
16:27:48 rpi4 systemd-networkd[775]: eth0: Failed to send DHCP RELEASE, ignoring: Stale file handle
16:27:48 rpi4 systemd-networkd[775]: eth0: DHCP lease lost
16:27:48 rpi4 systemd-networkd[775]: eth0: DHCPv6 lease lost
16:27:48 rpi4 systemd-networkd[775]: eth0: DHCPv4 address 192.168.nn.nn/24 via 192.168.nn.mm
16:27:48 rpi4 systemd-networkd[775]: wlan0: Re-configuring with /run/systemd/network/10-netplan-wlan0.network
16:27:48 rpi4 systemd-networkd[775]: wlan0: DHCPv6 lease lost
16:27:48 rpi4 systemd-networkd[775]: wlan0: Link UP

10-netplan-eth0.network ファイルと 10-netplan-wlan0.network ファイルは、Name= と RouteMetric を除いて同じに見えます。

$ sudo iw wlan0 info
Interface wlan0
        ifindex 3
        wdev 0x1
        addr dc:a6:32:85:nn:mm
        type managed
        wiphy 0
        channel 116 (5580 MHz), width: 20 MHz, center1: 5580 MHz
        txpower 31.00 dBm


$ sudo iwconfig wlan0
wlan0     IEEE 802.11  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=31 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

Wi-Fi の行があり、イーサネットの行がない NetPlan yaml ファイルを試しました。eth0 は正常に動作しますが、wlan0 に IP が割り当てられません。これがすべてです。

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether dc:a6:32:nn:nn:nn brd ff:ff:ff:ff:ff:ff
    inet 192.168.nn.nn/24 metric 100 brd 192.168.nn.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::dea6:xxxx:xxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether dc:a6:32:nn:nn:mm brd ff:ff:ff:ff:ff:ff

私は別の推奨事項を試してみました

network:
  version: 2
  renderer: networkd

eth0 は DHCP IP で有効になりますが、wlan0 には IP が割り当てられません。

現時点では試すオプションがないので、デスクトップで機能する Wi-Fi をサーバーで機能させる方法についてサポートしていただければ幸いです。

関連情報