Flatcar: Raspberry Pi no network after PXE boot with flatcar due to missing kernel

Description

Support has already been added for RPI4 network in #227 . However, when using PXE booting, we need an additional flag called CONFIG_MDIO_BCM_UNIMAC. More details can be found here https://bugzilla.redhat.com/show_bug.cgi?id=1943983

Impact

No ethernet adapter when network booting (either PXE or UEFI HTTP).

Environment and steps to reproduce

boot http://boot.netboot.xyz/ipxe/netboot.xyz-arm64.efi manually through the HTTP Network boot gui with the UEFI firmware for RPI4. Then when booted into the menu. Select Execute iPXE shell

Type in the following:

kernel https://alpha.release.flatcar-linux.net/arm64-usr/current/flatcar_production_pxe.vmlinuz initrd=flatcar_production_pxe_image.cpio.gz flatcar.config.url=http://urldoesntmatter flatcar.first_boot=yes console=tty0 console=ttyS0 flatcar.autologin
initrd https://alpha.release.flatcar-linux.net/arm64-usr/current/flatcar_production_pxe_image.cpio.gz
boot

You will see messages such as:

[  133.316150] Unable to find mii
[  133.319239] bcmgenet BCM6E4E:00 enabcm6e4ei0: failed to connect to PHY

Expected behavior The network driver comes up.

Additional information Enabling the flag would fix the support for PXE alongside the support already #227

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 16 (8 by maintainers)

Commits related to this issue

Most upvoted comments

@jepio My machine is currently rebuilding everything. This will take a while and now I am wondering how both flatcar_production_pxe.vmlinuz and flatcar_production_pxe_image.cpio.gz are generated. Could you point me in the right direction?

EDIT: I guess it is something similar to ./image_to_vm.sh --from=../build/images/arm64-usr/developer-latest --format=pxe

./build_image builds a generic image, that is then converted to platform (or deployment) specific images by running ./image_to_vm.sh. You have the right command.

There is currently something wrong with dependencies and the initramfs does not get rebuilt when dracut is updated, sorry about that. You need to run an explicit emerge-arm64-usr coreos-kernel between build_packages and build_image to force the kernel to be rebuilt.

@raballew try kinvolk/coreos-overlay#1105.

To summarise, we would need to:

Adding a label “good first issue” for users who want to accustom themselves with building custom images, assuming that both the kernel config change as well as the dracut version bump will be straightforward.