Yocto WiFi 配置,用于在启动时自动连接
Yocto WiFi configuration for automatic connection at boot time
我正在尝试在我的 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
处编辑了“initscript bitbake 配方”,其中包含“setup-wifi.sh”,并在构建后将其安装在 /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
检查连接时,它显示“未连接”。
任何人都可以让我知道我在这里缺少什么以及如何解决这个问题吗?非常感谢您的帮助。
提前致谢!
P.S:我正在使用 Ubuntu 20.04 和 Yocto Dunfell b运行ch 作为构建系统。
错误 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
.
的配置文件中删除字符串
我正在尝试在我的 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 的脚本。我在以下路径
创建了一个自定义脚本“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
在
/meta/recipes-core/initscripts/initscripts-1.0.bb
处编辑了“initscript bitbake 配方”,其中包含“setup-wifi.sh”,并在构建后将其安装在/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
检查连接时,它显示“未连接”。
任何人都可以让我知道我在这里缺少什么以及如何解决这个问题吗?非常感谢您的帮助。
提前致谢!
P.S:我正在使用 Ubuntu 20.04 和 Yocto Dunfell b运行ch 作为构建系统。
错误 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
.