ar71xx上WiFi探针的实现

1, 修改无线驱动mac80211文件夹中的rx.c文件,获取probe帧的mac。
vim build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/compat-wireless-2016-01-10/net/mac80211/rx.c

找到 static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
                                          struct sk_buff *skb)函数进行修改
ar71xx上WiFi探针的实现
上图红框中的代码是添加的,struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);用于获取sta设备状态,这里增加这行代码是为了获取status->signal,也就是信号强度。
get_maclist是我自己写的一个函数,用于处理hdr->addr2(probe帧中取得的mac)、status->signal。

2, mac80211文件夹下编写csx_netlink.c、csx_netlink.h两个文件,利用genetlink将mac数据由内核层传送到用户层(当然你也可以使用其他方法来实现),以下为主要部分代码:

初始化
ar71xx上WiFi探针的实现

数据接收与发送
ar71xx上WiFi探针的实现

3,修改mac80211文件夹中的 main.c,初始化时加入对csx_netlink的初始化
ar71xx上WiFi探针的实现

4,修改mac80211文件夹中的 Makefile,编译csx_netlink
ar71xx上WiFi探针的实现

PS:
1, genetlink的具体实现请参考上一篇文章
2, wifi驱动内核源码下载地址:  http://download.csdn.net/download/caoshunxin01/9990463 (需要积分)
压缩包内容 :
  ar71xx上WiFi探针的实现
3, 用户空间示例程序:   https://gitee.com/caosx/maclist.git   (开源)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值