AtherosCSI-Tool设备搭建指南 路由器的烧录和编译

硬件准备:

设备选择:

目前可以进行CSI数据收集的硬件平台有Intel5300和Atheros。前一种方法规定了固定的网卡型号,好在价格还比较便宜,笔记本和主机平台都可以买到对应高度的网卡。后一种的适用性稍微广一些,Atheros公司有一系列型号网卡都是支持的,使用该公司网卡的路由器也是可以的,笔者选择的就是这一种。

这里我选择的硬件是两个路由器,一个做发射AP,一个做接收端。因为该方式相较于使用pc牵出天线,路由器更加灵活一些,且不用再给pc端从头配置另一种环境。

而路由器是基于openwrt的,最好提前刷好breed系统,同时注意路由器的性能不要太低,毕竟进行数据采集需要一定的稳定性,笔者型号为tplink-wdr4310。

openwrt介绍:

openwrt固件其实就是一个微型的linux系统,其中有各式各样的插件可以进行进行自定义,用户可以在该系统上进行脚本编辑,实现网络代理,流量监控等操作。但是由于路由器不像电脑一样有统一的硬件标准,所以openwrt在刷写的时候需要对应好型号,不然刷错了路由器就会变成砖头。所以最好先刷breed进去,这是一个底层控制台,固件在breed的基础上运行,如果刷写失败也不怕路由器报废。因为本篇重点在CSI的采集,所以breed刷写不再赘述,自行搜索自己的型号加breed会有很多教程,恩山论坛,以及博客“明月永在”,可以作为参考。

固件刷写:

AtherosCSI的作者很贴心的准备好了已经编译好的固件,直接选择对应的型号进行刷写即可。其中要注意的是,不同的固件名称对应的路由器系统不同。

一般openwrt编译出来的固件有两种,factory固件和sysupdate固件。例如:

openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin

openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade.bin

factory固件是从路由器的原版系统刷到openwrt,sysupdate固件是已有openwrt固件的升级。

在选择好对应路由器型号的固件之后,我们要做的就是烧录进路由器。

刷写方式有3种,1、Tftp刷写 2、控制台直接升级 (推荐)3、bios烧录

此处假设已经刷好的breed系统,我们就可以很方便地使用方法2进行烧录。

1、关机拔下电源,插上网线连接电脑(LAN口)

2、摁住复位键,插上电源,保持5秒后松开复位键

3、打开浏览器输入路由网关的IP地址(默认192.168.1.1),即可进入breed控制台。

4、左侧打开固件更新

5、选择之前下载好的固件进行刷写即可,会有一定耗时,路由器会重启,重启后再进入同样的网关就是刷好的openwrt界面了

固件编译:

既然作者已经提供了现成的固件,为什么我们还要进行编译这一步呢?因为固件的产生需要编译,在编译的过程中,CSI作为openwrt的一个插件模组嵌入了固件,一些采数据的参数,如发包速率等设置是在编译时确定的,这一点在pdf指南中也有说明。所以如果想更改一些设置定制自己的需求的话,我们需要自行对固件进行编译。

官网的参考还算是详尽,但是错误还是有很多的,先贴出来再进行说明。

GitHub指南:https://github.com/xieyaxiongfly/Atheros_CSI_tool_OpenWRT_src/wiki/Install-OpenWRT-version-of-Atheros-CSI-tool

pdf指南:https://wands.sg/research/wifi/AtherosCSI/document/Atheros-CSI-Tool-User-Guide(OpenWrt).pdf

两个链接需要互相参照着看,因为都不完善。

这里不重复刷写的步骤,但是会对我踩的一些坑进行说明:

1、因为这里的采集模块仅是作为openwrt的一个插件,所以进行openwrt环境配置的时候可以根据其他项目进行参考。在一开始软件包环境的准备中如果照搬不动会出现大量错误,因为原作者命令行重复了,而且回车的地方也不对。

这里贴出修改后的命令:sudo apt-get install git python sed wget cvs subversion git-core coreutils unzip texi2html  texinfo docbook-utils gawk python-pysqlite2 diffstat help2man make gcc g++ build-essential g++ desktop-file-utils    chrpath flex libncurses5 libncurses5-dev zlib1g-dev pkg-config gettext libxml-simple-perl guile-1.8 cmake libssl-dev xsltproc fastjar mercurial pngcrush imagemagick tcl binutils bzip2 perl grep diffutils openjdk-7-jdk zlib1g zlib1g-dbg zlib1g-dev zlib-bin zlibc zlib-gst ccache distcc gcc-multilib g++-multilib bin86 libtool

仍会出现部分包不存在无法下载的情况,可以进行换源或者代理fq的操作,实在不行就忽略吧(我就这么干的)。

2、在执行命令make menuconfig时,因为要路由器实现收发功能,所以recCSI和sendDate都是要勾上的。同时要在主界面luci也要勾上,这是web页面的控制台,也是实现所有系统配置的一个统一的接口,有了它才能在按照教程让路由开启发射和接收功能,但是指南中没写这个。在主界面进入luci界面即可进行相关设置,这里是luci插件的对照说明

3、执行feed命令处,因为feeds 是扩展的软件包,独立于openwrt源码之外,所以需要单独进行拉取和更新,同时这一步最好fq保证数据完整性。

笔者目前对于编译的部分细节还没理解完全,后续会对修改设置等进行补充。

 

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值