Wifi
為什麼 ping 在我的無線介面中不起作用?
我在 Yocto 映像中集成了一個 wifi 模組,我想用它創建一個 AP 並從此類介面轉發流量,但連接不起作用。我能夠看到界面正在執行
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)
我正在用這個界面創建一個 wifi 熱點。我可以用我的手機看到 wifi 網路並連接到它(全部使用靜態 IP)。為了驗證介面是否正常工作,我正在從我的 yocto 機器向手機發送 ping。但是我沒有得到任何回應。
我已經設置了第三台機器也連接到 wifi。這台機器正在使用wireshark在監控模式下嗅探流量。但是我沒有看到 ARP 和 ICMP 數據包離開 wifi 介面。
路由表看起來不錯:
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
但是,該連結似乎不起作用。我可以看到與
ip link show
uap0 介面有NO-CARRIERip 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 down
然後ifconfig uap0 up
產生此錯誤消息。root:$~ dmesg -wH +26.612727] IPv6: ADDRCONF(NETDEV_UP): uap0: link is not ready
您是否知道為什麼 ping 可能無法正常工作,或者我可以做哪些其他測試來評估哪個部分無法正常工作?
可能有幫助的其他資訊:
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
它不工作的原因與 SD/MMC 時鐘速度的變化有關。
wifi模組的驅動程序最初以一定的速度下載韌體。下載韌體後,SD/MMC 的時鐘增加到 200MHz。由於硬體限制,這會導致與模組的通信不一致。
我將速度更改為 25MHz,它現在可以工作了。