Changing Buildroot via Menuconfig

Hello! I’m trying to use the Polarfire SoC Buildroot SDK with an SD card, and I’m having some trouble getting my changes to properly get onto the SD card image. Here are the steps I’m following below:

  1. Following the build instructions in the PolarFire SoC Buildroot SDK Github repo (ending with make all DEVKIT=icicle-kit-es)

  2. Entering the Buildroot menuconfig with sudo make buildroot_rootfs_menuconfig and saving when prompted upon exit (I left the save location to its default).

  3. Following the steps in Polarfire-soc-buildroot-sdk with HSS - #2 by hugh.breslin
    (make clean && make DEVKIT=icicle-kit-es-sd
    sudo make DISK=/dev/sdX DEVKIT=icicle-kit-es-sd format-icicle-image
    sudo make DISK=/dev/sdX DEVKIT=icicle-kit-es-sd format-rootfs-image)

  4. Booting using SD card. Viewing the first serial port shows the SD card passing the attempt to select it (using HSS v0.99.31)

The Linux image that boots from the SD card does not have the features I configured. As an initial test, all I did for the first try was attempt to change the welcome banner from “Welcome to Buildroot” to something else.

Am I performing the workflow incorrectly?

Hi Everyone! Just want to give an update, as I believe I found the solution to the problem, and in the process I think I found an inconsistency between the online documentation/video tutorials and the necessary workflow.

As it turns out, there are two Buildroot menuconfig pages: buildroot_initramfs_menuconfig and buildroot_rootfs_menuconfig. I was under the impression that the buildroot_initramfs_menuconfig selection saved a Buildroot configuration to be used with the Icicle Kit’s eMMC, and that the buildroot_rootfs_menuconfig selection saved a Buildroot configuration to be used with an SD card, using the format-icicle-image and format-rootfs-image steps I used above (if this is an incorrect observation please let me know, as I have pretty limited experience with Make, and I could have easily missed something important).

However, I found that format-icicle-image uses the buildroot_initramfs working directory, so any new configurations saved using buildroot_rootfs_menuconfig will not make their way into an SD card image. Using buildroot_initramfs_menuconfig after the proper rebuilding procedure fixes this issue.

Additionally, it appears that entering DEVKIT=icicle-kit-es-sd just gets overridden to be DEVKIT=icicle-kit-es, so I’m unsure what the purpose of the SD version is, at least for the latest version of the Buildroot SDK.

I think it would be helpful to update the documentation to reflect the latest expected Buildroot procedure and the latest workflow for imaging eMMC and SD cards.

What are your thoughts?

Hi @MikeC96

thanks for pointing this out, we’re going to be making a move to Buildroot external soon and updating our documentation / videos to go along with this change. When we have this ready I’ll make sure your points are included there.

All of our Buildroot builds use initramfs which would explain why your rootfs changes didn’t make their way through to your new image.

1 Like

Great, thanks so much for the information! Looking forward to the updates :grin: