修复OpenWrt下ax88179芯片USB网卡重启后失效问题

有的时候,不来点天灾人祸,都不知道自己维护的系统有多脆弱。

起因是宿舍电费用完了,学校无情自动拉闸,然后我的路由器(树莓派Rpi4b上跑的OpenWrt)就关机了。交钱、恢复供电、树莓派重启,然后LAN口(用的ax88179芯片USB网卡,简单粗暴🤣)便没网了(报应😰)。一开始还以为是AP的问题,最后经过一通排查发现OpenWrt认不出来USB网卡了。

最后在StackExchange上找到了解决方法[1]

  1. 获取USB网卡ID:
1
2
root@OpenWrt:~# lsusb |grep AX88179
Bus 002 Device 004: ID 0b95:1790 ASIX AX88179A

如上所示,USB网卡ID为0b95:1790

  1. 在OpenWrt系统启动后,延时重置USB网卡:

修改/etc/rc.local并在exit 0前添加以下内容

1
2
sleep 15
usbreset 0b95:1790

主打一个简单粗暴🤣。(幸好路由器上提前部署了反向代理,给维修留了后路,不然怕是要全部推倒重来罢。)

后续调查发现这个问题似乎是启动顺序导致的[2],但毕竟问题已经“修复”了,也就不再继续深究。如果各位找到了根本解决办法,可以在评论区补充。


  1. StackExchange: USB-Ethernet adapter stops working periodically, as if going to sleep ↩︎

  2. Github Issue: Failed to write reg index ↩︎