Ubuntu Server 22.04 LTS с использованием netplan и networkd на RPi4b не назначает DHCP IP для wlan0

Ubuntu Server 22.04 LTS с использованием netplan и networkd на RPi4b не назначает DHCP IP для wlan0

Свежая установка Ubuntu Server 22.04 LTS на Raspberry Pi 4b 4 ГБ с активированной PRO. При первой загрузке я не понял, что нужно ждать завершения последовательности cloud-init, так что я мог все испортить, слишком рано войдя в консоль.

При создании загрузочного носителя для Ubuntu Server 22.04 LTS с помощью Raspberry Pi Imager я использовал Дополнительные параметры, чтобы указать SSID и пароль Wi-Fi.

Сервер поднимает интерфейс eth0 RPi4 и получает резервирование DHCP-адреса от моего маршрутизатора просто отлично. Он просто не получает IP для встроенного интерфейса Broadcom Wi-Fi, который мне нужен, чтобы я мог отключить проводное соединение.

Я прочитал статьи по настройке netplan и посмотрел множество сообщений на различных форумах о том, как заставить работать Wi-Fi. Я перепробовал все виды вещей за последние 4 дня и не могу заставить работать встроенный интерфейс Wi-Fi RPi4b под Server 22.04 LTS.

Ubuntu Desktop 22.04 LTS с активированным PRO выводит интерфейсы eth0 и wlan0. Оба получают DHCP IP из резервирования MAC моего маршрутизатора при использовании netplan с NetworkManager.

В dmesg есть упоминание о том, что связь eth0 включена, но нет упоминания о wlan0 или phy0. Единственные строки, относящиеся к беспроводной сети в dmesg, это несколько строк cfg80211 о включении энергосбережения.

Сервер 22.04 использует netplan с networkd для вызова интерфейсов. Вот что я пробовал, но безрезультатно. 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"

Я пропустил ключ "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"
}

Я заметил в записях сетевого журналаctl, что 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 и без строк для ethernet. 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, который работает на настольном компьютере, для работы на сервере.

Связанный контент