在NanoPi M1下使用小度Wi-Fi

在NanoPi M1下使用小度Wi-Fi

M1的固件nanopi-m1-debian-sd4g-20160907.img.zip已经自带了小度Wi-Fi的驱动——mt7601u,但是没法即插即用,不知道为什么。为了使用小度Wi-Fi需要进行一些设置。

因为大多数讲Wi-Fi的文章都只是列了一下配置,然后就OK,但是自己不成功的话,无从排查问题。本文尝试引入几个命令来帮助排查问题,虽然我也是对整个配置过程一知半解,但了解了这几个命令还是有很大帮助。

1. lsusb

插上小度Wi-Fi,我们首先需要确认是不是被系统识别了,那就需要用lsusb,首先用如下命令安装lsusb

sudo apt-get install usbutils

然后执行lsusb输出如下:

Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 002: ID 2955:1001  
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

如果有2955:1001,则表示小度Wi-Fi被识别了,对于其他的设备,可以通过该命令在查看设备的Device ID。

2. dmesg

dmesg可以用来查看内核输出的信息,我们用它来查看驱动是否加载了。插上小度Wi-Fi后,在终端中执行dmesg命令,如果驱动加载正常在最后会有如下输出:

[  142.050149] usb 2-1: new high-speed USB device number 2 using sunxi-ehci
[  141.449845] cfg80211: World regulatory domain updated:
[  141.455614] cfg80211:  DFS Master region: unset
[  141.460469] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[  141.471300] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[  141.480206] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[  141.489085] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[  141.498000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
[  141.508545] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[  141.519081] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[  141.528078] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[  141.530052] usb 2-1: reset high-speed USB device number 2 using sunxi-ehci
[  141.544599] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[  141.683042] mt7601u 2-1:1.0: ASIC revision: 76010001 MAC revision: 76010500
[  141.699552] mt7601u 2-1:1.0: Firmware Version: 0.1.00 Build: 7640 Build time: 201302052146____
[  142.113339] mt7601u 2-1:1.0: Warning: unsupported EEPROM version 0d
[  142.120500] mt7601u 2-1:1.0: EEPROM ver:0d fae:00
[  142.126447] mt7601u 2-1:1.0: EEPROM country region 01 (channels 1-13)
[  142.372181] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[  142.374575] usbcore: registered new interface driver mt7601u

也可以使用dmesg | grep mt7601来精简输出:

​ [ 10.030133] mt7601u 6-1:1.0: ASIC revision: 76010001 MAC revision: 76010500
​ [ 10.495110] mt7601u 6-1:1.0: Warning: unsupported EEPROM version 0d
​ [ 10.507867] mt7601u 6-1:1.0: EEPROM ver:0d fae:00
​ [ 10.527104] mt7601u 6-1:1.0: EEPROM country region 01 (channels 1-13)
​ [ 11.465717] usbcore: registered new interface driver mt7601u

只要看到usbcore: registered new interface driver mt7601u就表示小度Wi-Fi已经被识别出来了并且加载了。

3. lsmod 和 modinfo

假入没有类似输出,我们可能要进一步确认mt7601u是不是加载了,那就需要用lsmod,正常来说会输出如下内容:

Module                  Size  Used by
mt7601u                73012  0 
mac80211              495881  1 mt7601u
cfg80211              470289  2 mac80211,mt7601u
mali_drm                5741  1 
mali                  194124  0 
ump                    37786  3 mali
rfcomm                 21114  4 
bnep                    9149  2 
hci_uart               11776  0 
btbcm                   5304  1 hci_uart
bluetooth             300113  10 bnep,btbcm,hci_uart,rfcomm
compat                 25372  7 bnep,cfg80211,mac80211,mt7601u,hci_uart,rfcomm,bluetooth

可以看到mt7601已经加载了,但是没用啊。我们在用sudo modinfo mt7601u来查看驱动的具体信息,正常输出如下:

filename:       /lib/modules/3.4.39-h3/updates/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
version:        backported from Linux (v4.4.2-0-g1cb8570) using backports v4.4.2-1-0-gbec4037
license:        GPL
firmware:       mt7601u.bin
srcversion:     06486A44A19698210D54450
alias:          usb:v7392p7710d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v2A5Fp1000d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v2955p1001d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v2955p0001d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v2717p4106d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v2001p3D04d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp760Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp760Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp760Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp760Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp7601d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3434d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3431d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0E8Dp760Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0E8Dp760Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0B05p17D3d*dc*dsc*dp*ic*isc*ip*
depends:        mac80211,compat,cfg80211
vermagic:       3.4.39-h3 SMP preempt mod_unload ARMv7 p2v8 

注意其中的alias,其中的usb:vXXXXpXXXd这部分实际上对应的是USB设备的deviceID,所以需要看一下有没有小度Wi-Fi的ID:2955:1001,如果没有,那么你需要自己编译mt7601来支持了,M1自带的是支持小度Wi-Fi的。所以一切正常的话,完全可以驱动起来。对于其他Wi-Fi设备,可以通过lsusb来获取DeviceID来查看驱动是否支持。

4. ip addr

虽然mt7601支持小度Wi-Fi,内核也提示已经创建了接口,但是通过sudo ifconfig还是看不到wlan0。这时我们需要用sudo ip addr来确认是不是已经创建wlan0了还是有其他的网络接口(实际官方的mt7601驱动创建的是ra0网络接口),假设你使用过其他Wi-Fi设备,此时为小度创建的接口可能是wlan1,这个需要确认一下。

7: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff

可以根据link/ether后的Mac地址:xx:xx:xx:xx:xx:xx来确认哪个接口是小度Wi-Fi。

如果这里没有小度Wi-Fi输出的话,说明驱动还是有问题,但是我也不知道该从哪里去查了。

5. 配置小度Wi-Fi

到此为止,我们基本就可以定位小度Wi-Fi的驱动问题了。下一步就是配置来启用小度Wi-Fi。

5.1 启用wlan0

这里我们需要根据ip addr的输出来确认是wlanX。编辑/etc/network/interfaces文件,增加如下内容:

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp

重启系统或者使用sudo /etc/init.d/networking restart来重启网络。

这时使用sudo ifconfig应该可以看到wlan0了。

5.2 连接无线网络

编辑/etc/wpa_supplicant/wpa_supplicant.conf文件增加如下内容:

ctrl_interface=/var/run/wpa_supplicant
network={
    ssid="XXXXXX"
    psk="YYYYYY"
}

其中是XXXXXX你要连的无线网络名称,YYYYYY是网络的密码。

然后执行如下命令来连接网络:

sudo wpa_supplicant -B -iwlan0 /etc/wpa_supplicant/wpa_supplicant.conf 

此时,应该还是没有网络,需要使用如下命令来开关一下wlan0

sudo ifdown wlan0 # 关闭wlan0
sudo ifup wlan0   # 启用wlan0
sudo ifconfig     # 应该可以看到wlan0已经获取IP了

5.3 开机连接Wi-Fi

如果想要开机时自动连接Wi-Fi,需要编辑/etc/network/interfaces文件,在5.1中增加的内容之后加入如下内容:

pre-up /sbin/wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf  
post-down killall -q wpa_supplicant

至此,小度Wi-Fi就完全配置完成了。

最后啰嗦两句,从树莓派2代开始,就一直想要用上小度Wi-Fi,但一直以来都是以失败告终,几乎无从查找原因。这次又有时间折腾,先是编译了M1的内核,接着又自己编译了mt7601的驱动,其中经历又颇为曲折,但是总算是理清了大致的脉络,然后发现M1是默认支持小度的,但是却没有详细的设置教程,而且debian桌面上的wicd也是无法识别,所以又各种搜索,总算是驱动起来了,心中甚是畅快。但回顾起来又不免感慨,正所谓授人以鱼不如授人以渔,能搜的帖子大多都是“鱼”,单单是4中讲到的确认接口的问题估计就会让好多人无法设置成功,因为很可能是wlan1而不是wlan0。虽然本文远未到“授人以渔”的程度,但多少提供了一些命令来排查各个环节,尽管是以M1为基础环境,但在树莓派、香蕉派等上仍适用。希望各位能用好自己手中的小度Wi-Fi、米Wi-Fi和360Wi-Fi等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容

  • 姓名:杨谊 学号:16130120200 【嵌牛导读】: Wi-Fi 对移动计算的使用产生了巨大的影响,使员工可...
    luckyoungo_o阅读 250评论 0 0
  • 姓名:杨谊 学号:16130120200 【嵌牛导读】: Wi-Fi 对移动计算的使用产生了巨大的影响,使员工可...
    luckyoungo_o阅读 303评论 2 1
  • 小A拿起手机,翻开微信里的联系人,手指不停地往下划,最后,僵住了一会,又默默地按了Home键。这个动作做得很熟练,...
    飞天小小猫阅读 173评论 0 1
  • 一个人的时候 或许会难过 别忘了安慰下自己 再怎么难过 明天依旧要继续走下去 一个人的时候 或许会寂寞 别忘了抱抱...
    应荣阅读 197评论 0 1
  • 最近因为杂事众多,想去法门寺的计划一直搁浅。直到周日晚上,带上孩子们去法门寺,终于实现我的心愿。 夏天的夜晚,天色...
    自由在路上阅读 866评论 5 9