2015-09-21 12 views
9

Ich versuche, Überwachungsmodus für einen USB-WiFi-Dongle mit dem RTL8188CUS-Chipsatz auf einem Raspberry Pi-Modell b + (oder Raspberry PI für die Angelegenheit) zu aktivieren.Aktivieren Sie den Überwachungsmodus für RTL8188CUS über USB auf Raspbian

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

Nach github/raspberrypi/linux/issues/369, müssen Sie den rtlwifi/rtl8192cu Kernel-Modul ermöglichen, die mit dem Kernel-Distribution enthalten ist, aber nicht kompiliert. Dies erfordert geringfügige Änderungen an einigen Dateien, wie unten in 'SCHRITT 2' beschrieben.

Das in diesem Thread erwähnte USB-Problem wurde ab 4.1.6+ behoben, daher sollte der rtlwifi-Treiber funktionieren.

Schritte auf einem frischen Himbeere pi (Modell B +) ...

STEP 0 neu zu erstellen: Update bestehende Module und Kernel auf dem neuesten

$ 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 

SCHRITT 1: raspbian Kernel Get Quelle und fügen Sie fehlende Abhängigkeiten

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

Schritt 2: Aktivieren Sie die rtlwifi (Kernel) Treiber für 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/ 

SCHRITT 3: Kompilieren und Kernel installieren (dauerte viele Stunden)

von kernel building documentation zusammengefasst.

$ 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 

SCHRITT 4: Reboot

$ sudo reboot 

Schritt 5: Überprüfen Sie, ob das rtlwifi/rtl8192cu Modul

$ 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 

STEP 6 geladen wird: Versuchen Überwachungsmodus zu aktivieren

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

Was habe ich vermisst?
Ausgabe 369 scheint anzuzeigen, dass es mit dem Rtlwifi-Treiber funktionieren kann?

+1

Diese Frage ist vielleicht besser geeignet für [Super User] (http://superuser.com/about) oder [Serverfehler] (http://serverfault.com/about) StackExchanges, da es nicht direkt mit der Programmierung zusammenhängt. –

+0

Eine kleine Sache, die ich vergessen habe zu berücksichtigen, als ich das versuchte: Auf dem RaspPi 2 ist Schritt 3 anders (wie in der oben verlinkten Build-Dokumentation beschrieben). – luckyrumo

Antwort

9

Stellt fest, dass die Schritte zum erneuten Kompilieren und Laden des Moduls rtlwifi korrekt sind. Das Problem ist, dass iwconfig nicht funktioniert, um den Überwachungsmodus in dieser Situation zu aktivieren/zu bestimmen.

Stattdessen habe ich iw as outlined by Steven Gordon - Capturing WiFi in Monitor mode with iw verwendet und es hat funktioniert.

Fassen wir zusammen:

STEP 6b: Liste der physikalischen Netzwerkschnittstellen verfügbar

$ iw dev 

STEP 7: Bestimmen Sie, ob die physikalische Schnittstelle

Überwachungsmodus unterstützt
$ 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 ... 

SCHRITT 8: Fügen Sie eine Überwachungsinte hinzu Rface zu dieser physischen Karte

Sie müssen explizit eine "Überwachungs" -Schnittstelle für die Hardware hinzufügen, die Sie haben.

$ sudo iw phy phy0 interface add mon0 type monitor 

SCHRITT 8: Start

In meinem Fall Überwachung, ich tshark bin mit der Überwachung zu erleichtern, ein paar nützlichen Felder, anstatt eine Menge Lärm anzeigt.

$ 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 

Erledigt.

+0

groß, hat das erste Mal funktioniert – sttaq