• WPA-Supplicant 极简交叉编译


    问题一:
    Could not connect to wpa_supplicant - re-trying
    答:
    1、wpa_supplicant 需要首先启动 (不需要关注是否能够连上设备)
    举例:wpa_supplicant -Dnl8021 -iwlan0 -c /etc/wpa_supplicant.conf
    2、确认 /var/run/wpa_supplicant/wlan0 权限是不是 root:root
    3、这时候就可以进行测试了
    问题二:
    WPA: 4-Way Handshake failed - pre-shared key may be incorrect
    可以通过以下几点逐一排查
    1、密码是否正确
    2、确认芯片底层是否支持对应协议,(一些老芯片仅能支持 WPA/WPA2 但不支持 WPA2-PSK 等协议)
    3、对接路由器的协议以及信号类型,(老芯片不支持 5G 信号仅能支持 2.4G 信号)
    4、最后根据 wpa_supplicant 自带的 example 尝试调整各个参数(下载后直接看)

    注意: 交叉编译内容应该与交叉编译器时间相近
    下载以下内容:
    expat-2.4.8
    dbus-1.14.0
    libnl-3.7.0
    openssl-1.1.1
    wpa_supplicant 

    逐一编译以下内容:

    ## expat-2.4.8
    1. # 编译脚本, 放到文件夹内
    2. echo "xorg_cv_malloc0_returns_null=yes" > arm-linux.cache
    3. ./configure --cache-file=arm-linux.cache --prefix=/home/worker/workspace/wifilib \
    4. --host=arm-linux-gnueabihf
    5. rm arm-linux.cache
    6. make 
    7. make install

    ## dbus-1.14.0
    1. make distclean
    2. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/worker/workspace/wifilib
    3. export PKG_CONFIG_PATH=/home/worker/workspace/wifilib/lib/pkgconfig
    4. ./configure --prefix=/home/worker/workspace/wifilib --host=arm-linux-gnueabihf --without-x \
    5. CFLAGS=-I/home/worker/workspace/wifilib/include LDFLAGS=-L/home/worker/workspace/wifilib/lib
    ① 运行脚本
    配置完成之后输出,要点请检查和确认
    ② 执行 make & make install 
    ## libnl-3.7.0
    1. ./configure --prefix=/home/worker/workspace/wifilib --host=arm-linux-gnueabihf
    2. make
    3. make install
    ## openssl-1.1.1q 
    注意——32位 arm 芯片
    1. setarch i386 ./config --prefix=/home/worker/workspace/wifilib --cross-compile-prefix=arm-linux-gnueabihf- \
    2. no-asm shared
    注意——64位 arm 芯片
    1. ./config --prefix=/home/worker/workspace/wifilib --cross-compile-prefix=arm-linux-gnueabihf- \
    2. no-asm shared
    ① 运行脚本
    ② 移除 64bit / 32bit 出现的 -m64/-m32 
    ③ make & make install
    ## wpa_supplicant
    ① 解压后,进入 -> wpa_supplicant-2.10 -> wpa_supplicant
    ② 运行(我是 linux 平台) {cp    defconfig     .config}
    ③ 修改 Makefile
    1. 添加以下内容:
    2. CFLAGS += -I/home/worker/workspace/wifilib/include
    3. LIBS += -L/home/worker/workspace/wifilib/lib
    4. CC=arm-linux-gnueabihf-gcc
    ④ 调整以下 wifilib 库中文件
    1)把 wifilib/lib/dbus-1.0/include/dbus 下的文件复制到 wifilib/include/dbus-1.0 里
    ⑤ wpa_supplicant-2.10 -> wpa_supplicant 启动终端 然后运行以下指令
    1.   export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/worker/workspace/wifilib
    2.  export PKG_CONFIG_PATH=/home/worker/workspace/wifilib/lib/pkgconfig
    3.  make -j32
    当前目录底下就会生成 wpa_cli & wpa_supplicant & wpa_passphrase 三个文件

  • 相关阅读:
    [动态规划] (十) 路径问题 LeetCode 174.地下城游戏
    解决在CMD中执行python脚本时显示No module named ‘requests‘的问题
    事务_基本演示和事务_默认自动提交&手动提交
    sass内置函数汇总
    nacos解决启动报错 Unable to start embedded Tomcat
    车间动态调度的研究方法
    EXPLAIN详解(MySQL)
    AndroidStudio 安装与配置【安装教程】
    MFC Windows 程序设计[223]之统计图的生成(附源码)
    傻白入门芯片设计,先进封装技术(五)
  • 原文地址:https://blog.csdn.net/qq_24890953/article/details/126544011