码疯窝

最近装Linux系统后“QQ全民WIFI”又用不了了。这些厂商全然不估Linux用户感受,不提供Linux下的驱动,无奈只能自己动手,丰衣足食。

此方法理论上是通用于Ubuntu 14.04的。腾讯,百度,小米,360他们几家的WIFI都是一样设置。
能过网上信息得知这些个WIFI都是使用的MT7601芯片。去到官网下载最新驱动20130916版本HERE

不过我是下载不下来。只找到了一个别人备份的一个20130913版本。

cd /tmp
wget //groenholdt.net/Computers/RaspberryPi/MediaTek-MT7601-USB-WIFI-on-the-Raspberry-Pi/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2
tar xjvf DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2
cd DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/

下载好驱动后插入全民WIFI,查看usb设备lsusb

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 2a5f:1000  
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

就里的2a5f:1000就是QQ全民WIFI了。
修改驱动文件, 加入识别vi common/rtusb_dev_id.c
找到此行

{USB_DEVICE(0x148f,0×7601)}, /* MT 6370 */

在其后加入

{USB_DEVICE(0x2a5f,0x1000)}, /* Tencent WIFI */
{USB_DEVICE(0x2955,0x0001)}, /* XiaoDu Wifi */
{USB_DEVICE(0x148f,0x760b)}, /* 360 Wifi */
{USB_DEVICE(0x2717,0x4106)}, /* Xiaomi Wifi */

进行优化(可不做)vi os/linux/rt_linux.c
找到此行

ULONG RTDebugLevel = RT_DEBUG_TRACE;

修改为:

ULONG RTDebugLevel = 0; // RT_DEBUG_TRACE;

然后编译安装驱动

make
sudo make install

在make的时候却报错了

/tmp/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();
                    ^
/tmp/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();
                    ^

又是一番度娘谷哥的, 结果发现是因为内核版本的问题导致的。
修改源码文件vi include/os/rt_linux.h
找到

int fsuid;
int fsgid;

修改为:

kuid_t fsuid;
kgid_t fsgid;

再次编译

make
sudo make install

大功告成, 都不用重启。
运行ifconfig看到

ra0       Link encap:Ethernet  HWaddr 1c:78:39:02:33:fe  
          inet6 addr: fe80::1e78:39ff:fe02:33fe/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:11786 errors:0 dropped:0 overruns:0 frame:0
          TX packets:331 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1964874 (1.9 MB)  TX bytes:34740 (34.7 KB)

参考文章:

树莓派 腾讯全民WIFI 百度WIFI 小米WIFI 360WIFI 安装教程
在树莓派上使用基于MT7601的无线网卡

继续查看有关 技术随笔的文章

0个访客评论