目前支持wpa3的client毕竟还少,因此决定用树莓派作为wpa3 client,同时为了方便分析wpa3有关的supplicant和 kernel的代码流程,决定手动编译。

编译之前需要下载树莓派对应的工具链和driver patch。

https://community.cypress.com/docs/DOC-17441
git clone https://github.com/raspberrypi/tools ~/tools
git clone --depth=1 --branch rpi-4.14.y https://github.com/raspberrypi/linux

如果下载较慢可以直接通过网盘下载,我已经把对应的工具上传到了网盘

链接:https://pan.baidu.com/s/12-wwPcKhdQPEt-U9QsZ8pQ
提取码:k13o

WPA3 packet capture:

下来是步骤,按照这个步骤一定会成功

/*首先在ubuntu上编译树莓派的内核,我用的是ubuntu 18*/
sudo apt-get install git bison flex libssl-dev
/*下载工具链*/
git clone https://github.com/raspberrypi/tools ~/tools 或  unzip tools-master.zip  echo PATH=$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin >> ~/.bashrc
source ~/.bashrc/*下载kernel*/
git clone --depth=1 --branch rpi-4.14.y https://github.com/raspberrypi/kernel  或 unzip linux-rpi-4.19.y.zip/*解压cypress*/
unzip cypress-fmac-v4.14.77-2019_1031.zipcd kernel
cp -r ../cypress/cypress-patch ./*给kernel打patch*/
for i in cypress-patch/*.patch; do patch -p1 < $i; done
按照默认选项一路回车就行
/*我粘贴了打完patch之后的最后一段*/
Hunk #1 succeeded at 353 (offset 298 lines).
Hunk #2 FAILED at 4376.
1 out of 2 hunks FAILED -- saving rejects to file drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c.rej
patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
Hunk #1 FAILED at 1059.Hunk #2 FAILED at 1127.
2 out of 2 hunks FAILED -- saving rejects to file drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c.rej
patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
Reversed (or previously applied) patch detected!  Assume -R? [n] Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c.rej
patching file include/linux/mmc/sdio_ids.h
Reversed (or previously applied) patch detected!  Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file include/linux/mmc/sdio_ids.h.rej/*有个冲突的地方*/
vi drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h
1011行的结构体重复定义,可以删掉或注释掉
/*** struct brcmf_dload_data_le - data passing to firmware for downloading*/
/*struct brcmf_dload_data_le {
*       __le16 flag;
*       __le16 dload_type;
*       __le32 len;
*       __le32 crc;
*       u8 data[1];
};*//*在kernel跟目录下*/
export KERNEL=kernel7
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
make -j2 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
mkdir /tmp/modules
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/tmp/modules modules_install/*把编译出来的image和module拷贝到树莓派*/
cd arch/arm/boot/
scp zImage pi@x.x.x.x:~/
cd /tmp/modules
tar czvf newmodules.tar.gz lib/
scp newmodules.tar.gz pi@x.x.x.x:~/**/*树莓派端*/**
mv zImage  kernelwifi.img
sudo cp kernelwifi.img /boot -rf
sudo vi /boot/config.txt
在最后一行加上
kernel=kernelwifi.imgtar -jxvf newmodules.tar.gz
/*备份一下已有的driver*/
mv /lib/firmware/brcm /lib/firmware/brcm_bak
scp cypress-fmac-v4.14.77-2019_1031.zip pi@x.x.x.x:~/
unzip cypress-fmac-v4.14.77-2019_1031.zip
sudo cp firmware/* /lib/firmware/brcm/
reboot
/*重启之后*/
pi@raspberrypi:~/hostap_2_6/wpa_supplicant $ uname -a
Linux raspberrypi 4.14.114-v7+ #2 SMP Fri May 17 21:57:57 CEST 2019 armv7l GNU/Linux

supplicant:

/*树莓派下下载*/
wget https://w1.fi/cgit/hostap/snapshot/hostap_2_6.tar.gz
tar xvzf hostap_2_6.tar.gz
# SCP 并且 从Cypress中 解压 hostap_2_6 patch
tar xvzf cypress-hostap_2_6-2019_0502.tar.gz
mv cypress-hostap_2_6 hostap_2_6
cd hostap_2_6/
for i in cypress-hostap_2_6/*.patch; do patch -p1 < $i; done
cd wpa_supplicant/
vi .config
CONFIG_IEEE80211W=y
CONFIG_SAE=y
CONFIG_SUITEB=ysudo apt-get install libssl-dev libnl-dev
vi ../src/drivers/driver_nl80211.c
# line 4969
/*              case WPA_KEY_MGMT_FT_IEEE8021X:mgmt = RSN_AUTH_KEY_MGMT_FT_802_1X;break;case WPA_KEY_MGMT_FT_PSK:mgmt = RSN_AUTH_KEY_MGMT_FT_PSK;break;*/
make

wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
eapol_version=1
ap_scan=1
fast_reauth=1
pmf=1
network={ssid="wpa3_sae"proto=RSNkey_mgmt=SAEsae_password="1234567890"
}

最后:

