在 raspberry Pi 上构建 yocto 后缺少 dhcp 包

Missing dhcp package after yocto build on raspberry Pi

我最近使用 Yocto 构建工具为 Raspberry Pi 4 开发板创建了一个自定义最小图像,我的目标是通过我的桌面使用 ssh 协议控制开发板,为此我尝试将它连接到 wifi。我配置 wpa_supplicant.conf 并设法将我的树莓派连接到网络,但无法访问互联网。 wpa_supplicant -B -Dnl80211 -c /etc/wpa_supplicant.conf -iwlan0

我明白了:

wlan0 : Associated with XX:XX:XX:XX:XX:XX
wlan0: WPA: Key negociation completed with XX:XX:XX:XX:XX:XX [PTK=CCMP GTK=TKIP]
CTRL-EVENT-CONNECTED - Connection to XX:XX:XX:XX:XX:XX completed [id=0 id_str=]

然后我意识到 dhcpd 命令不起作用,并且库在我的图像上不可用。 我如何将这个库添加到我的图像上,我可以直接将它安装在我的微型 SD 上还是必须构建一个新图像?我的 bblayers.conf 看起来像这样

BBLAYERS ?= " \
  /home/ryan/poky/meta \
  /home/ryan/poky/meta-poky \
  /home/ryan/poky/meta-yocto-bsp \
  /home/ryan/poky/meta-raspberrypi \
  /home/ryan/poky/meta-openembedded/meta-oe \
  /home/ryan/poky/meta-openembedded/meta-python \
  /home/ryan/poky/meta-openembedded/meta-multimedia \
  /home/ryan/poky/meta-openembedded/meta-networking \
  /home/ryan/poky/meta-openembedded/meta-filesystems \"

并且在 meta 中有:recipes-connectivity,它有一个 dhcpcd 文件,应该在构建期间添加它吗?

dhcpcd 食谱位于:

meta-openembedded/meta-networking/recipes-connectivity/dhcpcd

其中包含您需要的描述:

SECTION = "console/network"
SUMMARY = "dhcpcd - a DHCP client"
DESCRIPTION = "dhcpcd runs on your machine and silently configures your computer to work on the attached networks without trouble and mostly without configuration."

所以,只需将它添加到您的图片中即可:

IMAGE_INSTALL_append = " dhcpcd"

如果你想要完整的server/client包

,poky中也有dhcp食谱
poky/meta/recipes-connectivity/dhcp/

此外,busybox 有自己的 DHCP 客户端 udhcpc

我假设 busybox 已集成到您的构建中,因此请检查 udhcpc 命令。