自从切换到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驱动
这里感谢下 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 | sudo sed -i "/^dhcp-range/d" /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 | SSID=Portable |
修改后重新插拔小度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 | sudo /sbin/ifconfig ra0 up |
根据程序输出排查