小米随身 WiFi / 360 随身 WiFi 二代 / 小度 wifi 用的都是 ralink 的 MT7601U,所以可以一并解决
A. 无线网卡
官方有开源的 STA 驱动  STA 无线网卡驱动  ,下载解压 (解压后路径不要包含中文):
- 
在 DPO_MT7601U_LinuxSTA_3.0.0.4_20130913\DPO_MT7601U_LinuxSTA_3.0.0.4_20130913\common\rtusb_dev_id.c 中, 
 “ {USB_DEVICE(0x148f,0x7601)}, /* MT 6370 */” 行下添加设备 id:#ifdef MT7601U 
 {USB_DEVICE(0x148f,0x6370)}, /* Ralink 6370 /
 {USB_DEVICE(0x148f,0x7601)}, / MT 6370 /
 {USB_DEVICE(0x2955,0x0001)}, / XiaoDu Wifi /
 {USB_DEVICE(0x2955,0x1001)}, / XiaoDu Wifi /
 {USB_DEVICE(0x148f,0x760b)}, / 360 Wifi 2*/
 {USB_DEVICE(0x2717,0x4106)}, /* XiaoMi wifi /
 #endif / MT7601U */
如果不确定自己的设备 id 可以用 lsusb 命令查看,一般都已经在上面代码中列出来了
- 
DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/rt_linux.c 1121 行~1122 行,改为: pOSFSInfo->fsuid = current_fsuid().val; pOSFSInfo->fsgid = current_fsgid().val;
这里改动是为了匹配较新的内核。
- 
驱动编译需要解决依赖 kernel-devel, 使用 yast 或 zypper 时注意选择和自己当前内核匹配的版本。 
- 
到 DPO_MT7601U_LinuxSTA_3.0.0.4_20130913 目录下 make, 
 然后 sudo make install
 最后 sudo modprobe mt7601Usta
- 
用 NetworkManager 管理无线网络即可。 
B. 无线 AP
这部分参考了  blog.csdn.net/sumang_87/article/details/38168877 ,感谢原作者发布带 AP 功能的驱动源码,并且极大简化了编译配置流程,但是在 openSUSE 上需要修改一些配置。
原作者发布  github.com/eywalink/mt7601u
楼主 fork 以后针对 openSUSE 做了一点点优化  github.com/wiliamwalace/mt7601u
** update:  **  以上驱动仅适用于 kernel 3.1x, 对于 kernel 4.12, 可以使用楼主链接的 move_to_42.1 分支。
- 
编译源码,上面官方源码能编译通过的话,这里一般也不会有问题,直接运行 build 脚本即可 sudo ./miwifi_build.sh 
- 
配置 DHCP 服务 
 2.1 安装 dhcp-serversudo zypper install dhcp-server 
2.2 编辑 /etc/dhcpd.conf, 在“# This is a very basic subnet declaration”行后添加如下语句:
subnet 192.168.199.0 netmask 255.255.255.0 {
  range 192.168.199.10 192.168.199.20;
  option routers 192.168.199.1;
  option domain-name-servers YOUR-DNS-SERVER;
}
YOUR-DNS-SERVER 部分请用自己合适的 DNS 服务器 IP 代替
2.3 编辑 /etc/sysconfig/dhcpd, 把
DHCPD_INTERFACE=""
改为
DHCPD_INTERFACE="ra0"
2.4 建立租约文件 sudo touch /var/lib/dhcp/db/dhcpd.leases
- 
加载驱动 
 楼主优化版直接 sudo ./miwifi_work.sh
 原作者版请删除 miwifi_work.sh 中全部 iptables 语句后再执行。
 这一步完成以后一个无线子网就已经搭建起来了,手机什么的移动设备都可以愉快连接,但还上不了互联网,还差最后一步。
 ** update: ** AP 驱动似乎和 NetworkManager 有冲突,会导致 NetworkManager 服务退出且无法启动,所以桌面的网络图标如果消失了,莫方。
- 
设置 ip 转发 
 openSUSE 使用 SuSE firewall 管理 iptables,所以直接调用 iptables 修改设置是无效的,不过折腾了半天发现 SuSE firewall 的设置其实更简单:
 yast2 打开防火墙设置,在界面 (interfaces) 栏添加自定义 (custom) 一项:在内部区域 (internal zone) 那里填入 any,其余 2 个选项留空。
 在 Masquerading 栏,把 Masquerade Network 勾上,保存退出。DONE!
 ** update: **
- 
leap 42.1 的 SuSE firewall 已经不支持内部区域填 any 字串,应填 ra0; 
- 
网络的外部出口需要为以太网连接,不能为无线,否则上不了外网. 
- 
设置 WiFi(终于!) 
 如果一切顺利,你会搜到一个
 网络名 MiWiFi_SuMang
 密码 52xiaomi
如要修改为自定义 SSID 和密码
方法一:修改 mt7601u/etc/Wireless/RT2870AP/RT2870AP.dat ,重新编译。。
方法二:直接修改 /etc/Wireless/RT2870AP/RT2870AP.dat
到此就基本实现了随身 WiFi 的全部功能, Enjoy~
PS: 测试系统 openSUSE 13.2; kernel 3.16.7-21-desktop, openSUSE Leap 42.1; kernel 4.12.31-default
以上配置开机后默认是 STA 模式,sudo 运行 miwifi_work.sh 即可切换为 AP 模式,另外楼主链接中的 miwifi_ap2sta.sh 可用于 AP 模式向 STA 模式转换,unload.sh 可用于卸载所有 mt7601u 相关模块。
