it-swarm.com.de

Aktivieren Sie den Überwachungsmodus für RTL8188CUS über USB an Raspbian

Ich versuche den Überwachungsmodus für einen USB-WLAN-Dongle mit dem RTL8188CUS-Chipsatz auf einem Raspberry Pi-Modell b + (oder einem anderen Raspberry Pi) zu aktivieren.

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

Gemäß github/raspberrypi/linux/issues/369 müssen Sie das Kernelmodul rtlwifi/rtl8192cu aktivieren, das in der Kernel-Distribution enthalten ist, aber nicht kompiliert ist. Dies erfordert geringfügige Änderungen an einigen Dateien, wie unten in 'SCHRITT 2' beschrieben. 

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

Schritte zum Wiederherstellen auf einem frischen Raspberry Pi (Modell B +) ...

SCHRITT 0: Aktualisieren Sie vorhandene Module und den Kernel auf den neuesten Stand.

$ 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: Hole die Raspbian-Kernel-Quelle und füge fehlende Abhängigkeiten hinzu

$ 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: Kompiliere und installiere den Kernel (es dauerte viele Stunden)

Zusammengefasst aus Kernel Building Dokumentation .

$ 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: Neustart

$ Sudo reboot

SCHRITT 5: Prüfen Sie, ob das Modul rtlwifi/rtl8192cu geladen ist

$ 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

SCHRITT 6: Versuchen Sie, den Ü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 verpasst?
Ausgabe 369 scheint darauf hinzuweisen, dass sie mit dem rtlwifi-Treiber zusammenarbeiten kann?

10
Matt M

Stellt sich heraus, dass die Schritte zum Neukompilieren und Laden des RTLWII-Moduls korrekt sind. Das Problem ist, dass iwconfig den Überwachungsmodus in dieser Situation nicht aktiviert/festgelegt hat.

Stattdessen habe ich iw, wie von Steven Gordon skizziert, verwendet - WiFi im Monitor-Modus mit iw aufnehmen und es hat funktioniert. 

Zusammenfassen:

STEP 6b: Auflisten der verfügbaren physikalischen Netzwerkschnittstellen

$ iw dev

SCHRITT 7: Ermitteln Sie, ob die physische Schnittstelle den Ü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üge eine Überwachungsschnittstelle zu dieser physischen Karte hinzu

Sie müssen für Ihre vorhandene Hardware explizit eine Überwachungsschnittstelle hinzufügen.

$ Sudo iw phy phy0 interface add mon0 type monitor

SCHRITT 8: Überwachung starten

In meinem Fall verwende ich tshark, um die Überwachung zu erleichtern, und zeigt einige nützliche Felder anstelle von viel Lärm an.

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

10
Matt M

Für jeden, der noch interessiert ist, wird der rtl8192cu standardmäßig in den Himbeer-Kernel kompiliert. Sie kann durch Auskommentieren der Blacklist in /etc/modprobe.d/blacklist-rtl8192cu.conf aktiviert werden. Durch Ausführen von Sudo iwconfig wlan0 mode monitor nach einem Neustart wird der Überwachungsmodus ohne weitere Probleme aktiviert.

0
Julius Naeumann