0%

[2014-08-07]小米随身wifi.linux驱动手记

参考:
http://blog.sina.com.cn/s/blog_4d31f1650101ejlt.html
http://blog.csdn.net/michaelbaker/article/details/23597741

俺过年的时候趁着便宜买了俩小米随身wifi,想着说不定可以在单位用用。近日,突然想在虚拟机上用一下无线网卡,就想到了Ta。但是虚拟机系统是linux,准确地说是Kali⊙﹏⊙,没法自驱动。赶紧问了问万能的百度,发现了上面的参考文。

由于参考文中有点小笔误,重新整理一下过程:

Step.1

下载MT7601U的linux驱动包(官方地址:http://www.mediatek.com/zh-CN/downloads/mt7601u-usb/,页面下方填写Name, Email, 验证码,然后SUBMIT就会弹出下载啦~Name随便填,Email只要有@就行也随便填)

Step.2

安装gcc,make什么的。。这个一般都有,就跳过吧,没有的话要安装,安装方法各linux版本略有出入。

Step.3

把下载好的官方驱动解包,开始动刀手术啦~

a.

common/rtusb_dev_id.c中找到#ifdef MT7601U

在下面加一行

1
{USB_DEVICE(0x2717,0x4106)}, /* XiaoMi wifi */

后面部分是注释大家都明白的

如果有小度wifi和360wifi2的需求的话,还可以再加2行

1
2
{USB_DEVICE(0x148f,0x760b)}, /* 360 Wifi Gen 2*/
{USB_DEVICE(0x2955,0x1001)}, /* Xiao Du Wifi*/

完成一个啦~

再修改另一个文件,不然新内核可能编译出错

b.

os/linux/rt_linux.c1121行和1122行(参考文中写的是1211行和1222行,笔误了~)

找到

1
2
pOSFSInfo->fsuid = current_fsuid();
pOSFSInfo->fguid = current_fguid();

改成

1
2
pOSFSInfo->fsuid = *(int *)&current_fsuid();
pOSFSInfo->fguid = *(int *)&current_fguid();

或者

1
2
pOSFSInfo->fsuid = (int )&current_fsuid();
pOSFSInfo->fguid = (int )&current_fguid();

俺是用的上面那种~

不过据说下面这种比较好,上面那种更新内核的话会失效然后要重新编译安装

改完收工

Step.4

编译安装>

cd到驱动包根目录

1
2
3
make
make install
modprobe mt7601Usta

重启一下系统,一般网络管理器就能发现网卡了,如果无线网卡没启用的话还要启用一下,然后就可以搜索到wifi信号啦~

完成,可惜百度说小米随身wifi不支持监听模式,本来还想那啥啥来着,看来不行啊。。。