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-ccimx8mm-dvk.boot.vfat or similar on the ConnectCore 8M Mini Development Kit.

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
      9901307   Image.gz-ccimx8mm-dvk.bin
        67455   ccimx8mm-dvk.dtb
          602   _ov_board_gpio-watchdog_ccimx8m-dvk.dtbo
          858   _ov_board_lvds_ccimx8m-dvk.dtbo
          731   _ov_board_user-leds_ccimx8m-dvk.dtbo
          710   _ov_som_bt_ccimx8m.dtbo
          656   _ov_som_mca-keypad_ccimx8m.dtbo
          605   _ov_som_wifi_ccimx8m.dtbo
         1857   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       9901319 Feb 21 20:20 Image.gz-ccimx8mm-dvk.bin
    -rwxr-xr-x    1 root     root           602 Feb 21 20:20 _ov_board_gpio-watchdog_ccimx8m-dvk.dtbo
    -rwxr-xr-x    1 root     root           858 Feb 21 20:20 _ov_board_lvds_ccimx8m-dvk.dtbo
    -rwxr-xr-x    1 root     root           731 Feb 21 20:20 _ov_board_user-leds_ccimx8m-dvk.dtbo
    -rwxr-xr-x    1 root     root           710 Feb 21 20:20 _ov_som_bt_ccimx8m.dtbo
    -rwxr-xr-x    1 root     root           656 Feb 21 20:20 _ov_som_mca-keypad_ccimx8m.dtbo
    -rwxr-xr-x    1 root     root           605 Feb 21 20:20 _ov_som_wifi_ccimx8m.dtbo
    -rwxr-xr-x    1 root     root          1857 Feb 21 20:20 boot.scr
    -rwxr-xr-x    1 root     root         67455 Feb 21 20:20 ccimx8mm-dvk.dtb
  3. Copy the file you want to the target, for example via SSH:

    $ scp Image.gz root@<cc8mmini-ip>:/mnt/linux/Image.gz-ccimx8mm-dvk.bin