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   (开源)


我来说两句!

发表评论:

◎欢迎参与讨论,请在这儿发表您的观点。

«   2019年7月   »
1234567
891011121314
15161718192021
22232425262728
293031
about关于我

root.wang&老王SEO

邮箱:8#ie3.cn

微博:weibo.com/mldh

lofter

PHP攻城师

SEO攻城师

python爱好者

数据挖掘爱好者

智能硬件爱好者

摄影爱好者

网站分类
搜索
文章归档
友情链接