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 をサーバーで機能させる方法についてサポートしていただければ幸いです。