[原创]Linux 802.11n CSI tool安装终极教程(亲测可用)

Linux 802.11n CSI tool安装终极教程

网上关于Intel5300 CSI tool的教程繁多,实际有效的可以说极少,各种疏漏错误。装的时候被坑无数次,终于调通。其实装这个工具并不太难,但是很多人把它弄得极其复杂,所以写这篇博客来帮助和我有一样困扰的人。我基本沿用的是官方文档旧版本的安装方案,针对其冗杂之处做了大量改进。

旧版安装教程:

http://dhalperi.github.io/linux-80211n-csitool/old_installation.html

若需转载请注明出处:

https://blog.csdn.net/u014645508/article/details/81359409

安装Ubuntu及换源

1.首先安装Ubuntu 12.04 LTS。

下载地址:https://pan.baidu.com/s/1qY6wZN2?errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=0&traceid=

2.换源。这是为了切换到国内的源,加速下载的速度。可以用命令行操作打开source.list换源,但是容易出现问题。我建议采用在图形界面换源的方案:打开Ubuntu Software Center,在左上角Edit栏里打开Software Sources,在Ubuntu Software 下的Download from里选择 Other... ,选择China中的源,我这里选择清华源。

3. ctrl+alt+T新建终端,执行

sudo apt-get update

安装依赖

4 继续执行 

sudo apt-get -y install git-core kernel-package fakeroot build-essential ncurses-dev  

这一步一般不会有问题,如果出错考虑换源有问题,或采用https://blog.csdn.net/tdbtx_j/article/details/79464535 的补救方案。

5.继续执行

sudo apt-get -y install libnl-dev libssl-dev  这一步一般不会有问题

6.继续执行

sudo apt-get -y install iw  这一步一般不会有问题

下载并编译内核

7.下载 intel-5300-csi-github-master.tar.gz

下载地址:https://download.csdn.net/download/u014645508/10579514

原教程在这一步是git clone操作,会克隆一个庞大的内核csitool,极为耗时,其实并不需要。这里下载的intel-5300-csi-github-master.tar.gz是一个精简版的内核,只有十分之一大小。

8.将上一步下载的压缩包利用U盘拷贝到Ubuntu系统Home目录下,准备在Ubuntu上解压。解压命令:

tar -xvf intel-5300-csi-github-master.tar.gz

可能遇到的问题:Ubuntu报错unable mounting ...exfat,这是由于Ubuntu无法识别U盘格式,

解决方案:执行 sudo apt-get install exfat-fuse 即可识别U盘内容

9.切换至解压后的文件夹下:

cd intel-5300-csi-github

10 执行命令 make oldconfig

一路按回车即可,大概耗时半分钟。

11.执行命令 make menuconfig

会弹出一个窗口,什么也不需要做,Save并Exit即可,这一步主要作用是生成一个 .config文件。

12. make -j3

整个流程中最为耗时的一步,我的机器大约需要运行半小时。3这个参数可以理解为编译的速度,机器性能比较优良的话可以使用 make -j5。

13.sudo make install modules_install

安装相关模块,耗时十五分钟左右。这一步执行以后刚开始可能会弹出couldn‘t load 等字样,这是因为还没有执行14步,加载不出是正常的。

14.执行

sudo make install

把13步遗留的问题补上。然后再执行一次

sudo make install modules_install
依旧耗时15分钟,这两步也许可以优化,我没有深究。

15. 执行

sudo mkinitramfs -o /boot/initrd.img-`cat include/config/kernel.release` `cat include/config/kernel.release`

16.我理解这一步作用是安装与后续编译有关的文件

make headers_install

17. 执行

sudo mkdir /usr/src/linux-headers-`cat include/config/kernel.release`

18. 

sudo cp -rf usr/include /usr/src/linux-headers-`cat include/config/kernel.release`/include

17、18两步是操作和移动release的内核

至此,内核编译完成,需要reboot系统。

这里可能会遇到一个问题:内核编译后不显示新添加的启动项选项,可按照如下方式使之显示出来。

cd /etc/default

sudo gedit grub

 

注释下面一行

#GRUB_HIDDEN_TIMEOUT=0

然后保存。

19.更新grub 

sudo update-grub 

20. 重启计算机,进入新的内核,我这里是进入4.2.0的内核。

以后每次都进该版本内核,否则收不到数。

替换固件

替换固件部分,官方教程让人有些晕。本质就是将iwlwifi-5000-2.ucode.sigcomm2010 这个文件复制到系统的固件目录下,让其发挥作用。按如下方法执行即可:

21.执行

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

22.执行

for file in /lib/firmware/iwlwifi-5000-*.ucode; do sudo mv $file $file.orig; done

