This topic shows how to deploy a customized kernel and/or device tree to your target device.

After customizing the kernel source code, you may either have built a full Digi Embedded Yocto image recipe or just the kernel recipe.

Program image files (full partition update)

If you built a full image recipe (dey-image-qt, for example), Digi Embedded Yocto generates an image file for the linux partition, such as:

  • dey-image-qt-xwayland-ccimx6qpsbc.boot.vfat or similar on the ConnectCore 6 Plus SBC.

The most straightforward way to program image files is from U-Boot console, using the update command. For example, to program via Ethernet:

  1. Save the image file to your TFTP exposed folder.

  2. Boot the target and press any key to stop the automatic U-Boot boot process.

  3. Run the update command to update the entire linux partition:

    => update linux tftp <image-filename>

See Program firmware from U-Boot for additional information on updating from U-Boot.

Program single files

If you built only the kernel recipe, you can find the kernel binary and device tree blobs in the tmp/deploy/images/ folder of your project. You can deploy these single files to your linux partition, which is formatted in FAT file system.

Update files from U-Boot

  1. Power on your target and press any key to stop automatic U-Boot boot process.

  2. List the contents of the linux partition:

    => ls mmc 0:1
      5727600   zimage-ccimx6qpsbc.bin
        54314   zimage-imx6qp-ccimx6qpsbc.dtb
        54425   zimage-imx6qp-ccimx6qpsbc-id160.dtb
        54425   zimage-imx6qp-ccimx6qpsbc-wb.dtb
         1045   boot.scr
  3. Run the updatefile command to update a file from the U-Boot console, for example via TFTP:

    => updatefile linux tftp <filename>

See Update files within partition, for additional information.

Update files from Linux

The linux partition is automatically mounted to /mnt/linux, but as a read-only file system.

  1. Remount the linux partition with read/write permissions:

    $ mount -o remount,rw /dev/mmcblk0p1 /mnt/linux
  2. List the contents of the linux partition:

    # ls -l /mnt/linux/
    -rwxr-xr-x    1 root     root          1516 Nov  2 22:07 boot.scr
    -rwxr-xr-x    1 root     root         73474 Nov  2 22:07 imx6qp-ccimx6qpsbc-id160.dtb
    -rwxr-xr-x    1 root     root         73474 Nov  2 22:07 imx6qp-ccimx6qpsbc-wb.dtb
    -rwxr-xr-x    1 root     root         73313 Nov  2 22:07 imx6qp-ccimx6qpsbc.dtb
    -rwxr-xr-x    1 root     root       6896168 Nov  2 22:07 zImage-ccimx6qpsbc.bin
  3. Copy the file you want to the target, for example via SSH:

    $ scp zImage root@<cc6plus-ip>:/mnt/linux/zImage-ccimx6qpsbc.bin