无法使用 iw 和 kismet 在 Linux 3.6.11 上更改 wifi 通道(设备繁忙错误)

Pav*_*vel 4 linux usb wireless-networking

我正在处理我的树莓派上的 wifi 的一个奇怪问题(我不确定这是否有影响)。我用 3 种不同的 USB WiFi 设备尝试过。如果我使用 wpa_supplicant 连接到 AP,那么所有这些都可以正常工作。当我启动 kismet (2011-03-R2) 时出现问题 - 我收到以下错误消息:

mac80211_setchannel() could not set channel 1/2412 on interface 'te0mon' err -25
Run Code Online (Sandbox Code Playgroud)

原来的wifi接口名称是te0,它是在udev中配置的,我只需要区分我所有的wifi设备。iw 命令也有同样的问题:

iw te0 set channel 1
Run Code Online (Sandbox Code Playgroud)

返回:

command failed: Device or resource busy (-16)
Run Code Online (Sandbox Code Playgroud)

该设备已关闭,没有被任何其他进程使用(据我所知)。这些麻烦是在从 3.2.something 升级到内核 3.6.11 后开始的(我不太记得了)。我无法降级它,因为其他问题已经解决了。我什至尝试下载 iw 版本 3.8(最新)和兼容性驱动程序 3.9,但仍然一样。

你知道什么可能是错的吗?如何调试这个(查找,为什么设备繁忙)?

谢谢你的帮助。

Pav*_*vel 5

感谢 BatchyX 我有一个解决方案:

  • 创建次要设备 iw dev te0 interface add te0mon type monitor
  • 删除托管 te0 iw dev te0 del
  • 配置 kismet 以使用 te0mon ncsource=te0mon:type=mac80211,name=te0mon