在 4GB Raspberry Pi 4b 上全新安裝 Ubuntu Server 22.04 LTS,並啟用 PRO。在初次啟動時,我沒有意識到我需要等到 cloud-init 序列完成,所以我可能因為在控制台上過早登入而搞砸了。
透過 Raspberry Pi Imager 為 Ubuntu Server 22.04 LTS 建立可啟動媒體,我使用「進階選項」指定 Wi-Fi SSID 和密碼。
伺服器啟動 RPi4 的 eth0 介面並從我的路由器取得 DHCP 位址保留。它只是無法獲得我需要使用的內建 Broadcom Wi-Fi 介面的 IP,因此我可以斷開有線連接。
我讀過 netplan 設定文章,並查看了各種論壇上有關使 Wi-Fi 工作的大量帖子。在過去 4 天裡,我嘗試了各種方法,但無法讓內建 RPi4b Wi-Fi 介面在 Server 22.04 LTS 下運作。
啟動 PRO 的 Ubuntu Desktop 22.04 LTS 會同時顯示 eth0 和 wlan0 介面。在使用具有 NetworkManager 的 netplan 時,兩者都會從路由器的 MAC 預留中取得 DHCP IP。
dmesg 中提到 eth0 連結已啟動,但沒有提到 wlan0 或 phy0。 dmesg 中與無線相關的唯一行是幾行有關啟用省電的 cfg80211 行。
Server 22.04 使用具有networkd 的netplan 來啟動介面。這是我嘗試過的但無濟於事。 eth0 獲得 IP4 正常,但沒有 IP 分配給 wlan0。在 /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"
我遺漏了關鍵的「可選:」。 yaml 檔案中是否包含該行對結果沒有影響。當我為一個或兩個介面添加該鍵時,“可選:”設置為“true”或“false”沒有任何區別。
netplan --debug try (或產生或應用)表示我多次嘗試過的配置都是有效的,並且沒有顯示任何對我來說不好的東西。這是一些輸出。
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
我嘗試過 NetPlan yaml 文件,其中包含 wifi 線路,但不包含乙太網路線路。 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 也適用於伺服器。