Linux: wifi 关联时“wilist wlan0 扫描”不起作用

创建于 2015-04-04  ·  9评论  ·  资料来源: raspberrypi/linux

你好,

直到版本 3.12.36+ #737(1 月 14 日)(https://github.com/Hexxeh/rpi-firmware/commits/master?page=2)我可以关联我的 WiFi 并运行“iwlist wlan0 扫描”并获取检测到的接入点列表。

但是,在连接 WiFi 并运行命令“sudo iwlist wlan0 scan”的那个版本之后,我得到

“wlan0 接口不支持扫描:设备或资源忙”

不确定是什么问题,但我怀疑 WiFi 驱动程序发生了一些变化。

我的 WiFi 加密狗是华硕 N53。

我发现这个https://wikidevi.com/wiki/ASUS_USB-N53说使用的驱动程序是 rt2800usb。 从我看到的驱动程序安装在我的 RPi 中。 而且,它再次让我感到困惑,因为它曾经工作得很好,但在我拥有的特定卡的版本 3.12.36+ #737(1 月 14 日)之后,当 WiFi 关联时扫描不起作用。 我所做的只是使用 apt-get 将我的 RPi 更新到最新版本。

当我使用其他 WiFi 加密狗(使用其他驱动程序)时,扫描命令工作得很好。 看起来问题出在特定的驱动程序上。

[email protected] :~:$ lsusb
总线 001 设备 002:ID 0424:9514 Standard Microsystems Corp.
总线 001 设备 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器
总线 001 设备 003:ID 0424:ec00 标准微系统公司
总线 001 设备 004:ID 04ca:004b Lite-On Technology Corp.
总线 001 设备 005:ID 0b05:179d ASUSTek Computer, Inc. USB-N53 802.11abgn 网络适配器 [Ralink RT3572]

最有用的评论

MrEngman 看起来这是一个时间问题。 这就是我所做的。

我从这里下载了无线工具 v30 的源代码: https ://code.google.com/p/rtl8192cu/source/browse/wireless_tools/wireless_tools.30.rtl.tar.gz?r=bdd3a2265bdd6a92f24cef3d52fa594b2844c9c1&spec=svnd65922d040ce25481b2a1274

如果您将其解压缩,您将在 wireless_tools/wireles_tools.30.rtl/ 下找到文件 iwlist.c。 编辑并更改

int超时= 15000000;

int超时= 30000000;

使用 make 编译并尝试在无线接口关联时运行扫描。 这次你会看到结果。

所有9条评论

您显示的命令lsusb的输出令人困惑,因为它不适用于华硕 N53,是吗?

你是对的,Engman 先生。 我纠正了它。 我不知道我也会在这里找到你! 我最初在https://github.com/Hexxeh/rpi-firmware/上发布了这个问题,我被告知这是放置它的最佳位置。

好吧,如果您有更新,请告诉我。

刚给自己买了一个华硕 N53 并连接到我的 Pi B2 上,它马上就出现了,但是扫描命令有一个奇怪的地方。 如果我使用命令iwlist wlan0 scan它会显示扫描结果。 如果我使用命令sudo iwlist wlan0 scan我得到一个错误wlan0 Failed to read scan data : Resource temporarily unavailable 。 但我相当肯定它会进行扫描,因为如果我再次使用命令iwlist wlan0 scan它会显示扫描结果,但它们与使用该命令的先前显示不同。 然后重复该命令,结果永远不会改变。

使用命令iwlist wlan0 scan它显示存储在 SD 卡上某处的结果,不知道上次扫描的时间。 如果我重复该命令,结果保持不变。 如果我然后使用命令sudo iwlist wlan0 scan它会返回我上面所说的错误但是如果我然后使用命令iwlist wlan0 scan它会显示结果,至少对我来说它们与以前的结果不同显示。 重复iwlist wlan0 scan并列出扫描结果,无论我重复多少次命令,它们都不会改变。 再次运行sudo iwlist wlan0 scan会返回错误,但随后再次使用命令iwlist wlan0 scan会显示扫描结果,但现在与之前的显示不同。 但是再次重复该命令并且结果不会改变,直到我再次使用sudo运行该命令

对我来说,似乎sudo iwlist wlan0 scan进行了扫描,但由于某种原因不会显示它们,但它们存储在 SD 卡的某个位置。 命令iwlist wlan0 scan然后显示存储的结果,重复该命令将始终返回相同的结果。 然后使用 sudo 运行命令将再次扫描并存储数据但给出错误。 然后再次使用iwlist wlan0 scan现在将显示使用sudo扫描的新数据。

为什么使用sudo iwlist wlan0 scan会返回我不知道的错误。 可能是驱动的问题,我不确定。 如果我使用不同的 wifi 适配器,那么命令sudo iwlist wlan0 scan可以正常工作并显示扫描结果。

我明白你在说什么。 我假设您描述的行为是在 WiFi 关联时。

就我而言,当 WiFi 未关联时,“sudo iwlist wlan0 scan”工作正常并且不返回错误。

在内核 3.12.36+ #737 的 RPi 上尝试这个会很有趣(我猜这不可能是 RPi 2)。 在我的情况下,“sudo iwlist wlan0 scan”在关联时返回结果很好。

我不知道是否有办法使用 3.12.36+ #737 运行内核 RPi 2。 这可以做到吗?

感谢您查看这个。

您将无法在 Pi B2 上运行 3.12.36+。

是的,当我尝试扫描时,wifi 已关联。 我想知道这是否是某种时间问题,因为我有一个 wifi 模块 Edimax EW-7811UTC,它在较旧的 Pi 上运行良好,但在 Pi B2 上它会导致内核崩溃。 因此,Pi B2 可能存在一些问题。

我发现这篇关于驱动程序更改的帖子,我想知道它是否适用于这种情况:

http://stackoverflow.com/questions/18277465/why-does-iwlist-scan-return-cached-results-almost-every-time

MrEngman 看起来这是一个时间问题。 这就是我所做的。

我从这里下载了无线工具 v30 的源代码: https ://code.google.com/p/rtl8192cu/source/browse/wireless_tools/wireless_tools.30.rtl.tar.gz?r=bdd3a2265bdd6a92f24cef3d52fa594b2844c9c1&spec=svnd65922d040ce25481b2a1274

如果您将其解压缩,您将在 wireless_tools/wireles_tools.30.rtl/ 下找到文件 iwlist.c。 编辑并更改

int超时= 15000000;

int超时= 30000000;

使用 make 编译并尝试在无线接口关联时运行扫描。 这次你会看到结果。

@pvouzis你的问题解决了吗? 如果是,那么请关闭这个问题。

由于缺乏活动而关闭。 如果您认为此问题仍然相关,请重新打开。

此页面是否有帮助?
0 / 5 - 0 等级