【发布时间】:2015-12-18 15:42:34
【问题描述】:
我正在尝试为带有 RTL8188CUS 芯片组的 USB wifi 加密狗在树莓派 b+(或任何树莓派)上启用监控模式。
$ lsusb
Bus 001 Device 005: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
$ sudo iwconfig wlan0 mode monitor
Error for wireless request "Set Mode" (8B06) :
SET failed on device wlan0 ; Invalid argument.
根据github/raspberrypi/linux/issues/369,您需要启用内核分发中包含但未编译的rtlwifi/rtl8192cu内核模块。这需要对以下“步骤 2”中的一些文件进行细微修改。
该线程中提到的 USB 问题已在 4.1.6+ 中得到解决,因此 rtlwifi 驱动程序应该可以工作。
在新鲜树莓派(型号 B+)上重新创建的步骤...
步骤 0:将现有模块和内核更新到最新版本
$ sudo apt-get update
$ sudo rpi-update
$ uname -a
Linux raspberrypi 4.1.7+ #815 PREEMPT Thu Sep 17 17:59:24 BST 2015 armv6l GNU/Linux
第 1 步:获取 raspbian 内核源并添加缺少的依赖项
$ git clone --depth=1 https://github.com/raspberrypi/linux
$ sudo apt-get install bc lshw
第 2 步:为 RTL8188CUS (RTL8192) 启用 rtlwifi(内核)驱动程序
edit linux/drivers/net/wireless/Kconfig
-#source "drivers/net/wireless/rtlwifi/Kconfig"
-source "drivers/net/wireless/rtl8192cu/Kconfig"
+source "drivers/net/wireless/rtlwifi/Kconfig"
+#source "drivers/net/wireless/rtl8192cu/Kconfig"
(Wheezy) edit linux/drivers/net/wireless/Makefile
-#obj-$(CONFIG_RTLWIFI) += rtlwifi/
+obj-$(CONFIG_RTLWIFI) += rtlwifi/
(Jessie) edit linux/drivers/net/wireless/realtek/Makefile
-#obj-$(CONFIG_RTLWIFI) += rtlwifi/
+obj-$(CONFIG_RTLWIFI) += rtlwifi/
第 3 步:编译和安装内核(耗时数小时)
总结自kernel building documentation。
$ cd linux
$ KERNEL=kernel
$ make bcmrpi_defconfig
$ make zImage modules dtbs
$ sudo make modules_install
$ sudo cp arch/arm/boot/dts/*.dtb /boot/
$ sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
$ sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
$ sudo scripts/mkknlimg arch/arm/boot/zImage /boot/$KERNEL.img
第 4 步:重启
$ sudo reboot
第 5 步:检查 rtlwifi/rtl8192cu 模块是否已加载
$ lsmod | fgrep rtl8192cu
rtl8192cu 100806 0
rtl_usb 14781 1 rtl8192cu
rtl8192c_common 72091 1 rtl8192cu
rtlwifi 101122 3 rtl_usb,rtl8192c_common,rtl8192cu
mac80211 623281 3 rtl_usb,rtlwifi,rtl8192cu
$
$ lshw
*-network:0
description: Ethernet interface
physical id: 1
bus info: usb@1:1.3
logical name: wlan0
serial: 00:0b:81:94:e9:a3
capabilities: ethernet physical
configuration: broadcast=yes driver=rtl8192cu driverversion=4.1.7+ firmware=N/A link=no multicast=yes
第 6 步:尝试激活监控模式
$ sudo iwconfig wlan0 mode monitor
Error for wireless request "Set Mode" (8B06) :
SET failed on device wlan0 ; Operation not supported.
我错过了什么?
问题369似乎表明它可以与rtlwifi驱动一起使用?
【问题讨论】:
-
这个问题可能更适合Super User 或Server Fault StackExchanges,因为它与编程没有直接关系。
-
我在尝试此操作时忘记考虑的一件小事:在 RaspPi 2 上,第 3 步是不同的(如上面链接的构建文档中所述)。
标签: linux linux-kernel raspbian wifi