23.

sudo cp linux-80211n-csitool-supplementary/firmware/iwlwifi-5000-2.ucode.sigcomm2010 /lib/firmware/

24.

sudo ln -s iwlwifi-5000-2.ucode.sigcomm2010 /lib/firmware/iwlwifi-5000-2.ucode

替换部件工作完成。

编译收数文件

25.切换至netlink目录,准备编译

cd ~/linux-80211n-csitool-supplementary/netlink

26. 执行

make  

这一步是编译生成log_to_file等文件。log_to_file可以实现收数功能。如果这一步报错可能是前面make_headers步骤出了错。我们有需要的话可以自行修改log_to_file.c文件,但之后需要在该目录下重新编译,即执行

make clean

make

改驱动和收数环节

官方教程中使用hostapd收数,每次收数还要执行一大串复杂指令,例如将一个connector_log的参数置1,多余。

我完全摒弃了官方教程中使用hostapd的方案,同时修改了驱动,这样就一劳永逸了。如果不修改驱动connector_log值的话,可能会导致无法收数,每次都要人为置1,麻烦。强烈建议修改。PS:修改驱动这一步是可选的。

修改驱动部分:

思路:安装Sublime text,利用其全局搜索功能检索connector_log.再利用gedit修改其值。

1)在Sublime Text官网下载linux版本,网址:https://www.sublimetext.com/3

如果你是按我的教程执行的,此时需选择32 bit tarball版本。

2)下载的文件在Downloads目录下,使用 cd Downloads命令

3)之后解压缩 tar -xvf sublime_text_3_build_3176_x32.tar.bz2 (按Tab补全即可)

4)打开解压缩下的Sublime Text目录, 双击运行sublime_text.

5)快捷键ctrl+shift+f打开其搜索功能。

find:connector_log

Where:在省略号中选择Add folder, 之后选择/home/csi/intel-5300-csi-github(即将你的解压出的intel-5300-csi-github文件夹作为folder,这里的csi替换为你的计算机名称)

搜索结果中,可以看到/home/csi/intel-5300-csi-github/drivers/net/wireless/iwlwifi/dvm/main.c 中1045行:

priv->connector_log=iwlwifi_mod_params.connector_log;

这是我们要改的地方。

sudo gedit /home/csi/intel-5300-csi-github/drivers/net/wireless/iwlwifi/dvm/main.c

使用搜索功能搜索connector_log,将该句右侧置为1,即

priv->connector_log=1;

保存。

6)修改之后还需要重新install,那么我们执行cd intel-5300-csi-github

然后依次执行 

        sudo make -j3

        sudo make install modules_install

        sudo make install

        sudo update-grub

修改驱动到此大功告成

收数方案

我将安装好的电脑作为client,连接一台没有密码的路由器(有密码的是连不上的)。还有方案是利用create ap生成软AP的方法,在github上有。以后每次收数都执行27、28、29、30四步。

(如果修改过了驱动就跳过27、28两步)

27. 执行

sudo rmmod iwldvm iwlwifl mac80211 cfg80211

这一步如果报错  ...is in use by ... ,说明想要卸载的模块在被其他模块使用。例如

cfg80211 is in use by ath9k  那我们需要使用sudo rmmod 命令先卸载 ath9k。

官方教程使用的是modprobe命令,它报错的话只会告诉你in use,但不会告诉你依赖关系,很蛋疼。可使用lsmod | grep 模块名命令补救。

28.执行

sudo modprobe iwlwifi connector_log=0x1

29. 连接上路由器wifi后,我们可以查看connect information,获取路由器的IP地址。假设为192.168.1.1。使用ctrl+alt+T新建另一个终端,并执行指令 

ping 192.168.1.1 -i 0.5(使用sudo权限可以获取更短的发包间隔)

我们的电脑会不停地ping AP,这时就可以测CSI了。

30. 在原终端打开log_to_file收数:

cd /home/csi/linux-supplementary/netlink(这里的csi是你的计算机名称)

sudo ./log_to_file test.dat

可以看到输出了 wrote 393 bytes

received 393 bytes:id:26 val:1 seq:10 clen:393等字样,收数成功!可以打开netlink目录查看收到的dat文件。

PS:

1.可以将第30步这两行命令保存在.sh脚本文件里,以后每次运行脚本文件即可。

2. 下面版本的log_to_file,以时间戳命名了csi的dat文件,同时优化了文件的读写操作。有需要可以下载。下载后覆盖/home/csi/linux-supplementary/netlink的log_to_file,按第26步重新make即可。

下载地址:

https://download.csdn.net/download/u014645508/10580332

猜你喜欢

转载自blog.csdn.net/u014645508/article/details/81359409