Включить режим мониторинга RTL8188CUS через USB на Raspbian

Я пытаюсь включить режим мониторинга для USB wifi-ключа с чипсетом RTL8188CUS на модели raspberry pi b+ (или любой raspberry pi, если на то пошло).

$ 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 должен работать.

шаги для воссоздания на свежем raspberry pi (модель 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: Включите драйверы rtlwifi (ядра) для RTL8188CUS (RTL8192)

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: компиляция и установка ядра (заняло много часов)

в итоге от документация по созданию ядра .

$ 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?

2 ответов


оказывается, шаги для перекомпиляции и загрузки модуля rtlwifi верны. Проблема в том, что iwconfig не работает для включения / определения режима мониторинга в этой ситуации.

, Я iw, как описано Стивеном Гордоном-захват WiFi в режиме монитора с iw и это сработало.

подведем итоги:

шаг 6b: список доступных физических сетевых интерфейсов

$ iw dev

Шаг 7: определите, если физический интерфейс поддерживает режим мониторинга

$ iw phy phy0 info
... lots of stuff ...
Supported interface modes:
     * IBSS
     * managed
     * AP
     * AP/VLAN
     * monitor
     * mesh point
     * P2P-client
     * P2P-GO
... lots more stuff ...

Шаг 8: Добавьте интерфейс мониторинга к этой физической карте

вам нужно явно добавить интерфейс "мониторинг" для оборудования, которое у вас есть.

$ sudo iw phy phy0 interface add mon0 type monitor

Шаг 8: начать мониторинг

в моем случае я использую tshark для облегчения мониторинга, отображая несколько полезных полей, а не много шума.

$ sudo apt-get install tshark
$ sudo tshark -i mon0 -f 'broadcast' -T fields -e frame.time_epoch -e wlan.sa -e radiotap.dbm_antsignal -e wlan.fc.type -e wlan.fc.subtype

сделано.


для тех, кто все еще заинтересован,rtl8192cu теперь встроен в ядро малины по умолчанию. Его можно активировать, комментируя черный список в /etc/modprobe.d/blacklist-rtl8192cu.conf. Выполнение sudo iwconfig wlan0 mode monitor после перезагрузки включается режим мониторинга без каких-либо дальнейших проблем.