admin管理员组

文章数量:1531479

本项目仅使用一发一收,使用台式机发射信号,带有搭建5300网卡的3根天线的台式机采集数据,两部台式机都购买的mini主机搭建5300网卡

准备工作

1、5300网卡2个(半高)

2、一台台式机(采集数据)、一台台式机发射数据,monitor模式下 (因为看到说AP模式下采集数据不太稳定 所以最后选择用monitor模式)

3、主机搭建ubuntu系统

4、CSI Tool配置

5、MATLAB用于处理数据

具体流程

1、购买带有天线的5300网卡(半高卡适合笔记本,全高卡适合台式电脑),利用无线网卡外置天线构成天线阵列,用于接收无线信道数据并传给搭建5300网卡的电脑上。

2、系统搭建

1、打开mini主机。将原来的网卡替换为5300网卡

2、利用Utralso实现U盘刻录,然后装Ubuntu.最后利用easyBCD制作U盘启动,

新手安装 Ubuntu 操作系统步骤教程_ubuntu安装-CSDN博客

Win7下安装Ubuntu(双硬盘)的简要步骤-CSDN博客

3、按F11进入Ubuntu安装,接下来就可以按照安装流程一步一步来,我们的mini主机内存很小,只有10个G,分盘的时候/boot分了200M,/home分了7G,/..分了8G,/swap分了2G。(后来发现实在不行 又重新买了256G的主机 给D盘分配了50G用于装Ubuntu系统)

安装Ubuntu系统,本人所用系统为ubuntu14.04.1。可以参考知乎讲的双系统搭建方式,即在真机上搭建Ubuntu,如果使用虚拟机搭建最终会接收不到数据

在Windows7基础上安装Ubuntu系统,实现双系统操作 - 知乎 (zhihu)

Windows+Ubuntu20.04双系统安装教程 - 知乎 (zhihu)https://zhuanlan.zhihu/p/363640824#:~:text=Windows%2BUbuntu20.04%E5%8F%8C%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B%201%201.%20%E4%B8%BA%E4%BB%80%E4%B9%88%E9%80%89%E6%8B%A9Ubuntu20.04%20%E4%B9%8B%E5%89%8D%E4%BD%BF%E7%94%A8centos%EF%BC%8C%E4%BD%86%E6%98%AFcentos8.x%E5%B7%B2%E7%BB%8F%E4%B8%8D%E5%86%8D%E7%BB%B4%E6%8A%A4%EF%BC%8C%E7%BB%BC%E5%90%88%E5%85%B6%E4%BB%96%E4%B8%80%E4%BA%9B%E5%8E%9F%E5%9B%A0%E9%80%89%E6%8B%A9Ubuntu%EF%BC%8C%E8%80%8C%E4%B8%94%E8%BF%99%E4%B8%AA%E5%8F%91%E8%A1%8C%E7%89%88%E6%9C%AC%E4%BC%9A%E7%BB%B4%E6%8A%A45%E5%B9%B4%EF%BC%88%E5%85%B7%E4%BD%93%E5%88%B0%E5%93%AA%E4%B8%80%E5%B9%B4%E5%BF%98%E8%AE%B0%E4%BA%86%EF%BC%89%EF%BC%8C%E5%BE%88%E5%A4%9A%E9%9C%80%E8%A6%81%E7%94%A8%E5%88%B0%E7%9A%84%E8%BD%AF%E4%BB%B6%E4%B9%9F%E4%BC%9A%E4%B8%80%E7%9B%B4%E6%94%AF%E6%8C%81%E3%80%82%202%202.%20%E6%88%91%E7%9A%84%E7%94%B5%E8%84%91%E9%85%8D%E7%BD%AE,...%207%20%E4%BA%8C%E3%80%81%E4%B8%BAUbuntu%E5%88%86%E9%85%8D%E7%A3%81%E7%9B%98%E7%A9%BA%E9%97%B4%20%E6%88%91%E4%BB%AC%E9%9C%80%E8%A6%81%E5%9C%A8%E5%9B%BA%E6%80%81%E7%A1%AC%E7%9B%98%EF%BC%88%E4%B9%9F%E5%B0%B1%E6%98%AF%E7%B3%BB%E7%BB%9F%E7%9B%98%EF%BC%89%E5%88%86%E5%87%BA300M-500M%E7%9A%84%E7%A9%BA%E9%97%B4%E7%94%A8%E4%BA%8EUbuntu%E7%9A%84%2Fboot%E5%88%86%E5%8C%BA%E6%9D%A5%E4%BD%9C%E4%B8%BA%E5%90%AF%E5%8A%A8%E5%BC%95%E5%AF%BC%E6%96%87%E4%BB%B6%EF%BC%88%E5%90%A6%E5%88%99%E6%97%A0%E6%B3%95%E5%90%AF%E5%8A%A8Ubuntu%EF%BC%8C%E5%85%B7%E4%BD%93%E5%8E%9F%E5%9B%A0%E7%99%BE%E5%BA%A6%EF%BC%89%EF%BC%8C%E5%8F%A6%E5%A4%96%E5%A6%82%E6%9E%9C%E5%9B%BA%E6%80%81%E7%A1%AC%E7%9B%98%E5%85%85%E8%B6%B3%E5%8F%AF%E4%BB%A5%E9%A2%84%E7%95%99%E5%A4%84%2FSWAP%E5%88%86%E5%8C%BA%E7%9A%84%E7%A9%BA%E9%97%B4%E3%80%82%20...%208%20%E4%B8%89%E3%80%81%E5%AE%89%E8%A3%85Ubuntu%20%E6%9B%B4%E5%A4%9A%E9%A1%B9%E7%9B%AE

