0、前言
- 最近买了一个USB无线网卡,官方写着免驱动但是没有Linux下的驱动,在linux下使用的时候不能联网,通过一番查询,能够翘腿上网。
1、解决方法
- USB 无线网卡本质: 其实就是将无线网卡芯片封装成一个模块,然后通过usb的方式与电脑进行交互。
- USB 无线网卡驱动: 本质也是驱动无线网卡芯片进行工作,一般的设备通过USB 插入后会被电脑默认为存储设备,这是也USB 设备的默认工作模式,而所谓的免驱动也是插入设备后,将存储里提前存的驱动运行起来修改USB 的模式。
通过以上两点可以知道,第一找到无线网卡的芯片,安装对应的芯片驱动,第二改变USB 的模式,通过这两步就可以上网了。
- 通过找了一番无线网卡的资料,查到我的芯片是mt762u芯片,最后u是usb的意思。
- 一般而言,安装普通的ubuntu桌面版,会自带通用的网卡驱动,小试了一下,直接第二步。
- 安装usb_modeswitch
sudo apt install usb_modeswitch
- 查看usb所在的端口信息(MediaTek 是这个无线网卡厂家写入的,可以通过lsusb来一一排查)
txt@txt-CN15S:~$ lsusb | grep MediaTek
Bus 001 Device 013: ID 0e8d:7612 MediaTek Inc.
- 运行一下命令修改usb的工作模式(注意0e8d 和 2870 是标识id和上面查找的对应)
usb_modeswitch -KW -v 0e8d -p 2870
-
此后可以在状态栏看到WIFI标识,可以手动连接WIFI了
-
如何通过终端查看无线网卡的芯片类型
先找到无线网卡插入usb对应的标识ID ,然后运行上面usb_modeswitch切换usb工作模式,再次通过lsusb查看usb详情,可以看到对应id后面会出现芯片的型号。(例如我的usb信息最后变成了7612,说明是7612的芯片)
txt@txt-CN15S:~$ lsusb | grep MediaTek
Bus 001 Device 013: ID 0e8d:7612 MediaTek Inc.
- ubuntu预先没有安装好通用驱动怎么办?
自己手动装一个,找到芯片官网有芯片各个平台的驱动。如7612u官网驱动
2、参考
Linux系统下安装USB无线网卡驱动方法
linux下安装mt7612un无线网卡驱动
【Linux内核驱动】编译Linux下mt7612u的驱动