梦里风林
  • Introduction
  • Android
    • activity
      • Activity四种启动模式
      • Intent Flag
      • 多task的应用
      • Task和回退栈
    • sqlite
      • 【源码】CursorWindow读DB
      • Sqlite在Android上的一个Bug
    • Chromium
    • ListView读取DB数据最佳实践
    • Android Project结构
    • 一个由Proguard与FastJson引起的血案
    • 琐碎的一些tips
  • Computer Vision
    • 特征提取
    • 三维视觉
    • 计算机视觉常用工具
    • 浅谈深度学习数据集设计
    • 随笔
  • Machine Learning
    • 技巧
      • FaceBook: 1 hour training ImageNet
      • L2 Norm与L2 normalize
    • 实践
      • Pytorch实验代码的亿些小细节
    • 工具
      • Tensorflow学习笔记
      • MXNet踩坑手记
      • PyTorch踩坑手记
      • PyTorch模型剪枝
      • Keras踩坑手记
      • mscnn
      • Matlab
        • Matlab Remote IPC自动化数据处理
    • Papers
      • Classification
      • Re-identification
        • CVPR2018:TFusion完全解读
        • ECCV2018:TAUDL
        • CVPR2018:Graph+reid
        • Person Re-identification
        • CVPR2016 Re-id
        • Camera topology and Person Re-id
        • Deep transfer learning Person Re-id
        • Evaluate
      • Object Detection
        • 读论文系列·干货满满的RCNN
        • 读论文系列·SPP-net
        • 读论文系列·Fast RCNN
        • 读论文系列·Faster RCNN
        • 读论文系列·YOLO
        • 读论文系列·SSD
        • 读论文系列·YOLOv2 & YOLOv3
        • 读论文系列·detection其他文章推荐
      • Depth
      • 3D vision
        • 数据集相关
        • 光流相关
      • Hashing
        • CVPR2018: SSAH
      • 大杂烩
        • CNCC2017 琐记
        • ECCV 2016 Hydra CCNN
        • CNCC2017深度学习与跨媒体智能
        • MLA2016笔记
    • 《机器学习》(周志华)读书笔记
      • 西瓜书概念整理
        • 绪论
        • 模型评估与选择
        • 线性模型
        • 决策树
        • 神经网络
        • 支持向量机
        • 贝叶斯分类器
        • 集成学习
        • 聚类
        • 降维与度量学习
        • 特征选择与稀疏学习
        • 计算学习理论
        • 半监督学习
        • 概率图模型
        • 规则学习
        • 强化学习
        • 附录
  • Java
    • java web
      • Servlet部署
      • 琐碎的tips
    • JNI
    • Note
    • Effective Java笔记
  • 后端开发
    • 架构设计
    • 数据库
    • java web
      • Servlet部署
      • 琐碎的tips
    • Spring boot
    • django
    • 分布式
  • Linux && Hardware
    • Ubuntu安装与初始配置
    • 树莓派相关
      • 树莓派3B+无线网卡监听模式
      • TP-LINK TL-WR703N v1.7 openwrt flashing
  • Python
    • django
    • 原生模块
    • 设计模式
    • 可视化
    • 常用库踩坑指南
  • web前端
    • header div固定,content div填充父容器
    • json接口资源
  • UI
  • kit
    • vim
    • git/github
      • 刷爆github小绿点
    • Markdown/gitbook
      • 琐碎知识点
      • gitbook添加disqus作为评论
      • 导出chrome书签为Markdown
      • Markdown here && 微信公众号
    • LaTex
      • LaTex琐记
    • 科学上网
    • 虚拟机
  • thinking-in-program
    • 怎样打日志
  • 我的收藏
  • 琐记
    • 论文心得
    • 深圳买房攻略
  • 赞赏支持
由 GitBook 提供支持
在本页
  • Background
  • Ubuntu 试水
  • 树莓派翻车
  • 峰回路转
  • 总结

这有帮助吗?

  1. Linux && Hardware
  2. 树莓派相关

树莓派3B+无线网卡监听模式

上一页树莓派相关下一页TP-LINK TL-WR703N v1.7 openwrt flashing

最后更新于6年前

这有帮助吗?

It works! RTL8188 monitor mode on Raspberry 3B+

Background

项目里需要在树莓派上运行抓包程序,需要使用无线网卡,进入监听模式,进行抓包;

默认的无线网卡是不支持monitor模式的,支持monitor模式的网卡列表可以在

