1. AtherosTool安装

系统要求 Ubuntu:14.04
在电脑上安装Ubuntu版本Atheros Tool工具,参考教程:https://github.com/xieyaxiongfly/Atheros_CSI_tool_OpenWRT_src/wiki/Install-Ubuntu-version-of-Atheros-CSI-tool

1.1. 准备

在下载和安装修改后的内核之前,我们需要安装一些必要的软件包。我们首先安装git以下载最新版本的Atheros-CSI-Tool。

$ sudo apt-get install git

需要一些软件包才能成功运行“ make menuconfig”

$ sudo apt-get install libncurses5-dev libncursesw5-dev

最后,安装一些用于编译Hostapd的软件包。

$ sudo apt-get install libnl-dev libssl-dev

通过以下方式下载内核源代码:

$ git clone https://github.com/xieyaxiongfly/Atheros-CSI-Tool.git

1.2. 配置,编译和安装

完成后,您应该找到一个名为“ Atheros-CSI-Tool”的文件夹。输入它,我们将在文件夹“/ Atheros-CSI-Tool /”中。下一步是配置内核并生成“.config”文件。在此文件夹中运行以下命令:

$ make menuconfig

我们将使用内核提供的默认配置。接下来,编译并安装内核模块。

$ make -j16
$ make modules
$ sudo make modules_install
$ sudo make install

请注意,“-j16”用于加速编译过程。根据您的CPU内核编号选择数字“ 16”。通常,是您的CPU内核的2倍。
最后,重新启动系统。

$ sudo reboot

我们完了!您已经实现了定制的Linux Kernel 4.1.10。运行以下命令以检查您的内核版本。
$ uname -r
如果输出为“ 4.1.10+”,则说明安装成功。

1.3. 注意

