Warum funktionieren Pings in meiner Wireless-Schnittstelle nicht?

Warum funktionieren Pings in meiner Wireless-Schnittstelle nicht?

Ich integriere ein WLAN-Modul in ein Yocto-Image. Ich möchte damit einen AP erstellen und den Datenverkehr von dieser Schnittstelle weiterleiten, aber die Verbindung funktioniert nicht. Ich kann sehen, dass die Schnittstelle läuft 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)

Ich erstelle mit dieser Schnittstelle einen WLAN-Hotspot. Ich kann das WLAN-Netzwerk mit meinem Mobiltelefon sehen und mich damit verbinden (alles mit statischer IP). Um zu überprüfen, ob die Schnittstelle funktioniert, sende ich von meiner Yocto-Maschine Pings an das Mobiltelefon. Ich erhalte jedoch keine Antwort.

Ich habe eine dritte Maschine eingerichtet, die ebenfalls mit dem WLAN verbunden ist. Diese Maschine überwacht den Datenverkehr im Monitormodus mit Wireshark. Ich sehe jedoch weder das ARP- noch das ICMP-Paket, das die WLAN-Schnittstelle verlässt.

Routing-Tabellen scheinen in Ordnung zu sein:

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

Allerdings scheint der Link nicht zu funktionieren. Ich kann sehen, dass mit ip link showder uap0-SchnittstelleKEIN TRÄGER

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

ifconfig uap0 downWenn Sie dies tun ifconfig uap0 up, wird diese Fehlermeldung angezeigt.

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

Haben Sie eine Idee, warum die Pings möglicherweise nicht funktionieren, oder welchen anderen Test ich durchführen könnte, um festzustellen, welcher Teil nicht richtig funktioniert?

Zusätzliche Informationen, die hilfreich sein können:

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

Antwort1

Der Grund dafür, dass es nicht funktionierte, lag in einer Geschwindigkeitsänderung des SD/MMC-Takts.

Der Treiber des WLAN-Moduls lädt die Firmware zunächst mit einer bestimmten Geschwindigkeit herunter. Nachdem die Firmware heruntergeladen wurde, wurde der Takt der SD/MMC auf 200 MHz erhöht. Aufgrund von Hardwarebeschränkungen führte dies zu einer inkonsistenten Kommunikation mit dem Modul.

Ich habe die Geschwindigkeit auf 25 MHz geändert und jetzt funktioniert es.

verwandte Informationen