我正在尝试在我的Avenger96(基于96Boards STM32MP157)板上建立WiFi连接。目标是在启动期间自动设置 WiFi 连接,这样就无需在每次启动后手动配置 WiFi。
我完成的步骤:
-
在 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 }
我使用wpa_passphrase
生成 psk,这是一个命令行工具,它生成wpa_supplicant所需的最小配置,如下所示:
$ wpa_passphrase WiFi xxxx
用于初始化wpa_supplicant并在启动时配置 WiFi 的脚本。我在以下路径
/meta/recipes-core/initscripts/initscripts-1.0/setup-wifi.sh
创建了一个自定义脚本"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
在
/meta/recipes-core/initscripts/initscripts-1.0.bb
编辑了包含"setup-wifi.sh"的"initscript bitbake 配方",并在构建后将其安装在/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 "
包含在
build/local.conf
文件中的IMAGE_INSTALL_append = " wpa-supplicant iw dhcp-client"
和CORE_IMAGE_EXTRA_INSTALL += " packagegroup-base-wifi kernel-modules"
。另外,DISTRO_FEATURES_append = " wifi"
我的自定义食谱中。接下来,运行bitbake
并使用映像启动主板。
但是,在启动时未配置 WiFi,当我尝试手动连接它时,出现以下错误:
unknown global field 'passphrase must be 8..63 characters'
当我使用# iw dev wlan0 link
检查连接时,它显示"未连接"。
任何人都可以让我知道我在这里缺少什么以及如何解决这个问题吗?您的帮助将不胜感激。
提前感谢!
PS:我正在使用Ubuntu 20.04和Yocto Dunfell branch作为构建系统。
错误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
的配置文件中删除字符串。