Ubuntu usb wifi驱动安装(MT7601u芯片)

软件环境
Ubuntu 14.04
硬件环境
芯片:MT7601u
确定芯片,在电脑插上usb wifi,在ubuntu命令行,输入lsusb命令,在所列的列表中有MT7601u即认为该usb wifi芯片为MT7601u芯片,如下图
Ubuntu usb wifi驱动安装(MT7601u芯片)

代表产品:迅捷usb wifi、水星usb wifi,如下图
Ubuntu usb wifi驱动安装(MT7601u芯片)
Ubuntu usb wifi驱动安装(MT7601u芯片)
下载源码
可以在官网上找到源码,官网为
https://www.mediatek.com/products/broadbandWifi/mt7601u
源码下载地址为
https://d86o2zu8ugzlg.cloudfront.net/mediatek-craft/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2
所得文件:DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2
即为源码文件。

编译
将源码复制到ubuntu某个目录下,解压
tar -xvf DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2
进入文件夹
DPO_MT7601U_LinuxSTA_3.0.0.4_20130913
编译命令
make
编译过程中可能报错,如下
/work2/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/…/…/os/linux/rt_linux.c: In function ‘__RtmpOSFSInfoChange’:
/work2/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/…/…/os/linux/rt_linux.c:1121:20: error: incompatible types when assigning to type ‘int’ from type ‘kuid_t’
pOSFSInfo->fsuid = current_fsuid();
^
/work2/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/…/…/os/linux/rt_linux.c:1122:20: error: incompatible types when assigning to type ‘int’ from type ‘kgid_t’
pOSFSInfo->fsgid = current_fsgid();
根据错误提示找到报错文件rt_linux.c,报错行1121和1122,如下代码:
pOSFSInfo->fsuid = current_fsuid();
pOSFSInfo->fsgid = current_fsgid();
改为
pOSFSInfo->fsuid = *(int *)&current_fsuid();
pOSFSInfo->fsgid = *(int *)&current_fsgid();
再次编译即可编译成功;

安装加载
sudo insmod os/linux/mt7601Usta.ko
命令查看一下网卡:ifconfig
可以看到多了一个,wlan0
重启再次查看,仍然可以看到wlan0,说明网卡已经产生并保存了。