1

我正在尝试在我的 Avenger96(基于 96Boards STM32MP157)板上建立 WiFi 连接。目标是在启动时自动设置 WiFi 连接,这样就无需在每次启动后手动配置 WiFi。

我已经完成的步骤:

  1. 在 wpa_supplicant.conf-sane 中添加network了部分,如下所示poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant

    ctrl_interface_group=0
    update_config=1
    
    network={
            ssid="WiFi"
            #psk="xxxx"
            psk=bcc0f1e055c895febe6f4766e90a7972334b2dac4dda015876a185a8bd577a04
    }
    
    

我使用 make 生成了 psk wpa_passphrase,这是一个命令行工具,它生成 wpa_supplicant 所需的最小配置:

$ wpa_passphrase WiFi xxxx
  1. 用于初始化 wpa_supplicant 并在启动时配置 WiFi 的脚本。我在以下路径创建了一个自定义脚本“setup-wifi.sh” /meta/recipes-core/initscripts/initscripts-1.0/setup-wifi.sh

    ifconfig wlan0 10.233.174.16   #Set the static IP address, should be unique
    wpa_passphrase WiFi  xxxx> /etc/wpa_supplicant.conf
    route add default gw 10.233.174.254  #Router IP address
    wpa_supplicant -B -i   wlan0    -c    /etc/wpa_supplicant.conf
    echo “nameserver 8.8.8.8” >> /etc/resolv.conf
    echo “nameserver 10.233.174.254” >> /etc/resolv.conf
    : exit 0
    
    
  2. /meta/recipes-core/initscripts/initscripts-1.0.bb编辑了包含“setup-wifi.sh”的“initscript bitbake recipe” ,并/etc/initscripts在构建后将其安装在目录中。

    file://setup-wifi.sh \
    "
    do_install () {
    install -m 0755    ${WORKDIR}/setup-wifi.sh     ${D}${sysconfdir}/init.d
    
    update-rc.d -r ${D} setup-wifi.sh start 99 2 3 4 5 .
    }
    
    MASKED_SCRIPTS = " \
    setup-wifi \
    "
    
    
  3. 包含在文件中IMAGE_INSTALL_append = " wpa-supplicant iw dhcp-client"。此外,在我的自定义食谱中。接下来,使用映像运行并启动开发板。CORE_IMAGE_EXTRA_INSTALL += " packagegroup-base-wifi kernel-modules"build/local.confDISTRO_FEATURES_append = " wifi"bitbake

但是,在启动时未配置 WiFi,当我尝试手动连接时,出现以下错误:

unknown global field 'passphrase must be 8..63 characters'

当我使用 检查连接时# iw dev wlan0 link,它显示“未连接”。

谁能让我知道我在这里缺少什么以及如何解决这个问题?您的帮助将不胜感激。

提前致谢!

PS:我使用 Ubuntu 20.04 和 Yocto Dunfell 分支作为构建系统。

4

1 回答 1

0

该错误unknown global field 'passphrase must be 8..63 characters'令人困惑。

如果密码是正确的,那么我认为某些配置文件包含完全相同的字符串passphrase must be 8..63 characters而不是一些有用的值,因此错误unknown global field 'passphrase must be 8..63 characters

您可以使用grep -rn "characters" /etc/包含passphrase must be 8..63 characters.

于 2022-01-05T04:09:59.433 回答