我一直在使用基于 yocto 的自定义 Linux 映像,该映像在工业平板电脑上运行。在测试期间,我在重新启动设备后遇到了一些连接到 WiFi 网络的问题。
重启之前,wlan 接口工作正常,可以通过 ifconfig 命令列出,如下所示:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:15182 errors:0 dropped:0 overruns:0 frame:0
TX packets:15182 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4832710 (4.6 MiB) TX bytes:4832710 (4.6 MiB)
net0 Link encap:Ethernet HWaddr BE:DF:28:C7:9C:28
UP BROADCAST RUNNING MTU:900 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:823 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:281466 (274.8 KiB)
wlan0 Link encap:Ethernet HWaddr AC:83:F3:BE:F4:35
inet addr:192.168.100.134 Bcast:192.168.100.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:400 errors:0 dropped:0 overruns:0 frame:0
TX packets:1067 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25731 (25.1 KiB) TX bytes:109477 (106.9 KiB)
arp 表似乎已正确填充
arp -a
? (192.168.100.1) at 58:f9:87:e4:b8:57 [ether] on wlan0
? (192.168.100.8) at 98:83:89:93:79:db [ether] on wlan0
我成功 ping 并通过 ssh 远程访问了该设备。
但是,重新启动后,wlan 接口仍然出现在 ifconfig 命令中,就像上一个一样,但是当我尝试在设备上 ping 或执行 ssh 时,会出现以下答案:
destination host unreachable
下面这句话在平板终端运行命令“tcpdump -i wlan0”时经常出现:
ARP, Request who-has 192.168.100.1 tell 192.168.100.134, length 28
根据我的研究,arp 请求尝试使用目标 ip 解析设备的 mac 地址。地址 192.168.100.1 对应于我的 ONT ip 地址,似乎网络设备不响应我的平板电脑的请求。
arp表也发生了变化:
? (192.168.100.1) at <incomplete> on wlan0
执行“ifdown wlan0 && ifup wlan0”后连接才恢复正常行为
此现象仅发生在平板电脑上,连接在同一网络中的其他设备不会出现这种情况。
有人知道发生了什么事吗?
如何在重启系统后建立正常连接?