From what I understand, the board can’t boot entirely from the SD card, but it is possible to keep the bootloader/kernel in internal storage and place the root filesystem on the SD card.
Here’s my situation: I built an image with Yocto, but it’s too large to fit on my CCIMX6ULSBC. I’d like to use the SD card to “expand” storage and run the rootfs from there.
The FAQ response sounds like it could solve my problem, but I’d appreciate more details if possible, such as:
How exactly do I put the rootfs on the SD card?
Which Yocto-generated files are required on the SD card?
Are there any U-Boot/kernel changes needed to point rootfs to the SD card?
Any guidance, examples, or best practices would be really helpful.
To use an SD card as the root filesystem (rootfs) on the ConnectCore 6UL, here are the general steps and considerations:
Prepare the SD Card:
Format the microSD card with a suitable filesystem (typically ext4 for Linux rootfs).
Copy the Root Filesystem:
After building your Yocto image, you will have a root filesystem archive (such as rootfs.tar.gz or similar) in your Yocto build output directory.
Extract this archive onto the SD card’s root partition. This will populate the SD card with the necessary root filesystem files.
Required Yocto-Generated Files:
The main file you need is the root filesystem archive (*.tar.gz or similar). Optionally, you may also want to copy kernel images or device tree blobs if you plan to boot them from SD, but typically only the rootfs is needed on the SD card for this purpose.
U-Boot Changes:
You need to configure U-Boot to boot from the SD card and set the root filesystem location accordingly. This usually involves setting the bootargs environment variable to point to the SD card device (e.g., root=/dev/mmcblk1p1 for the first partition of the second MMC device).
You may need to stop autoboot and manually set these variables, or update your U-Boot environment scripts to make this permanent.
Kernel Changes:
No kernel changes are typically required if your kernel already supports SD card and ext4 filesystems. Just ensure that the kernel command line (bootargs) points to the correct root device.