今天找出新买的USB Type C 有线网卡,连接上电脑,电脑也成功识别了,提示找到了网卡,但却无法上网。
```
lsusb | grep Ether
Bus 004 Device 003: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
```
更加古怪的,我想找到 Wireshark 抓包看看是什么情况,怎么连DHCP获取IP地址都失败,结果一开始抓包就可以正常上网了,但只要关闭抓包,就恢得无法上网的状态。
使用万能的 Google 搜索了一下,找到了这个贴子。
https://bbs.archlinux.org/viewtopic.php?id=286382
ethtool 等等命令输出的结果和这个帐子里附的基本上一样(除了内核版本),所以这就不再赘述了。
参考楼主的做法,添加了如下 udev 规则,系统确实会加载 ax88179_178a 模块,ethtool 也可以正常显示出网卡信息。但是还是无法连网。
```
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0b95", ATTR{idProduct}=="1790", ATTR{bConfigurationValue}!="1", ATTR{bConfigurationValue}="1"
```
dmesg 看了一下,日志中狂刷:
ax88179_178a 4-1:1.0 enp3s0f4u1: ax88179 - Link status is: 0
尝试重启,发现开机之后,第一次插入该USB网卡是可以正常使用的,但拔出再插入又无法使用,同时日志中乱刷 ax88179_178a 4-1:1.0 enp3s0f4u1: ax88179 - Link status is: 0 。
lsmod | grep ax88 看了一下,发现好像还加载了 cdc_mbim cdc_ncm,尝试运行 modprobe -r cdc_mbim cdc_ncm 移除这两个内核模块。再次插拔之后又可以正常使用。
在 modprobe.conf 添加上下面内容,禁用这两个内核模块。
```
blacklist cdc_mbim
blacklist cdc_ncm
```
重启之后,该USB网卡可以使用。
另外,AUR上中有 asix-ax88179-dkms 包。
https://aur.archlinux.org/packages/asix-ax88179-dkms
虽然我没有使用,但同样可以解决问题。
#博文草稿 #AX88179