更新2015年11月16日,jessie内核版本号4.1.13(uname -a 可以查看)直接可以驱动MT7601U,无需手动编译。
截止2015-4-6,本文基于树莓派2,raspbian,内核版本3.18.10-v7+。支持AP和STA模式
以上免费wifi基于mt7601u芯片,360wifi 1代的是rt5370直接免驱。
天猫魔盘是d-link订做的,rtl芯片。
参考了诸多文章,大多数内核较老,而且由于pi2基于arm7平台,大多编译出来的无法使用。
最后在李凡希老师的博客帮助下编译成功。
针对:
1.驱动程序编译失败
2.编译成功加载模块时Exec format error(内核头文件与实际运行的内核不匹配)
一、更新树莓派系统(如更新内核后请重启):
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo rpi-update
二、编译前准备编译模块需要的内核树(适用于Pi 1 Pi 2 Raspbian):
1.下载安装rpi-source脚本
sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O /usr/bin/rpi-source
sudo chmod +x /usr/bin/rpi-source
/usr/bin/rpi-source -q --tag-update
2.运行rpi-source
rpi-source
运行前请保证gcc和g++版本为4.8.3+,否则会报错。安装方法参考wiki(https://github.com/notro/rpi-source/wiki)
rpi-source有人接手维护,现在支持pi 2。不需要下载李凡希老师的修改版本了。
三、编译驱动程序
a.STA驱动(普通无线网卡功能)
下载官方STA驱动并传到树莓派上,方法请参考之前的文章:
http://yunpan.cn/cVVSuSSCtvscw (提取码:fba0)
解压:
tar xjvf DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2
cd DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/
修改common/rtusb_dev_id.c,
在 {USB_DEVICE(0x148f,0×7601)}, /* MT 6370 */ 下面加入以下内容(其他自己添加):
{USB_DEVICE(0x148f,0x760b)}, /* 360 Wifi */
{USB_DEVICE(0x2717,0x4106)}, /* Xiaomi Wifi */
更新gcc和g++版本后无需修改include/os/rt_linux.h,否则会报错。
make
不出错的话就可以安装了
sudo make install
加载驱动模块
sudo modprobe mt7601Usta
查看是否识别无线网卡(ra0)
ifconfig
查看是否正常加载驱动
lsmod
查看ra0是否工作正常
sudo iwlist ra0 scan
更新(2015-4-10):
1.编译时可以选择别的显示名称而不是ra0
2.通过ra0连接无线网络,似乎最新版只支持wpa_supplicant.
更新(2015-4-19):
另一种方法,不用更新高版本gcc和g++,来自爱板网http://www.eeboard.com/bbs/thread-41207-1-1.html
编辑文件/etc/network/interfaces,添加
auto ra0
allow-hotplug ra0
iface ra0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
编辑文件/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="无线网名字"
key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
pairwise=TKIP CCMP
group=CCMP TKIP WEP104 WEP40
psk="WIFI密码"
}
重启。参考http://bbs.xiaomi.cn/thread-11203622-1-1.html
英文双引号。
更新(2015-5-10):树莓派实验室设置无线的配置如下
auto ra0
allow-hotplug ra0
iface ra0 inet dhcp
wpa-ssid 无线SSID
wpa-psk 无线密码
b.AP驱动(AP功能)
此模式下不支持无线网卡功能,无法连接无线网。且和STA驱动不能同时使用(未测试)。
"MT7601的Linux驱动中似乎没有实现nl80211的接口,所以hostapd没法直接用。"
但是感谢这位作者的努力,mt7601支持AP模式了。
http://blog.csdn.net/sumang_87/article/details/38168877
使用方法参考其博客,我只编译加载了驱动(本身有一个usb网卡工作在AP模式),工作正常。
四、驱动程序冲突
两个驱动无法同时使用,还好两者都提供make uninstall命令。
我的设想是移除ko文件然后depmod命令。可以参考树莓派论坛的一个帖子。
参考:
http://www.freemindworld.com/blog/2013/131010_360_wifi_in_linux.shtml
http://www.freemindworld.com/blog/2015/150312_complie_kernel_module_for_raspberry_pi_2.shtml
http://www.pppei.net/blog/post/690
http://www.7forz.com/2470/
http://shumeipai.nxez.com/2014/12/07/raspberry-pi-use-360wifi.html
http://www.raspberrypi.org/forums/viewtopic.php?f=28&t=98913
http://www.raspberrypi.org/forums/viewtopic.php?f=28&t=49864&p=690479
更新另一个AP驱动
http://yunpan.cn/cVFHgZ5xLQKvS (提取码:ab07)
参考http://www.unpluggedcoder.me/%E5%9C%A8linuxcentos%E4%B8%8A%E5%BC%80%E5%90%AF%E5%B0%8F%E5%BA%A6wifi%E6%97%A0%E7%BA%BFap%E6%A8%A1%E5%BC%8F/
(未测试)
更新(2015-5-10):
其他信息可参考我在贴吧的帖子 http://tieba.baidu.com/p/3683815783?pid=66624512774&cid=0#66624512774
更新了编译好的STA驱动,mt7601Usta_3.18.13-v7+:http://yunpan.cn/cj2EjRJRegppZ (提取码:09e7)