#杀掉现有的supplicant
sudo killall wpa_supplicant
#run
sudo ./wpa_supplicant -c wpa_supplicant.conf -dd -i wlan0

手动编译kernel和supplicant使树莓派支持wpa3相关推荐

  1. linux内核centos6.9,CentOS6.9手动编译并更新Kernel内核版本

    Kernel是Linux操作系统的核心部分.它由操作系统中用于管理存储器.文件.外设和系统资源的那些部分组成.Kernel是操作系统的核心,掌控着所有硬件设备的控制权. 内核就是系统上面的一个文件,这 ...

  2. linux 内核编译不能打字,linux系统升级后,手动编译的kernel无法启动问题

    linux系统升级后,手动编译的kernel无法启动问题 linux系统升级后,手动编译的kernel无法启动问题 做开发相关,需要编译3.18的kernel,x86_64的,但是我的deepin升级 ...

  3. 手动编译 lombok_Lombok,一种编译时Java注释预处理器,可最大程度地减少代码大小...

    手动编译 lombok 在本文中,我们将看到如何在常规Java代码中使用lombok来最大程度地减少代码长度和冗余. 什么是Lombok? Lombok,一个编译时注释预处理器,有助于在编译时注入一些 ...

  4. oracle数字类型ef映射,Entity Framework 学习中级篇5—使EF支持Oracle9i - ♂风车车.Net - 博客园...

    从Code MSDN上下载下来的EFOracleProvider不支持Oracle9i.但是,目前我所使用的还是Oracle9i.为此,对EFOracleProvider修改了以下,以便使其支持Ora ...

  5. ESP32编译自己的micropython固件以支持OV2640、SPIRAM、bluetooth等完整功能

    本文描述如何通过usercmodule(用户c模块)的方式,安装esp32-cam的OV2640摄像头驱动,并使固件具备支持4M SPIRAM.bluetooth等最新micropython内置模块. ...

  6. 多核学习工具箱Shogun的手动编译过程

    多核学习工具箱Shogun的手动编译过程 目录 多核学习工具箱Shogun的手动编写过程 一.写在前面的话 二.正式开始吧 三.可能有用的附录 四.写在最后的话 A.可能的更新1 B.可能的更新2 一 ...

  7. 编译kernel外部模块

    编译kernel外部模块 一.说明 二.编译外部模块 条件 语法 三.编译脚本 编写脚本 脚本的几种实现方式 四.编译包含头文件 kernel头文件放置规则 不同情况,头文件的使用 五.编译安装目录( ...

  8. CentOS6.9下手动编译并安装Python3.7.0

    CentOS6.9默认安装的python版本为2.6.6,若想安装python3以上版本,只能手工编译安装 下面介绍Python-3.7.0版本的手动编译并安装的步骤 1.下载Python-3.7.0 ...

  9. ntfs分区对linux的局限,如何使Linux支持NTFS分区

    大家都知道Linux默认是不支持NTFS分区类型的,但是如果你的计算机是双系统的话,使Linux支持NTFS分区是不是一件很开心的事!这样就可以轻松问Windows盘上面的资料了也可以在Windows ...

最新文章

  1. Clion配置Toolchains
  2. MySQL -- binlog 操作与恢复
  3. C# DataTable Compute方法的使用
  4. c#明华rf读卡器_RF通用开发包 明华RF读卡器 demo for c#(RF reader demo for c#) - 下载 - 搜珍网...
  5. 【转载】SI 9000 及阻抗匹配学习笔记(一)
  6. 微星B550M迫击炮,设备管理器 声卡不显示Realtek解决办法
  7. CFSSL: 证书管理工具:4:生成Kubernetes集群证书
  8. 工业相机和普通相机的区别详解_工业相机与普通相机的差别
  9. ArcHydroTools 10.5版本的安装与使用(附下载链接与教程)
  10. Tensorflow 2.x(keras)源码详解之第四章:DatasetTFRecord
  11. mysql utf8mb4 错_MYSQL保存特殊字符失败,用编码utf8mb4解决错误 Incorrect string value ...解决方法...
  12. 无线AP概念功率mW、灵敏度dBm、增益dBi
  13. leaflet运动轨迹
  14. SQL 实验项目6_存储过程
  15. 期货开户手续费怎么计算?
  16. Wi-Fi显示“无Internet,安全”是怎么回事?
  17. 归并排序(递归+非递归)
  18. Excel根据某一列的内容对另一列进行分组汇总
  19. 容器云时代,Commvault的变与不变
  20. 怎么用xshell等ssh连接方式连接自己的本地虚拟机

热门文章

  1. 记一次天池比赛 - 性能挑战赛道
  2. 360度全景VR摄像机初探
  3. leetcode:460. LFU最不常用缓存
  4. 4G全网通MTK6737开发板-安卓核心板通信LTE模块方案
  5. WPS Office应用大全
  6. 英语好不好,不影响做外贸
  7. 公交APP评测:谁是最好用的公交线路查询软件?
  8. Python基础模块:图像处理模块@PIL(批量分类处理图片及添加水印)
  9. CSS布局及实例仿LOL主页
  10. JS实战应用之做LOL领图标任务~