注意:CSI Tool适用于版本内核3.2 ( Ubuntu 12.04) 至 4.2 (Ubuntu 14.04.4)之间的Ubuntu系统

3、配置5300环境,安装编译CSI tool内核

2021/12/14---搭建5300网卡获取csi数据_5300网卡采集csi_城猪猪的博客-CSDN博客

CSI Tools 工具的安装 Intel 5300 + Ubuntu14.04_华为云 intel5300安装-CSDN博客

(1)在克隆内核git clone https://github/dhalperi/linux-80211n-csitool.git时可以下载速度很慢选择此方式[原创]Linux 802.11n CSI tool安装教程(亲测可用)_sciincx 802.11n-CSDN博客,这样下载的intel-5300-csi-github-master.tar.gz是一个精简版的内核

(2)如果一定要使用git clone https://github/dhalperi/linux-80211n-csitool-supplementary.git,但一直出现问题,是网络的问题,有以下两种方案:

1)重复执行下面的4行代码,下面克隆的时候也可能克隆不了 也执行这些步奏即可

git config --golbal http.postBuffer 30M(30M可以更改为其他的如:500M等等反正多试试)

git config --global --unset http.proxy

git config --global --unset https.proxy

git clone https://github/dhalperi/linux-80211n-csitool-supplementary.git

2)直接复制链接从github官网把需要拷贝的所有文件下载下来,创建一个linux-80211n-csitool-supplementary文件夹保存这些文件即可。

(2)在执行sudo apt-get install libpcap-dev时发现下载不了,可以在软件更新器中找到Ubuntu ,切换清华源到国内源。

4、获取CSI数据:AP模式和Monitor模式,本人使用Monitor模式

(1)AP模式:一台主机(安装Intel 5300网卡)+一个没有密码的路由器

操作流程:主机连接没有密码的路由器。主机ping路由器(在虚拟机中使用命令Ctrl+Alt+T打开一个终端,另开一个终端Ctrl+Shift+R,执行 ping 192.168.1.1 -i 0.2,其中ip地址是路由器网关,0.2为发包间隔)。查看是否有输出,有则成功,ctrl+c停止收发,打开新的终端,cd到netlink文件夹,看到csi.dat数据,保存数据,下一次收发会清空上次的数据。

(2)Monitor模式:2台主机(安装Intel 5300网卡)

第二篇博主写的很好,主要参照他的方案进行:

Monitor模式和AP模式下获取WiFi的CSI信号_激活wificsi的原理-CSDN博客

Linux CSI Tool 完整使用说明(一发一收,monitor模式)(权威版 已成功测试)_csitool-CSDN博客

但在运行中还是遇到以下几个问题,将解决方案提供出来供大家参考

(1)一定按照moniter流程进行,即先初始化脚本moniter.sh,inject.sh.然后将接收端弄好,最后再发送端发射数据。接收端生成文件命名为test.dat

sudo ../netlink/log_to_file test.dat

(2)在初始化过程中执行接收端脚本sudo bash ./monitor.sh wlan0 64 HT20时,出现WLAN0:获取接口标志时出错:没有那个设备。但是我iwconfig时,是有wlan0的:替换掉moniter.sh中的代码,改为:

moniter.sh

#!/usr/bin/sudo /bin/bash
sudo modprobe -r iwlwifi mac80211
sudo modprobe iwlwifi connector_log=0x1

sudo service network-manager stop  
SLEEP_TIME=2
WLAN_INTERFACE=$1
if [ "$#" -ne 3 ]; then
	echo "Going to use default settings!"
	chn=64
	bw=HT20
else
	chn=$2
	bw=$3
fi
sleep $SLEEP_TIME
ifconfig $WLAN_INTERFACE 2>/dev/null 1>/dev/null
while [ $? -ne 0 ]
do
    ifconfig $WLAN_INTERFACE 2>/dev/null 1>/dev/null
done
sleep $SLEEP_TIME
echo "Add monitor mon0....."
iw dev $WLAN_INTERFACE interface add mon0 type monitor
sleep $SLEEP_TIME
echo "Bringing $WLAN_INTERFACE down....."
ifconfig $WLAN_INTERFACE down
while [ $? -ne 0 ]
do
    ifconfig $WLAN_INTERFACE down
done
sleep $SLEEP_TIME
echo "Bringing mon0 up....."
ifconfig mon0 up
while [ $? -ne 0 ]
do
    ifconfig mon0 up
done
sleep $SLEEP_TIME
echo "Set channel $chn $bw....."
iw mon0 set channel $chn $bw

这样就能成功获取到数据啦!!!

5、在netlink文件夹下可以看到新生成的test.dat文件,

1、将获得 test.dat和linux-80211n-csitool-supplementary文件夹下的matlab 文件一起copy到windows10下,随便放在哪都可

2、然后打开window10下的MATLAB程序,转到保存linux-80211n-csitool-supplementary/matlab的地址下

3、在命令行中输入指令,主要就是为了调用read_bf_file文件,解析.dat文件

csi_trace = read_bf_file('test.dat'); //test.dat是自己保存的文件名。

4、打开工作区的csi_trae,就能看到接收到的CSI数据的具体构成啦

本文标签: 台式机网卡数据csi