If you enable systemd (and disable sysvinit) and build an image, e.g. core-image-minimal, the image will currently boot up without enabling any network interfaces. This is because by default we do not seem to deploy a network configuration file under /etc/systemd/network - once I added one there with the appropriate content the network interface got brought up as expected. Of course the most basic fix would be to write a network config file that just enables DHCP on en*, and let users extend it via a bbappend for anything more complicated. There's a reasonably good guide to this config here: https://wiki.archlinux.org/index.php/systemd-networkd However, we should probably take this opportunity to take a closer look at how all of this fits together. We'd want to consider what happens when connman (or init-ifupdown) is installed, if anything. Also, would putting a config file under /etc go against any long-term stateless goals (assuming that is a goal)?
There's a system config location (/usr/lib/systemd/network/ maybe?) so installing things to /etc is not necessary.
For init-ifupdown, it provides init script /etc/init.d/networking which calls ifup -a to enable network interfaces. And in configure file /etc/network/interfaces, it has set: auto eth0 iface eth0 inet dhcp iface eth1 inet dhcp Then udhcpc is launched to configure the network interfaces. For connman, it provides built-in dhcp supports. In README of connman source codes, The following features are built-in into Connection Manager: - IPv4, IPv4-LL (link-local) and DHCP - IPv6, DHCPv6 and 6to4 tunnels
Fixed by https://git.openembedded.org/openembedded-core/commit/?id=d87efd14ce0471135c0aa7fd7b5da2808acb9c76