¿Por qué los pings no funcionan en mi interfaz inalámbrica?

¿Por qué los pings no funcionan en mi interfaz inalámbrica?

Estoy integrando un módulo wifi en una imagen de Yocto. Quiero crear un AP con él y reenviar el tráfico desde dicha interfaz pero la conexión no funciona. Puedo ver la interfaz ejecutándose ifconfig.

uap0      Link encap:Ethernet  HWaddr cc:f9:57:e0:15:81  
          inet addr:192.168.33.1  Bcast:192.168.33.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Estoy creando un punto de acceso wifi con esta interfaz. Puedo ver la red wifi con mi teléfono celular y conectarme a ella (todo usando IP estática). Para verificar si la interfaz está funcionando estoy haciendo pings desde mi yocto-máquina al celular. Sin embargo no recibo respuesta.

He configurado una tercera máquina también conectada al wifi. Esta máquina está rastreando el tráfico en modo monitor con Wirehark. Sin embargo, no veo que el paquete ARP ni el ICMP salgan de la interfaz wifi.

Las tablas de enrutamiento parecen estar bien:

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.13.229.156   0.0.0.0         UG    0      0        0 inm0
192.168.32.0    0.0.0.0         255.255.255.0   U     0      0        0 usb0
192.168.33.0    0.0.0.0         255.255.255.0   U     0      0        0 uap0
192.168.201.0   0.0.0.0         255.255.255.0   U     0      0        0 usb0.1

Sin embargo, el enlace parece no funcionar. Puedo ver que con ip link showla interfaz uap0 tieneNINGUNA COMPAÑÍA

ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default 
    link/sit 0.0.0.0 brd 0.0.0.0
3: inm0: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 00:49:4e:4d:30:00 brd ff:ff:ff:ff:ff:ff
4: inm1: <BROADCAST,MULTICAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
...
...
15: usb0.4@usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
    link/ether d4:ca:6e:f2:00:01 brd ff:ff:ff:ff:ff:ff
16: mlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether cc:f9:57:e0:14:81 brd ff:ff:ff:ff:ff:ff
17: uap0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    link/ether cc:f9:57:e0:15:81 brd ff:ff:ff:ff:ff:ff

Al hacer ifconfig uap0 downy luego ifconfig uap0 upaparece este mensaje de error.

root:$~ dmesg -wH
     +26.612727] IPv6: ADDRCONF(NETDEV_UP): uap0: link is not ready

¿Tiene alguna idea de por qué es posible que los pings no funcionen o qué otra prueba podría hacer para evaluar qué parte no funciona correctamente?

Información adicional que puede resultar útil:

ethtool -i uap0  
driver: wlan_sdio
version: 3.14.55-yocto-standard
firmware-version: N/A
bus-info: mmc1:0001:1
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

Respuesta1

La razón por la que no funcionaba estaba relacionada con un cambio en la velocidad del reloj SD/MMC.

El controlador del módulo wifi inicialmente descarga el firmware a una velocidad determinada. Después de descargar el firmware, el reloj de la SD/MMC se incrementó a 200MHz. Debido a limitaciones de hardware, esto provocaba una comunicación inconsistente con el módulo.

Cambié la velocidad a 25MHz y ahora está funcionando.

información relacionada