Ubuntu Server 22.04 LTS que usa netplan y networkd en RPi4b no asigna DHCP IP a wlan0

Ubuntu Server 22.04 LTS que usa netplan y networkd en RPi4b no asigna DHCP IP a wlan0

Instalación nueva de Ubuntu Server 22.04 LTS en una Raspberry Pi 4b de 4 GB con PRO activado. En el arranque inicial, no me di cuenta de que tenía que esperar hasta que finalizara la secuencia de inicio de la nube, por lo que es posible que lo haya arruinado al iniciar sesión demasiado pronto en la consola.

Con Raspberry Pi Imager creando el dispositivo de arranque para Ubuntu Server 22.04 LTS, utilicé las Opciones avanzadas para especificar un SSID y una contraseña de Wi-Fi.

El servidor abre la interfaz eth0 del RPi4 y obtiene una reserva de dirección DHCP de mi enrutador sin problemas. Simplemente no obtendrá una IP para la interfaz Wi-Fi integrada de Broadcom que necesito usar para poder desconectar la conexión por cable.

Leí artículos de configuración de netplan y miré muchas publicaciones en varios foros sobre cómo hacer funcionar Wi-Fi. He probado todo tipo de cosas durante los últimos 4 días y no puedo hacer que la interfaz Wi-Fi RPi4b incorporada funcione en el Servidor 22.04 LTS.

Ubuntu Desktop 22.04 LTS con PRO activado muestra las interfaces eth0 y wlan0. Ambos obtienen IP DHCP de las reservas MAC de mi enrutador mientras usan netplan con NetworkManager.

Hay una mención en dmesg de que el enlace eth0 está activo, pero no se menciona wlan0 o phy0. Las únicas líneas relacionadas con la conexión inalámbrica en dmesg son algunas líneas cfg80211 sobre la habilitación del ahorro de energía.

El servidor 22.04 usa netplan con networkd para abrir las interfaces. Esto es lo que he intentado sin éxito. eth0 recibe una multa IP4 pero no se asigna ninguna IP a wlan0. En /etc/netplan intenté definir ambas interfaces juntas en 01-network-manager-all.yaml de esta manera.

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

Omití la clave "opcional:". No hay diferencia en el resultado con o sin esa línea en el archivo yaml. Cuando agrego esa clave para una o ambas interfaces, no hay ninguna diferencia con "opcional:" configurado en "verdadero" o "falso".

netplan --debug try (o generar o aplicar) dice que las configuraciones que he probado son válidas, varias veces, y no muestra nada que me parezca malo. A continuación se muestran algunos de los resultados.

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)

Miré el archivo wpa_supplicant que parece verse bien. Tiene el SSID y la contraseña correctos.

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

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

Me di cuenta de que en las entradas del networkd journalctl se dice que eth0 obtiene una IP mientras que wlan0 no obtiene una IP. No sé por qué no es así.

$ 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

Tanto el archivo 10-netplan-eth0.network como el 10-netplan-wlan0.network parecen idénticos excepto Name= y 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

Probé un archivo yaml de NetPlan con las líneas para wifis y sin las líneas para ethernets. eth0 todavía funciona bien, pero aún no se asigna ninguna IP para wlan0. Esto es todo lo que consigo.

$ 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

Probé otra recomendación usando solo

network:
  version: 2
  renderer: networkd

eth0 se habilita con una IP DHCP pero no se asigna ninguna IP a wlan0.

En este punto, ya no tengo opciones para probar, por lo que agradecería ayuda para que el Wi-Fi, que funciona para el escritorio, funcione para el servidor.

información relacionada