我正在尝试查看 https://layers.openembedded.org/layerindex/branch/dunfell/layers/ 并将
dhcp
和 dnsmasq
添加到我的图像中。
我的 local.conf 有以下行:
CORE_IMAGE_EXTRA_INSTALL_append = " dhcpcd dnsmasq openssh iptables"
但是,bitbake 失败并出现错误
ERROR: Nothing RPROVIDES 'dhcpcd'
图层索引:https://layers.openembedded.org/layerindex/branch/dunfell/recipes/?q=dhcp;显示多个条目,其中包括 openembedded-core
中的一个,我认为这是 meta
默认层。
在我的电脑中,poky/meta
显示:
classes
conf
COPYING.MIT
files
lib
recipes-bsp
recipes-connectivity
recipes-core
recipes-devtools
recipes-extended
recipes-gnome
recipes-graphics
recipes-kernel
recipes-multimedia
recipes-rt
recipes-sato
recipes-support
recipes.txt
site
Recipes-connectivity
列出:
avahi
bind
bluez5
connman
dhcp
inetutils
iproute2
iw
libnss-mdns
libpcap
mobile-broadband-provider-info
neard
nfs-utils
ofono
openssh
openssl
ppp
ppp-dialin
resolvconf
socat
ssh-pregen-hostkeys
wpa-supplicant
我发现以下重要文件:
dhcp/files/dhcpd.conf
dhcp/dhcp.inc
dhcp/dhcp_4.4.2.bb
令人惊讶的是,用
dhcp-client
代替 dhcpcd
似乎有效,但没有任何意义,因为没有带有 dhcp-server_...bb
的配方文件名
看来我的 yocto 应该找到 dhcp。那为什么会失败呢?
你正在使用很好的工具,
dhcpd
确实存在于openembedded-core
中,但这个元不是默认的(poky/meta
)!
这个
meta-networking
来自父元meta-openembedded
。
您可以在 GitHub(dunfell 分支)上找到它。
meta-networking/recipes-connectivity/dhcpcd
。
的配方描述中看到它
您需要克隆此元并将其添加到您的设置中(
gbitbake-layers
或手动)
您可以使用
bitbake-layers
添加/删除/创建图层。
添加图层:
bitbake-layers add-layer <path>
显示使用的图层:
bitbake-layers show-layers
您将在Yocto开发手册
中找到更多帮助您还可以手动修改您的
<builddir>/conf/bblayers.conf
文件以添加要添加的图层的路径。