(亲测有效)ubuntu系统安装,配置csitool工具,收发无线数据

1、Ubuntu镜像
下载地址1:14.04,16.04,18.04
下载地址2:12.04~19.04
安装太高的版本,不行,比如20.04版本

2、ubuntu系统安装步骤(各个版本都可):
https://blog.csdn.net/qq_38962621/article/details/87390603?utm_source=app

3、安装Linux 802.11n CSI tool安装教程:
参考1:https://blog.csdn.net/u014645508/article/details/81359409
这个教程安装的是Ubuntu12.04版本,所用的csitool也只支持12.04和14.04
看到好几篇文章都提到,使用虚拟机安装csi tool是收不到数的,所以我安装的是双系统。
参考2:
csitool作者github:https://github.com/dhalperi/linux-80211n-csitool/
Linux 802.11n CSI Tool Installation Instructions:https://dhalperi.github.io/linux-80211n-csitool/installation.html

低版本笔记本安装中,遇到过连不上网的问题,可能是系统太久没人维护。

在原作者上改进,支持内核版本为4.15的16.04和18.04版本的csitool:https://github.com/spanev/linux-80211n-csitool

安装说明

先决条件

内核版本
在继续进行之前,需要检查内核的版本。 它应该是4.15,否则下面的命令将不起作用。 以下命令将打印该信息:
$ uname -r
所需的包
$ sudo apt install build-essential linux-headers-$(uname -r) git-core
具有retpoline支持的编译器(Ubuntu 16.04)
较新的内核需要具有retpoline支持的编译器。 GCC和G ++ 7.3及更高版本支持该功能。 以下示例显示了如何安装GCC / G ++版本8:
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt update
$ sudo apt install gcc-8 g+±8

需要确保make命令使用正确版本的编译器。 可以使用以下两种方法之一
将系统范围的链接重定向到编译器可执行文件
检查当前链接指向的位置。 命令
$ ls -l /usr/bin/gcc /usr/bin/g++
应该产生类似的输出:
lrwxrwxrwx 1 root 5 Mar 27 2018 /usr/bin/g++ -> g+±5
lrwxrwxrwx 1 root 5 Mar 27 2018 /usr/bin/gcc -> gcc-5
当前链接指向版本5。因此,需要将它们重定向到版本8。为此,请删除当前链接。
$ ls -l /usr/bin/gcc /usr/bin/g++
$ sudo rm /usr/bin/g++
并创建新的
$ sudo ln -s /usr/bin/gcc-8 /usr/bin/gcc
$ sudo ln -s /usr/bin/g+±8 /usr/bin/g++

生成并安装修改后的无线驱动程序

克隆修改后的Linux内核代码
$ git clone https://github.com/spanev/linux-80211n-csitool.git
$ cd linux-80211n-csitool
查看正确的发行版本
$ CSITOOL_KERNEL_TAG=csitool-$(uname -r | cut -d . -f 1-2)
$ git checkout ${CSITOOL_KERNEL_TAG}
为现有内核构建修改后的驱动程序
$ make -j nproc -C /lib/modules/ ( u n a m e − r ) / b u i l d M = (uname -r)/build M= (unamer)/buildM=(pwd)/drivers/net/wireless/intel/iwlwifi modules
$ sudo make -C /lib/modules/ ( u n a m e − r ) / b u i l d M = (uname -r)/build M= (unamer)/buildM=(pwd)/drivers/net/wireless/intel/iwlwifi \

INSTALL_MOD_DIR=updates modules_install
备注:如果在执行上面的命令期间,您收到类似于以下内容的错误消息

  • SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175
  • SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:178
    sign-file: certs/signing_key.pem: No such file or directory
    不用担心。 操作系统抱怨,因为驱动程序没有SSL签名。 这不会干扰驱动程序的安装。 因此,只需忽略消息并继续安装过程即可。

安装修改后的固件

获取CSI工具补充材料
$ git clone https://github.com/dhalperi/linux-80211n-csitool-supplementary.git

重新放置英特尔Wi-Fi Link 5000系列适配器的所有现有固件
$ for file in /lib/firmware/iwlwifi-5000-*.ucode; do sudo mv $file $file.orig; done
安装修改后的固件
$ sudo cp linux-80211n-csitool-supplementary/firmware/iwlwifi-5000-2.ucode.sigcomm2010 /lib/firmware/
$ sudo ln -s iwlwifi-5000-2.ucode.sigcomm2010 /lib/firmware/iwlwifi-5000-2.ucode

启用日志记录并测试驱动程序

构建用户空间日志记录工具
构建log_to_file,这是一个命令行工具,它将通过驱动程序获得的CSI写入文件:

$make -C linux-80211n-csitool-supplementary/netlink

卸载驱动程序:
$sudo modprobe -r iwlwifi mac80211
:消息“致命:正在使用模块iwlwifi”。 如果需要首先明确卸载iwldvm模块(在Ubuntu以外的发行版上),则可能会出现。 如果是这样,请改用此方法:
$sudo modprobe -r iwldvm iwlwifi mac80211
卸载驱动程序后,请在启用CSI日志的情况下
重新加载驱动程序
$sudo modprobe -r iwlwifi mac80211
$sudo modprobe iwlwifi connector_log=0x1

通过使用(例如)iw和iproute2实用程序(或如果使用nm-cli或图形小程序为无线接口启用了NetworkManager)来连接到802.11n接入点。 另外,您可以通过安装和配置hostapd来让系统充当802.11n接入点(有关配置示例,请参见补充材料); 在这种情况下,请在该系统上启动hostapd,然后将另一个802.11n站连接到该主机。
无论哪种方式,一旦连接,就开始将CSI记录到文件中

$cd /home/xx/linux-80211n-csitool/linux-80211n-csitool-supplementary/netlink(xx是电脑的名字
$sudo ./log_to_file test.dat
重新打开一个命令终端
$ping 192.168.1.1 -i 0.5(0.5为发包间隔)
成功的话,会看到收发同时进行,ctrl+c停止收发,在netlink文件夹看到test.dat数据,应该需要把数据单独保存,下一次收发会清空上次的数据。

你可能感兴趣的:(人工智能)