Estoy tratando de habilitar el modo de monitoreo para un USB wifi dongle con el RTL8188CUS chipset en una raspberry pi modelo b+ (o cualquier raspberry pi para que la materia).

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

Según github/raspberrypi/linux/temas/369, necesita habilitar el rtlwifi/rtl8192cu módulo del kernel que se incluye con el kernel de distribución, pero no se compila. Esto requiere pequeñas modificaciones en algunos archivos como diff ed a continuación en «PASO 2′.

El USB de los temas mencionados en la que el hilo se ha resuelto como de 4.1.6+, por lo que el rtlwifi conductor debe trabajar.

Pasos para volver a crear en un nuevo raspberry pi (modelo B+)…

PASO 0: Actualización de los módulos existentes y el kernel a la última

$ 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

PASO 1: Obtener el raspbian fuente del kernel y agregar las dependencias que faltan

$ git clone --depth=1 https://github.com/raspberrypi/linux
$ sudo apt-get install bc lshw

PASO 2: Habilitar la rtlwifi (kernel) de los conductores para 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/

PASO 3: Compilar e instalar el kernel (tomó muchas horas)

Resumen de construcción de un kernel a la documentación .

$ 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

PASO 4: Reinicie

$ sudo reboot

PASO 5: Compruebe que el rtlwifi/rtl8192cu módulo es cargado

$ 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: [email protected]: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

PASO 6: Pruebe a activar el modo de monitoreo de

$ sudo iwconfig wlan0 mode monitor
Error for wireless request "Set Mode" (8B06) :
    SET failed on device wlan0 ; Operation not supported.

¿Qué se me olvida?
Tema 369 parece indicar que se puede trabajar con el rtlwifi conductor?

Esta pregunta podría ser más apropiado en la Super Usuario o de errores del Servidor StackExchanges cuando no directamente relacionados con la programación.
Un poco de cosa me olvidé de tomar en cuenta cuando he intentado esto: En el RaspPi 2, paso 3 es diferente (como se describe en la generación de la documentación enlazado más arriba).

OriginalEl autor Matt M | 2015-09-21

2 Comentarios

  1. 10

    Vueltas a cabo los pasos para volver a compilar y cargar el rtlwifi módulo son correctos. El problema es iwconfig no funciona para activar/determinar el modo de monitoreo en esta situación.

    Lugar, he utilizado iw, como señala Steven Gordon de la Captura de la WiFi en modo Monitor con iw y funcionó.

    Para resumir:

    PASO 6b: Lista de las interfaces de red físicas disponibles

    $ iw dev
    

    PASO 7: Determinar si la interfaz física soporta el modo de monitoreo de

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

    PASO 8: Agregar una interfaz de monitoreo para que la tarjeta física

    Usted necesita para agregar explícitamente un «monitoreo» de la interfaz para el hardware que tiene.

    $ sudo iw phy phy0 interface add mon0 type monitor
    

    PASO 8: Iniciar la supervisión de

    En mi caso, estoy utilizando tshark para facilitar el seguimiento, mostrando un par de campos útiles en lugar de un montón de ruido.

    $ 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
    

    Hecho.

    gran, funcionado a la primera

    OriginalEl autor Matt M

  2. 0

    Para aquellos que todavía estén interesados, el rtl8192cu ahora está compilado en el de frambuesa kernel por defecto. Puede ser activado por el comentario de la lista negra en /etc/modprobe.d/blacklist-rtl8192cu.conf. La ejecución de sudo iwconfig wlan0 mode monitor después de un reinicio activar el modo de monitoreo sin más problemas.

    OriginalEl autor Julius Naeumann

Dejar respuesta

Please enter your comment!
Please enter your name here