Abilita la modalità di monitoraggio per RTL8188CUS tramite USB su Raspbian


15

Sto cercando di abilitare la modalità di monitoraggio per un dongle wifi USB con il chipset RTL8188CUS su un modello raspberry pi b + (o qualsiasi raspberry pi per quella 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.

Secondo github / raspberrypi / linux / issues / 369 , è necessario abilitare il modulo kernel rtlwifi / rtl8192cu incluso nella distribuzione del kernel ma non compilato. Ciò richiede modifiche minori ad alcuni file come descritto di seguito in "PASSAGGIO 2".

Il problema USB menzionato in quel thread è stato risolto dalla 4.1.6+, quindi il driver rtlwifi dovrebbe funzionare.

Passaggi da ricreare su un lampone fresco pi (modello B +) ...

PASSAGGIO 0: aggiorna i moduli e il kernel esistenti alla versione più recente

$ 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

PASSAGGIO 1: ottenere il sorgente del kernel raspbian e aggiungere dipendenze mancanti

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

PASSAGGIO 2: abilitare i driver rtlwifi (kernel) per 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"

edit linux/drivers/net/wireless/Makefile
-#obj-$(CONFIG_RTLWIFI)         += rtlwifi/
+obj-$(CONFIG_RTLWIFI)          += rtlwifi/

PASSAGGIO 3: compilare e installare il kernel (ci sono volute molte ore)

Riassunto dalla documentazione di compilazione del kernel .

$ 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

PASSAGGIO 4: riavvio

$ sudo reboot

PASSAGGIO 5: verificare che il modulo rtlwifi / rtl8192cu sia caricato

$ 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

PASSAGGIO 6: provare ad attivare la modalità di monitoraggio

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

Cosa mi sono perso?
Il numero 369 sembra indicare che può funzionare con il driver rtlwifi?


Questo, signore, è stato estremamente utile. Ho seguito i passaggi praticamente esattamente, e ha funzionato come un fascino.
Alex Nichol,

Con tutto il dovuto rispetto e punti bonus per la perseveranza, IMHO è anche piuttosto ingombrante. Vedi qui , puoi ottenere un dongle wifi con un chipset che supporta la modalità monitor out of the box, per meno di 5 USD inclusa la spedizione.
RolfBly,

Risposte:


8

Risulta che i passaggi per ricompilare e caricare il modulo rtlwifi sono corretti. Il problema è che iwconfig non funziona per abilitare / determinare la modalità di monitoraggio in questa situazione.

Invece, ho usato iw come indicato da Steven Gordon e ha funzionato.

Riassumere:

PASSAGGIO 6b: elencare le interfacce di rete fisiche disponibili

$ iw dev

PASSAGGIO 7: determinare se l'interfaccia fisica supporta la modalità di monitoraggio

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

PASSAGGIO 8: aggiungere un'interfaccia di monitoraggio a quella scheda fisica

Devi aggiungere esplicitamente un'interfaccia di "monitoraggio" per l'hardware che hai.

$ sudo iw phy phy0 interface add mon0 type monitor

PASSAGGIO 8: avviare il monitoraggio

Nel mio caso, sto usando Tshark per facilitare il monitoraggio, visualizzando alcuni campi utili piuttosto che molto rumore.

$ 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

Fatto.


Il tuo collegamento è interrotto, mancano gli ultimi caratteri: sandilands.info/sgordon/capturing-wifi-in-monitor-mode-with-iw (Ho provato a modificare il tuo post ma a quanto pare le modifiche devono contenere almeno 6 caratteri. ..)
Ted Mielczarek,

Non capisco cosa fare al passaggio n. 2 // ho bisogno di aiuto.
Ray Kodiak,

All'interno del repository git che hai clonato nel passaggio 1 (directory 'linux') ... Modifica il file 'linux / drivers / net / wireless / Kconfig', commenta le 2 righe con rtl8192cu aggiungendo un '#' al inizio della riga. Modifica il file 'linux / drivers / net / wireless / Makefile', commenta la riga 1 con rtl8192cu, togli il commento alla riga con rtlwifi.
Matt M,

0

Ottime istruzioni. Grazie. Un paio di altre cose che dovevo fare ...

  1. Quando ho riavviato il mio raspberry pi 3 con la nuova immagine (4.9.13-v7 +), lsmod ha elencato la directory rtl8192cu sebbene la directory rtl8192cu fosse in /lib/modules/4.9.13-v7+/kernel/drivers/net/wireless/realtek / rtlwifi / rtl8192cu Soluzione: ho dovuto fare un sudo modprobe rtl8192cu

  2. iwconfig jsut dice "Nessuna estensione wireless" anche per le interfacce che sono attivamente connesse a un AP. Sto usando invece iw. Vedi le istruzioni in http://linuxwireless.org/en/users/Documentation/iw/__v41.html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.