Увімкніть режим моніторингу RTL8188CUS через USB на Raspbian


15

Я намагаюсь увімкнути режим моніторингу для USB wifi dongle з чіпсетом RTL8188CUS на малиновому пі-моделі b + (або будь-яким малиновим пі для цього).

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

Відповідно до github / raspberrypi / linux / issues / 369 , вам потрібно включити модуль ядра rtlwifi / rtl8192cu, який включений до розподілу ядра, але не компілюється. Для цього потрібні незначні зміни деяких файлів, як зазначено нижче у розділі "КРОК 2".

Проблема USB, згадана в цій темі, вирішена станом на 4.1.6+, тому драйвер rtlwifi повинен працювати.

Кроки для відтворення на свіжому малиновому пі (модель B +) ...

КРОК 0: Оновіть наявні модулі та ядро ​​до останнього

$ 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

КРОК 1: Отримайте джерело ядра raspbian і додайте пропущені залежності

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

КРОК 2: Увімкніть драйвери rtlwifi (ядра) для 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/

КРОК 3: Скомпілюйте та встановіть ядро ​​(зайняло багато годин)

Узагальнено з документації щодо побудови ядра .

$ 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

КРОК 4: Перезавантажте систему

$ sudo reboot

КРОК 5: Перевірте, чи завантажений модуль rtlwifi / rtl8192cu

$ 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

КРОК 6: Спробуйте активувати режим моніторингу

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

Що я пропустив?
Випуск 369, схоже, вказує на те, що він може працювати з драйвером rtlwifi?


Це, сер, було надзвичайно корисним. Я дуже точно стежив за кроками, і це спрацювало як шарм.
Алекс Нікол

При всій належній повазі та бонусних балах за наполегливість, ІМХО це теж досить громіздко. Дивіться тут , ви можете отримати Wi-Fi ключ із чіпсетом, який підтримує режим монітора поза коробкою, на суму менше 5 доларів США, включаючи доставку.
RolfBly

Відповіді:


8

Виявляє правильність кроків для перекомпіляції та завантаження модуля rtlwifi. Проблема полягає в тому, що iwconfig не працює для включення / визначення режиму моніторингу в цій ситуації.

Натомість я використав iw, як його окреслив Стівен Гордон, і це спрацювало.

Узагальнити:

КРОК 6b: Список фізичних мережевих інтерфейсів, доступних

$ iw dev

КРОК 7: Визначте, чи підтримує фізичний інтерфейс режим моніторингу

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

КРОК 8: Додайте інтерфейс моніторингу до цієї фізичної карти

Потрібно чітко додати інтерфейс "моніторингу" для обладнання, яке ви маєте.

$ sudo iw phy phy0 interface add mon0 type monitor

КРОК 8: Почніть моніторинг

У моєму випадку я використовую tshark для полегшення моніторингу, показуючи кілька корисних полів, а не багато шуму.

$ 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

Зроблено.


Ваше посилання розірвано, вам не вистачає останніх декількох символів: sandilands.info/sgordon/capturing-wifi-in-monitor-mode-with-iw (Я намагався редагувати вашу публікацію, але, мабуть, редагувань має бути не менше 6 символів. ..)
Тед Мільчарек

Я не розумію, що робити на кроці №2 // потрібна допомога.
Рей Кодяк

Всередині git repo, який ви клонували в кроці 1 ("каталог Linux") ... Відредагуйте файл "linux / driver / net / wireless / Kconfig", прокоментуйте 2 рядки з rtl8192cu в них, додавши "#" до " початок рядка. Відредагуйте файл "linux / driver / net / wireless / Makefile", прокоментуйте 1 рядок з rtl8192cu, відменте рядок з rtlwifi.
Мет М

0

Чудові інструкції. Дякую. Ще кілька речей, які мені потрібно було зробити ...

  1. Коли я перезавантажив свою малину pi 3 з новим зображенням (4.9.13-v7 +), lsmod зробив список rtl8192cu, хоча каталог rtl8192cu був у /lib/modules/4.9.13-v7+/kernel/drivers/net/wireless/realtek / rtlwifi / rtl8192cu Рішення: мені довелося зробити sudo modprobe rtl8192cu

  2. iwconfig jsut говорить "Немає бездротових розширень" навіть для інтерфейсів, які активно підключені до AP. Я використовую натомість iw. Дивіться інструкції на веб-сторінці http://linuxwireless.org/en/users/Documentation/iw/__v41.html

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.