เปิดใช้งานโหมดการตรวจสอบสำหรับ RTL8188CUS ผ่าน USB บน Raspbian


15

ฉันกำลังพยายามเปิดใช้งานโหมดการตรวจสอบสำหรับดองเกิล USB WiFi ด้วยชิปเซ็ต RTL8188CUS ในรุ่น raspberry pi b + (หรือราสเบอร์รี่ pi ใด ๆ สำหรับเรื่องนั้น)

$ 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 / problems / 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 ได้หรือไม่?


ท่านนี้มีประโยชน์อย่างยิ่ง ฉันทำตามขั้นตอนค่อนข้างแน่นอนและมันก็ใช้งานได้เหมือนมีเสน่ห์
Alex Nichol

ด้วยความเคารพและคะแนนโบนัสทั้งหมดสำหรับความเพียร IMHO สิ่งนี้ค่อนข้างยุ่งยาก ดูที่นี่คุณจะได้รับ wifi dongle พร้อมชิปเซ็ตที่รองรับโหมดจอภาพนอกกรอบราคาต่ำกว่า 5 USD รวมค่าจัดส่ง
RolfBly

คำตอบ:


8

เปลี่ยนขั้นตอนในการคอมไพล์ใหม่และโหลดโมดูล rtlwifi ให้ถูกต้อง ปัญหาคือ iwconfig ไม่ทำงานเพื่อเปิดใช้งาน / กำหนดโหมดการตรวจสอบในสถานการณ์นี้

ฉันใช้iw ตามที่อธิบายไว้โดย Steven Gordonแต่ใช้งานได้

เพื่อสรุป:

ขั้นตอน 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 ตัวอักษร .. )
Ted Mielczarek

ฉันไม่เข้าใจว่าต้องทำอะไรในขั้นตอนที่ # 2 // ต้องการความช่วยเหลือ
เรย์ Kodiak

ภายใน git repo ที่คุณโคลนในขั้นตอนที่ 1 (ไดเรกทอรี 'linux') ... แก้ไขไฟล์ 'linux / drivers / net / wireless / Kconfig', คอมเม้นท์ 2 บรรทัดด้วย rtl8192cu โดยเพิ่ม '#' ลงใน จุดเริ่มต้นของบรรทัด แก้ไขไฟล์ 'linux / drivers / net / wireless / Makefile' ใส่เครื่องหมาย 1 บรรทัดด้วย rtl8192cu โดยไม่ใส่เครื่องหมายคอมเม้นท์ด้วย rtlwifi
Matt M

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.