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

15

Ich versuche, den Überwachungsmodus für einen USB-WLAN-Dongle mit dem RTL8188CUS-Chipsatz auf einem Himbeer-Pi-Modell b + (oder einem beliebigen Himbeer-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 Kernel-Modul rtlwifi / rtl8192cu aktivieren, das in der Kernel-Distribution enthalten, aber nicht kompiliert ist. Dies erfordert geringfügige Änderungen an einigen Dateien, wie nachstehend in 'SCHRITT 2' beschrieben.

Das in diesem Thread erwähnte USB-Problem wurde ab Version 4.1.6 behoben, sodass der RTLWIFI-Treiber funktionieren sollte.

Schritte, um auf einem frischen Himbeer-Pi (Modell B +) neu zu erstellen ...

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: Holen Sie sich die Raspbian-Kernelquelle und fügen Sie 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"

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

SCHRITT 3: Kompilieren und Installieren des Kernels (hat viele Stunden gedauert)

Zusammengefasst aus der Dokumentation des Kernel- Builds .

$ 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: Überprüfen Sie, ob das rtlwifi / rtl8192cu-Modul 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: 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

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?
Problem 369 scheint darauf hinzudeuten, dass es mit dem rtlwifi-Treiber funktionieren kann?

Matt M
quelle
Dies, Sir, war äußerst hilfreich. Ich habe die Schritte ziemlich genau befolgt und es hat wie ein Zauber funktioniert.
Alex Nichol
Bei allem Respekt und Bonuspunkten für Ausdauer ist dies meiner Meinung nach auch ziemlich umständlich. Sehen Sie hier , Sie können einen WLAN-Dongle mit einem Chipsatz, der den Monitor-Modus unterstützt, ab Werk für unter 5 USD inkl. Versand erwerben.
RolfBly

Antworten:

8

Es hat sich herausgestellt, dass die Schritte zum erneuten Kompilieren und Laden des rtlwifi-Moduls korrekt sind. Das Problem ist, dass iwconfig den Überwachungsmodus in dieser Situation nicht aktiviert / bestimmt.

Stattdessen habe ich iw wie von Steven Gordon beschrieben verwendet und es hat funktioniert.

Zusammenfassen:

SCHRITT 6b: Liste der verfügbaren physischen Netzwerkschnittstellen auf

$ iw dev

SCHRITT 7: Stellen Sie fest, 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ügen Sie dieser physischen Karte eine Überwachungsschnittstelle hinzu

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

$ sudo iw phy phy0 interface add mon0 type monitor

SCHRITT 8: Starten Sie die Überwachung

In meinem Fall verwende ich tshark, um die Überwachung zu vereinfachen, und zeige ein paar nützliche Felder anstatt viel Rauschen 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.

Matt M
quelle
Ihr Link ist kaputt, Ihnen fehlen die letzten Zeichen: sandilands.info/sgordon/capturing-wifi-in-monitor-mode-with-iw (Ich habe versucht, Ihren Beitrag zu bearbeiten, aber anscheinend müssen die Änderungen mindestens 6 Zeichen umfassen. ..)
Ted Mielczarek
Ich verstehe nicht, was in Schritt 2 zu tun ist // brauche Hilfe.
Ray Kodiak
In dem Git Repo, das Sie in Schritt 1 geklont haben ('linux' Verzeichnis) ... Bearbeiten Sie die Datei 'linux / drivers / net / wireless / Kconfig' und kommentieren Sie die 2 Zeilen mit rtl8192cu aus, indem Sie ein '#' zum Beginn der Zeile. Bearbeiten Sie die Datei 'linux / drivers / net / wireless / Makefile', kommentieren Sie die Zeile 1 mit rtl8192cu aus und kommentieren Sie die Zeile mit rtlwifi aus.
Matt M
0

Tolle Anweisungen. Vielen Dank. Noch ein paar Dinge, die ich tun musste ...

  1. Als ich mein Himbeer-Pi 3 mit dem neuen Image (4.9.13-v7 +) neu startete, listete lsmod das rtl8192cu auf, obwohl sich das rtl8192cu-Verzeichnis in /lib/modules/4.9.13-v7+/kernel/drivers/net/wireless/realtek befand / rtlwifi / rtl8192cu Lösung: Ich musste eine sudo modprobe rtl8192cu durchführen

  2. iwconfig jsut sagt "Keine drahtlosen Erweiterungen", auch für die Schnittstellen, die aktiv mit einem AP verbunden sind. Ich benutze stattdessen iw. Anweisungen finden Sie unter http://linuxwireless.org/en/users/Documentation/iw/__v41.html

user63497
quelle