The linux partition contains the following elements:

  • The kernel binary.

  • Several device tree blobs for each SOM and carrier board variant.

  • A U-Boot bootscript to boot the system.

    The main purpose of the bootscript is to select the appropriate device tree blob depending on the detected SOM variant and carrier board. This element is provided by the bootloader Yocto recipe, not the kernel.

The linux partition is formatted depending on the storage media:

Media File system

microSD

FAT

NAND flash

UBIFS

To update the files from user space, mount the linux partition.

For that, you need to mount the /dev/ubi0_0 device as a ubifs file system.

~# mkdir /mnt/linux
~# mount -t ubifs /dev/ubi0_0 /mnt/linux/
~# ls /mnt/linux/ -l
-rw-rw-r-- 1 1000 1000 648 Sep 8 2016 boot.scr
-rw-rw-r-- 1 1000 1000 5939232 Sep 8 2016 zImage-ccimx6ulstarter.bin
-rw-r--r-- 1 1000 1000 29496 Sep 8 2016 zImage-imx6ul-ccimx6ulstarter-id129.dtb
-rw-r--r-- 1 1000 1000 29496 Sep 8 2016 zImage-imx6ul-ccimx6ulstarter-wb.dtb
-rw-r--r-- 1 1000 1000 28852 Sep 8 2016 zImage-imx6ul-ccimx6ulstarter.dtb

From your development machine, you can now copy the files to the target via ssh. For example:

scp zImage root@<cc6ul-ip>:/mnt/linux/zImage-ccimx6ulstarter.bin

When building from Yocto, all the elements are packaged together in a single file:

  • core-image-base-ccimx6ulstarter.boot.ubifs or similar on the ConnectCore 6UL SBC Express.

  • dey-image-qt-x11-ccimx6ulsbc.boot.ubifs or similar on the ConnectCore 6UL SBC Pro.

To update the entire linux partition from U-Boot console, save the image file to your TFTP server and use the update command in U-Boot:

=> update linux tftp <filename>