ubuntu 16.04下驱动TP-LINK TL-WDN6200H免驱版无线网卡

1 先编译构建驱动

1
2
3
4
git clone https://github.com/jurobystricky/Netgear-A6210
cd /usr/src/netgear-a6210-2.5.0/
make
sudo make install

DKMS Install

On Debian-based distros, you can add the module to DKMS so it will automatically
build and install on each successive kernel upgrade. To do this, issue the following
commands from within the repo’s folder:

1
2
3
4
5
6
7
    $ cd ..
$ sudo mv Netgear-A6210/ /usr/src/netgear-a6210-2.5.0
$ sudo dkms install netgear-a6210/2.5.0

To remove:

$ sudo dkms remove netgear-a6210/2.5.0 --all

2 将无线网卡储存区中的SetupInstall.exe拷贝出来(如果没有出现无线网卡的usb储存,需要重新插拔一下无线网卡)

注意一定要把这个文件拷贝出来,不能直接再储存区中运行。运行这个程序后,储存区可能会消失掉。

3 每次启动后

1
2
3
wine SetupInstall.exe,进行初始化
sudo modprobe mt7662u_sta 或者 sudo insmod /lib/modules/4.4.0-96-generic/kernel/drivers/net/wireless/mt7662u_sta.ko
sudo service network-manager restart

如果还不行,可能需要重新插拔无线网卡,再重新走一次上述流程。

4 ubuntu 18.04 补充

18.04上原来的代码无法编译了,可以从https://github.com/kaduke/Netgear-A6210/tree/port-to-4.15下载适配高版本内核的驱动。
18.04上使用wine SetupInstall.exe无法进行初始化了,原因未明。这样就是加载了网卡驱动也无法找到无线网卡。
无奈转而直接分析wine SetupInstall.exe到底做了什么事情。分析了dmesg,lsusb的信息后,注意到wine执行之后,无线网卡对应的设备发生了变化。
lsusb初始化前id是2870,初始化后是7612。dmesg显示wine初始化时,出现了一次旧设备的的disconnect和新设备的加入。
综合各种情况来看,wine初始化时,是将无线网卡中对应的usb储存器断开了,然后将网卡设备挂上来了(这正好能解释第二节的现象)。
剩下的事情,就是看看不通过wine SetupInstall.exe来复现这一系列动作。尝试了各种方案后,终于在一个老外的论坛上看到,只需要eject usb storage,新的网卡设备就会出现。
马上尝试了一下,果然可以了。完全没有想到就是这么简单。。。
理顺以后整个思路就非常简单了。先手工弹出网卡带的储存盘,获得网卡设备,然后装入网卡驱动就可以上网了。