(1) “uname -r”系统返回不是4.1.10+
开机进入Ubuntu高级选项-选内核为4.1.10+的版本。(Atheros Tool是安装在内核4.1.10+上面的,其他版本内核会在采集数据时报错
(2)启用WiFi后“WiFi网络”为灰色
进入/etc/NetworkManager/NetworkManager.conf

cd /etc/NetworkManager

修改NetworkManager.conf 里面的managed=false 改成managed=true

sudo gedit NetworkManager.conf

2.收集CSI

2.1. 在Ubuntu上设置AP

通过以下方式下载源代码:

$ git clone https://github.com/xieyaxiongfly/Atheros-CSI-Tool-UserSpace-APP.git

完成后,您应该找到一个名为“ Atheros-CSI-Tool -UserSpace-APP”的文件夹。进入Hostapd文件夹:“/ Atheros / Atheros-CSI-Tool-UserSpace-APP / hostapd-2.5 / hostapd /”。编译源代码:

$ make

如果编译过程成功,则Hostapd软件已准备就绪。接下来,我们需要配置Wi-Fi接口。使用“ ifconfig”查找您的WiFi卡的接口名称,例如“ wlan0”。然后,通过输入以下内容来编辑文件“ / etc / network / interfaces”(在这里,WiFi卡的接口名称也可能是lo或其他的):

auto wlan0
iface wlan0 inet static
address 10.10.0.1
netmask 255.255.255.0

我们还需要安装DHCP服务器来自动为WiFi客户端分配IP地址,例如ISC DHCP服务器,并且可以使用以下命令进行安装:

$ sudo apt-get install isc-dhcp-server

将ISC-DHCP-Server的默认接口更改为WiFi卡。编辑文件“ / etc / default / isc-dhcp-serve”并设置接口:

 INTERFACES="wlan0"

编辑DHCP服务器配置文件“ /etc/dhcp/dhcpd.conf”。

#option definitions common to all supported networks…
#option domain-name “example.org”;
#option domain-name-servers ns1.example.org, ns2.example.org;
#default-lease-time 600;
#max-lease-time 7200;

在文件末尾,添加:

subnet 10.10.0.0 netmask 255.255.255.0 {
range 10.10.0.2 10.10.0.16;
option domain-name-servers 8.8.4.4, 208.67.222.222;
option routers 10.10.0.1;
}

在“/ Atheros-CSI-Tool-UserSpaceAPP / hostapd-2.5 / hostapd /”中有一个名为“ start_hostapd.sh”的批处理脚本文件。运行它以启动Hostapd。

2.2. 采集准备

在“Atheros-CSI-Tool-UserSpaceAPP”中,包含了四个子文件夹:
Hostapd-2.5:作用是通过启动文件夹里面的“ start_hostapd.sh”将主机设置为AP;
matlab:解析接收到的包含CSI数据的文件;
recvCSI:通过里面的命令控制主机作为接受方接受CSI数据;
sendData:通过里面的命令控制主机作为放射方放射CSI数据。

2.2.1 编译recvCSI

参考recvCSI里面的“makefile”,编译recvCSI里面的.c文件,进入./ Atheros-CSI-Tool-UserSpaceAPP/recvCSI路径,依次进行编译:

gcc -c main.c -o main.o
gcc -c csi_fun.c -o csi_fun.o
gcc csi_fun.o main.o -o recv_csi

2.2.2 编译sendData

sendData.c应该是编译过的,如果没有,则参考makefile将其编译为send_Data。

2.3. 采集数据

选择主机A作为发射方,进入“/ Atheros-CSI-Tool-UserSpaceAPP / hostapd-2.5 / hostapd /”启动批处理文件“ start_hostapd.sh”

cd / Atheros-CSI-Tool-UserSpaceAPP / hostapd-2.5 / hostapd /
sudo bash start_hostapd.sh

效果如图

这里的“b4:ee:b4:b7:08:27”是发送方的mac地址,“Atheros_csi_tool”是发射端的无线网络。

接收方B连接WIFI“Atheros_csi_tool”,发送方命令窗口给出连接信息。

这里的“b4:ee:b4:b7:08:3c”是接收方的mac地址,后面需要使用。

接收方B进入“recvCSI”文件夹,运行接受数据命令

cd /Atheros-CSI-Tool-UserSpaceAPP / recvCSI /
sudo ./recv_csi filename.dat

发送方A重新打开一个命令行界面,运行命令发送数据

cd / Atheros-CSI-Tool-UserSpaceAPP / sendData /
sudo ./sendData wlan0 b4:ee:b4:b7:08:3c 100

发送命令“sudo ./sendData wlan0 b4:ee:b4:b7:08:3c 100”的字段含义为“sendData 传输端口 接收方mac地址 发包数量

接收方接受数据

数据保存位置为”/ Atheros-CSI-Tool-UserSpaceAPP / recvCSI /csiData.dat”。

2.4 注意

1.接收方报错“Failed to open the device…: No such file or directory
通过命令“uname -r”检查系统内核是否是“4.1.10+”,如果不是,通过重启切换系统内核至“4.1.10+”。
2. 发送方报错“send failed
以管理员权限运行数据发送命令

sudo ./sendData wlan0 b4:ee:b4:b7:08:3c 100

3.解析CSI

打开“Atheros_tool_matlab/read.m”,修改对应文件路径,即可获得CSI幅值数据。
注意:

1.如果是从网上下载的matlab解析CSI代码,read_log_file.m可能会报错“缺失read_csi.c”。
解决:将read_csi.c重新编译为read_csi.mexw64
安装MinGW-w64:matlab附加功能-获取附加功能-搜索“MinGW-w64”(注意:这个方法仅支持matlab2017b及以上版本)

选择编译语言并编译.c文件(read_csi.c会产生警告,不用管)

Mex -setup c++
Mex read_csi.c


2. 运行read_log_file.m,matlab发生报错,并且需要重启软件。

解决办法:
将从网上下载的read_log_file.m的第46行改为

endian_format = 'ieee-le';

Atheros-CSI-Tool(Ubuntu版本安装及使用过程)[原教程来自xieyaxiong]相关推荐

  1. Atheros CSI Tool环境搭建之路由器配置记录---2022/03/22

    Atheros CSI Tool路由器配置 路由器刷入OpenWRT固件 准备工作: 刷入步骤 官网对于安装openwrt的指导 硬件准备 安装OpenWRT Install from binary ...

  2. Ubuntu下安装Qt全部过程

    Ubuntu下安装Qt全部过程 (2013-03-04 22:12:02) 转载▼   分类:ARM Linux 1.到官网http://qt-project.org/downloads或者ftp:/ ...

  3. ubuntu 20 安装mysql workbench 过程

    ubuntu 20 安装mysql workbench 过程,参考网站为https://phoenixnap.com/kb/mysql-workbench-ubuntu 步骤1:sudo apt up ...

  4. linux(ubuntu版本)安装tengine

    解压tengine压缩包 解压成功后,即多出一个文件夹 prefix表示将nginx安装到哪个目录下 想要Linux下安装Nginx作为WEB服务器,要先准备些必要的库和工具,通常必须安装的是:PER ...

  5. 从桌面下载源码包到linux,Ubuntu kylin安装微信客户端过程(源码包安装方法)

    Ubuntu kylin 17.10系统自带的微信客户端不能使用,删除后重新用源码包安装就可以使用了.本文最后的相关主题采用的方法是通过Snap在Ubuntu中安装微信,源码包安装详细过程如下: 1. ...

  6. windows mysql源码安装配置_windows下MySQL5.6版本安装及配置过程附有截图和具体介绍...

    随着MYSQL版本的升级以及电脑系统的变化,我们给大家整理了种种电脑环境下安装MYSQL的图解过程,希望我们整理的内容能够帮助到大家:mysql安装图解总结 https://www.in68.com/ ...

  7. mysql安装与配置的截图_windows下MySQL5.6版本安装及配置过程附有截图和详细说明...

    随着MYSQL版本的更新以及电脑系统的变化,我们给大家整理了各种电脑环境下安装MYSQL的图解过程,希望我们整理的内容能够帮助到大家:mysql安装图解总结 https://www.jb51.net/ ...

  8. Ubuntu 编译安装ffmpeg,mplayer,x264全教程支持VDPAU(高清硬解)

    这个是针对Ubuntu 10.04 AMD64的安装ffmpeg,mplayer,x264全教程,包括VDPAU Ubuntu 10.10AMD64也是可以的. 目前mplayer仍然使用svn,编译 ...

  9. ubuntu下安装Qt的过程以及遇到的问题和解决方案

    要从windows转到linux了. 回想起刚上大学时,什么也不懂,大学四年没有谈恋爱,也没有特别好好学习,没有进入企业实习,唯一拿的出手的是进入实验室,获得了两次省级二等奖.幸好简历有这一项,要不然 ...

最新文章

  1. cap mysql_.NetCore关于Cap(RabbitMQ)结合MySql使用出现MySql相关类冲突问题解决办法
  2. (转)理解android.intent.action.MAIN 与 android.intent.category.LAUNCHER
  3. 深度学习概览之自然语言处理:从基本概念到前沿研究
  4. telnet不能用!!!提示:-bash: telnet: command not found
  5. Spring Boot定时任务-Quartz基本使用
  6. 10年嵌入式工程师经验之谈:对于研发工作的感悟
  7. Linux的timerfd分析
  8. python编程系列---global的使用注意点
  9. 安装openguass数据库配套工具Data Studio
  10. Python网络爬虫案例
  11. uniapp push推送服务使用指南
  12. mysql error 1114,MySQL错误1114“表已满”使用MyISAM引擎
  13. MSF编码与upx加壳过杀软
  14. html5新增的标签是什么,HTML5新增标签及含义解释
  15. 使用Kotlin配合RxJava网络请求
  16. Microsoft Edge 浏览器cpu占用率莫名升高
  17. 常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)
  18. 大学生IT博客大赛最技术50强与最生活10强文章
  19. docker - 端口占用
  20. 初二需要函数计算机,初二的数学函数应该怎么学

热门文章

  1. AI的入门圣经,PRML最全资源合集(含讲解以及中译版)
  2. 安卓应用清除缓存一般清理目录和代码(带弹框)
  3. ffmpeg mp4 mp3 pcm flac转换
  4. java web指纹采集_web应用程序指识别中的指纹收集
  5. python每日算法 | 算法的起步与递归算法(汉诺塔问题)
  6. 高层次人才申报,山东省专利奖
  7. 安踏联合清华大学打造全球运动装备创新设计大赛;雀巢与沃尔玛供应链可持续发展战略合作初结硕果 | 知消...
  8. python整型数据源码分析_Python2 基本数据结构源码解析
  9. 谷歌去水印java实现_在Java中实现Google的“您的意思是”功能
  10. 【Excel】中的日期不是日期格式