于是我选了两个RTL8188CUS的USB无线网卡,足够便宜,而且京东上找得到(吐槽:京东上好多无线网卡都不写芯片组型号,还有很多是不支持monitor模式的MTK7610,而且搜索芯片组型号基本搜不到商品,但是京东可以开发票报销啊,而且物流快啊,淘宝药丸,想要买网卡的同学上京东搜RTL8188能搜到网卡的,跟客服确认一下是不是RTL8188CUS就行,吐槽完毕)

Ubuntu 试水

在ubuntu上插入USB接口,ifconfig一下,可以看到多了一个设备wl**,名字太长了,重启一下系统,它会变成wlan0或wlan1(如果有多个无线网卡的话),这样方便操作一点

这里需要注意区分哪个卡是自己插上去的新卡,在终端输入iwconfig,如果wlan1 Nickname是“”,wlan1就是我们新买的RTL8188啦,

pi@raspberrypi:~ $ iwconfig
eth0      no wireless extensions.

wlan1     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated   
          Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

lo        no wireless extensions.

wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=31 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

接着尝试关掉wlan1,让它进入待命状态,再设置监听模式,再启动wlan1

pi@raspberrypi:~ $ sudo ifconfig wlan1 down
pi@raspberrypi:~ $ sudo iwconfig wlan1 mode monitor
pi@raspberrypi:~ $ sudo ifconfig wlan1 up

没有报错,说明这个网卡确实支持monitor模式,也可以再执行iwconfig,可以看到wlan1的Mode从Auto变成了monitor。

树莓派翻车

然而到了raspbian(我试过Ubuntu mate也一样)上,同样执行

pi@raspberrypi:~ $ sudo iwconfig wlan1 mode monitor
Error for wireless request "Set Mode" (8B06) :
    SET failed on device wlan1 ; Invalid argument.

然而!在2017年的现在,我下载了raspbian的内核源码,发现官网已经把rtlwifi的驱动打开了!并且在这种情况下还是不能使用monitor模式!

峰回路转

在这个工程里编译了linux3.6上的rtlwifi,替换到raspbian的驱动里边去

意识到,既然raspbian现在已经编译了rtlwifi和rtl8192两个驱动,那么就应该手动关掉rtl8192的驱动,手动启用rtlwifi的驱动!

  • 首先查看自己的内核版本

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l GNU/Linux
  • 确认是否确实编译了rtlwifi的驱动

pi@raspberrypi:/lib/modules/4.9.41-v7+/kernel/drivers/net/wireless/realtek $ ls
rtl818x  rtl8192cu  rtl8xxxu  rtlwifi

可以看到有rtlwifi

  • 然后检查当前使用的驱动

pi@raspberrypi:~ $ lsmod | grep 8192
8192cu                582217  0
cfg80211              543091  2 8192cu,brcmfmac

显示的是8192cu,确实是rtl8192cu的驱动,如果是使用rtlwifi的驱动,显示的应该是rtl8192cu

  • 手动禁用rtl8192驱动

    pi@raspberrypi:~ $ sudo depmod 4.9.41-v7+
    pi@raspberrypi:~ $ sudo rmmod 8192cu
    pi@raspberrypi:~ $ sudo modprobe rtl8192cu
  • 再尝试将网卡设为监听模式

pi@raspberrypi:~ $ sudo ifconfig wlan1 down
pi@raspberrypi:~ $ sudo iwconfig wlan1 mode monitor
pi@raspberrypi:~ $ sudo ifconfig wlan1 up

一切正常!

总结

想要在树莓派3B+上使用RTL8188CUS开启无线网卡监听模式,就把rtl8192的驱动禁用掉,把rtlwifi的驱动开起来就好了

去网上搜这个问题,回答都是很多年前的了,很少有在树莓派3B上试过的方案,最靠谱的一个答案在,在树莓派2B+的年代,raspbian禁用了rtlwifi驱动,因为它再raspbian上不稳定,对于rtl8188cus,会去使用rtl8192cu的驱动(恩,这是正确的做法),但是在raspbian上,一旦使用了rtl8192cu的驱动,网卡就开不了监听模式,所以需要重新编译raspbian内核,将rtlwifi驱动打开,将rtl8192驱动关掉。

在网上继续搜索有没有什么奇技淫巧可以解决这个问题,忽然发现这个

喜欢请,转载请注明作者

这里查到
WIFI@REALTEK
这里
工程
star
梦里茶