ubuntu14.04 AR5B22 无线网卡连不上 AP 问题解决
Posted Li-Yongjun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu14.04 AR5B22 无线网卡连不上 AP 问题解决相关的知识,希望对你有一定的参考价值。
前言
最近在尝试理解 PCIe,手上正好有一个 J1900 小主机,和一张拥有 PCIe 通道的 AR5B22 无线网卡。
AR5B22 使用的驱动是 ath9k,ubuntu 自带这个驱动。所以无线网卡插到 J1900 上直接可以使用。
$ lspci
...
05:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network Adapter (rev 01)
...
$ ifconfig wlan0
wlan0 Link encap:以太网 硬件地址 48:d2:24:18:ff:47
inet 地址:192.168.31.49 广播:192.168.31.255 掩码:255.255.255.0
inet6 地址: fe80::4ad2:24ff:fe18:ff47/64 Scope:Link
inet6 地址: 240e:3a1:1838:b050:4ad2:24ff:fe18:ff47/64 Scope:Global
inet6 地址: 240e:3a1:1838:b050:5d2e:dc24:6af6:f841/64 Scope:Global
inet6 地址: 240e:3a1:1838:b050::316/128 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:1786 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:405 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:396702 (396.7 KB) 发送字节:101966 (101.9 KB)
由于要研究 PCIe 界面,免不了重新编译 WiFi 驱动,加一些 log,分析验证等。
但是出问题了,当我卸载掉 ath9k 再重新安装后,WiFi 始终连不上 AP 了。dmesg 打印错误如下
$ dmesg
...
[34359.515584] wlan0: authenticate with 80:ea:07:c9:d6:4b
[34359.529459] wlan0: send auth to 80:ea:07:c9:d6:4b (try 1/3)
[34359.530900] wlan0: authenticated
[34364.541217] wlan0: aborting authentication with 80:ea:07:c9:d6:4b by local choice (Reason: 3=DEAUTH_LEAVING)
auth 之后就不再进行 association 了,显然 WiFi 出了问题。
尝试
怀疑是两次加载驱动,使网卡重复 load 了网卡固件,导致网卡异常。于是想 reset 一下网卡,但是 PCIe 接口并没有 reset 引脚。
硬件 reset
想到 PCIe 设备支持热拔插,遂拧掉固定无线网卡的螺丝,拔掉无线网卡再插上,结果,哦吼,设备重启了!尝试了三次发现均会重启,也不敢再试了,可别把设备烧了。难道我对热拔插有什么误解??
软件 reset
硬件 reset 不成,有没有软件 reset 的方法。经过一番搜索,找到了一个办法
# echo 1 > /sys/class/pci_bus/0000\\:05/device/reset
下发命令后发现并没有任何动作,软复位也宣告失败。
rfkill
又想到了 rfkill 命令
$ rfkill list
1: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
2: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
$ rfkill block 2
$ rfkill unblock 2
还是不行,重连时内核仍然打印
wlan0: aborting authentication with 80:ea:07:c9:d6:4b by local choice (Reason: 3=DEAUTH_LEAVING)
连接不加密AP
网上还搜到了一个办法,说是连不上 wpa 加密方式的 AP,能够连上不加密的 AP。于是又翻箱倒柜的找来了一台路由器,开启一个不加密的 AP(iphone 和 win10 制造的热点必须启用加密)。控制WiFi重连,依旧失败!😂😂
解决
最后,想到 WiFi 作为 station 去连接 AP 的功能是 wpa_supplicant
守护进程实现的,会不会是在卸载并安装驱动后,该进程异常了。那就先杀掉重启该进程试一下。
kill 完刚想重启,发现 WiFi 已经开始重连了,应该是系统自动又启动了 wpa_supplicant 进程,ps 查看下过不其然,wpa_supplicant 已经启动了。也就在这时,突然发现,WiFi 连接成功了!
原来是 wpa_supplicant 进程的问题。
解决,撒花!🎉🎉🎉
以上是关于ubuntu14.04 AR5B22 无线网卡连不上 AP 问题解决的主要内容,如果未能解决你的问题,请参考以下文章