I am trying to look at the https://layers.openembedded.org/layerindex/branch/dunfell/layers/ and add dhcp
and dnsmasq
to my image.
My local.conf has the following line:
CORE_IMAGE_EXTRA_INSTALL_append = " dhcpcd dnsmasq openssh iptables"
However, the bitbake fails with error ERROR: Nothing RPROVIDES 'dhcpcd'
Layer index: https://layers.openembedded.org/layerindex/branch/dunfell/recipes/?q=dhcp ; shows multiple entries including one in openembedded-core
which I believe is the meta
default layer.
In my pc, poky/meta
shows:
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
lists:
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
I found the following files of importance:
dhcp/files/dhcpd.conf
dhcp/dhcp.inc
dhcp/dhcp_4.4.2.bb
Surprisingly dhcp-client
in place of dhcpcd
seems to work which makes no sense as there is no recipe file name with dhcp-server_...bb
Looks like my yocto should find the dhcp. So why is it failing?
You are using the good tools, dhcpd
is indeed present in openembedded-core
, but this meta is not the default one (poky/meta
) !
This meta-networking
is from the parent meta meta-openembedded
.
You can find it on GitHub (dunfell branch).
The recipe is in meta-networking/recipes-connectivity/dhcpcd
.
You can see it on the recipe description on Openembedded Layer index
You need to clone this meta and add it your setup (gbitbake-layers
or manually)
You can use bitbake-layers
to add/remove/create layers.
To add a layer:
bitbake-layers add-layer <path>
To show layers used:
bitbake-layers show-layers
You will find more help in the Yocto development manual
You can also modify manually your <builddir>/conf/bblayers.conf
file to add the path of your layer you want to add.