鱼喃

听!布鲁布鲁,大鱼又在那叨叨了

ubuntu linux 下安装小米wifi、360wifi、duwifi驱动

自从切换到linux之后,手机上网就一直面临着两个问题(电脑创建热点方面)

1、安卓手机没法搜到信号

2、无线网络下无法创建wifi

左折腾右折腾,最后决定:买个随身wifi。怀疑360跟某度默默的搜集隐私,于是选择了一个稍微能接受一点的小米wifi

买来之后,装驱动又成了一个问题,官方没有linux版本

网上各种找代码,在尝试了各个版本的代码后,终于安装成功。(有的编译时会报*.ko找不到的错误),各个版本似乎都是基于某一个开源项目,只有几个文件不同

ps:随身wifi发热不是一点点,而且插上后似乎电脑风扇转速也更快了

安装驱动方法

以下内容为转载,原文地址:linuxmint (ubuntu) 下用小度wifi做AP

此方法在linuxmint 17.1下测试通过。(转载注:联想G400,ubuntu14.04/debian 8、miwifi/360wifi测试下也通过)理论上可支持小米wifi、360wifi。

具体操作如下:

1.下载安装MT7601U驱动

MT7601U驱动

这里感谢下 http://bbs.xiaomi.cn/thread-10160085-1-1.html 帖子的作者。

将下载的驱动解压,进入解压出来的mt7601u文件夹,执行下面的命令进行编译安装:

1
./install.sh

2.安装配置Dnsmasq (dns、dhcp)

1
sudo apt-get install dnsmasq

安装好后执行下面命令启用dhcp功能

1
2
sudo sed -i "/^dhcp-range/d" /etc/dnsmasq.conf 
sudo bash -c 'echo "dhcp-range=192.168.86.50,192.168.86.150,12h" >>/etc/dnsmasq.conf'

这里,最好手动检查下/etc/dnsmasq.conf这个文件,因为文件里默认最后没有换行,会导致echo进去的字符串和原来最后一行混在一起。

3.配置udev

新建文件/etc/udev/rules.d/100-portable-wifi.rules,加入以下内容:

1
SUBSYSTEM=="net", ACTION=="add", ENV{DEVPATH}=="/devices/virtual/net/ra0", RUN+="/bin/sh -c '/sbin/ifconfig ra0 up; /sbin/ifconfig ra0 192.168.86.1; /etc/init.d/dnsmasq restart;echo 1 > /proc/sys/net/ipv4/ip_forward ;iptables -t nat -D POSTROUTING -s 192.168.86.0/24 -j MASQUERADE; iptables -t nat -A POSTROUTING -s 192.168.86.0/24 -j MASQUERADE'"

顺利完成以上步骤之后,插上小度wifi,10秒过后应该就可以看到一个名为 Portable 的无线接入点,默认密码:abcd1234,连接此AP即可上网。

通过修改 /etc/Wireless/RT2870AP/RT2870AP.dat 文件的以下行来修改 AP名、密码、和信道:

1
2
3
SSID=Portable
WPAPSK=abcd1234
Channel=11

修改后重新插拔小度wifi即可。

注:以后只需要插入随身wifi即可,驱动自动加载

可能出现的问题

1、连接wifi一直卡在获取IP这一步

在安装好后执行下面命令启用dhcp功能

1
sudo bash -c 'echo "dhcp-range=192.168.86.50,192.168.86.150,12h" >>/etc/dnsmasq.conf'

错误排查

可以参考以下的步骤来排查:

检查设备是否被识别

通过 lsusb 命令来查看插入wifi前后的变化来判断。

我的360WIFI显示: Bus 001 Device 005: ID 148f:760b Ralink Technology, Corp.

检查网卡是否启动(插入随身WIFI后)

输入命令 ip a 检查是否有名为ra0 的网卡

检查dnsmasq(插入随身WIFI后)

输入命令 ps -e 查看dnsmasq服务是否启动

手工启动

依次输入以下命令,查看是否有错误

1
2
3
4
5
6
sudo /sbin/ifconfig ra0 up
sudo /sbin/ifconfig ra0 192.168.86.1
sudo /etc/init.d/dnsmasq restart
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -D POSTROUTING -s 192.168.86.0/24 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -s 192.168.86.0/24 -j MASQUERADE

根据程序输出排查

换部手机试试。。。