Aktifkan mode pemantauan untuk RTL8188CUS via USB pada Raspbian

15

Saya mencoba untuk mengaktifkan mode pemantauan untuk dongle wifi USB dengan chipset RTL8188CUS pada model raspberry pi b + (atau raspberry pi dalam hal ini).

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

Menurut github / raspberrypi / linux / issues / 369 , Anda perlu mengaktifkan modul kernel rtlwifi / rtl8192cu yang disertakan dengan distribusi kernel tetapi tidak dikompilasi. Ini memerlukan modifikasi kecil pada beberapa file seperti berbeda di bawah ini dalam 'LANGKAH 2'.

Masalah USB yang disebutkan di utas tersebut telah diatasi pada 4.1.6+, sehingga driver rtlwifi harus berfungsi.

Langkah-langkah untuk membuat ulang pada pi raspberry segar (model B +) ...

LANGKAH 0: Perbarui modul dan kernel yang ada ke terbaru

$ 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

LANGKAH 1: Dapatkan sumber kernel raspbian dan tambahkan dependensi yang hilang

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

LANGKAH 2: Aktifkan driver rtlwifi (kernel) untuk 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/

LANGKAH 3: Kompilasi dan instal kernel (butuh berjam-jam)

Dirangkum dari dokumentasi kernel building .

$ 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

LANGKAH 4: Nyalakan kembali

$ sudo reboot

LANGKAH 5: Periksa apakah modul rtlwifi / rtl8192cu dimuat

$ 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

LANGKAH 6: Cobalah untuk mengaktifkan mode pemantauan

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

Apa yang saya lewatkan?
Masalah 369 tampaknya mengindikasikan bahwa ia dapat bekerja dengan driver rtlwifi?

Matt M
sumber
Ini, tuan, sangat membantu. Saya mengikuti langkah-langkah itu dengan sangat tepat, dan itu berhasil seperti pesona.
Alex Nichol
Dengan segala hormat dan poin bonus untuk ketekunan, IMHO ini juga agak rumit. Lihat di sini , Anda bisa mendapatkan dongle wifi dengan chipset yang mendukung mode monitor di luar kotak, untuk di bawah 5 USD termasuk pengiriman.
RolfBly

Jawaban:

8

Ternyata langkah-langkah untuk mengkompilasi ulang dan memuat modul rtlwifi sudah benar. Masalahnya adalah iwconfig tidak berfungsi untuk mengaktifkan / menentukan mode pemantauan dalam situasi ini.

Sebaliknya, saya menggunakan iw seperti yang diuraikan oleh Steven Gordon dan itu berhasil.

Untuk meringkas:

LANGKAH 6b: Daftar antarmuka jaringan fisik yang tersedia

$ iw dev

LANGKAH 7: Tentukan apakah antarmuka fisik mendukung mode pemantauan

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

LANGKAH 8: Tambahkan antarmuka pemantauan ke kartu fisik itu

Anda perlu menambahkan antarmuka 'pemantauan' secara eksplisit untuk perangkat keras yang Anda miliki.

$ sudo iw phy phy0 interface add mon0 type monitor

LANGKAH 8: Mulai pemantauan

Dalam kasus saya, saya menggunakan tshark untuk memfasilitasi pemantauan, menampilkan beberapa bidang yang bermanfaat daripada banyak suara.

$ 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

Selesai

Matt M
sumber
Tautan Anda rusak, Anda kehilangan beberapa karakter terakhir: sandilands.info/sgordon/capturing-wifi-in-monitor-mode-with-iw (saya mencoba mengedit posting Anda, tetapi tampaknya pengeditan setidaknya harus 6 karakter. ..)
Ted Mielczarek
Saya tidak mengerti apa yang harus dilakukan di Langkah # 2 // butuh bantuan.
Ray Kodiak
Di dalam git repo yang Anda kloning pada langkah 1 (direktori 'linux') ... Edit file 'linux / drivers / net / wireless / Kconfig', beri komentar pada 2 baris dengan rtl8192cu di dalamnya dengan menambahkan '#' ke dalam mulai dari garis. Edit file 'linux / drivers / net / wireless / Makefile', beri komentar pada 1 baris dengan rtl8192cu, batalkan komentar pada baris dengan rtlwifi.
Matt M
0

Instruksi hebat. Terima kasih. Beberapa hal lagi yang perlu saya lakukan ...

  1. Ketika saya mem-boot ulang raspberry pi 3 saya dengan gambar baru (4.9.13-v7 +), lsmod mendaftar rtl8192cu meskipun direktori rtl8192cu ada di /lib/modules/4.9.13-v7+/kernel/drivers/net/wireless/realtek / rtlwifi / rtl8192cu Solusi: Saya harus melakukan sudo modprobe rtl8192cu

  2. iwconfig hanya mengatakan "Tidak ada ekstensi nirkabel" bahkan untuk antarmuka yang secara aktif terhubung ke AP. Saya menggunakan iw sebagai gantinya. Lihat petunjuk di http://linuxwireless.org/en/users/Documentation/iw/__v41.html

pengguna63497
sumber