LS1043ARDB - How to update Linux kernel and device tree on SD card

Document created by Swati Gupta Employee on Jul 3, 2019Last modified by Swati Gupta Employee on Oct 3, 2019
Version 5Show Document
  • View in full screen mode

Follow these steps to update the Linux kernel image and device tree on the SD card. 

 

Compiling Linux kernel images and device tree

  1. On Linux host, clone the repository with Linux kernel image and device tree: $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/linux
  2. $ cd linux
  3. $ git checkout -b <new branch> <start point>
    • For example, git checkout -b LSDK-19.06-V4.14 LSDK-19.06-V4.14

      where LSDK-19.06-V4.14 refers to a tag in the format LSDK-<LSDK version>-V<kernel version>
  4. $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig lsdk.config

    If you want to make changes to the device tree, open and edit arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts

  5. $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

The binary kernel image Image and compressed kernel image Image.gz are in arch/arm64/boot/.
The device tree blob fsl-ls1043a-rdb.dtb is in arch/arm64/boot/dts/freescale/.

Copying the compiled kernel images and device tree to the SD card

  1. Plug the SD card into the Linux host machine.
  2. Mount the SD card partition that contains Linux kernel images and device tree.
    1. sudo mkdir <mount_location>
    2. sudo mount /dev/sdX <mount_location>

      Use the command cat /proc/partitions to see a list of devices and their sizes to

      make sure that the correct device names have been chosen.

       

      The SDHC storage drive in the Linux PC is detected as /dev/
      sdX, where X is a letter such as a, b, c. Make sure to choose the correct
      device name, because data on this device will be replaced.

       

      If your Linux host machine supports read/write SDHC card directly without
      an extra SDHC card reader device, the device name of SDHC card is typically
      mmcblk0.

  3. Replace Image, Image.gz, and fsl-ls1043a-rdb.dtb on the SD card with the new files compiled in the steps above.

    sudo cp /linux/arch/arm64/boot/Image /linux/arch/arm64/boot/Image.gz /linux/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dtb <mount_location>

  4. sudo umount /dev/sdX
  5. Plug the SD card into LS1043ARDB and boot the board to Ubuntu using the SD card. 

If U-Boot does not find LSDK on the SD card, it will boot TinyDistro from lsdk_linux_arm64_tiny.itb stored on the SD card. You can confirm that Linux kernel and device tree is updated on the SD card by running this command and checking the timestamp.

root@localhost:~# uname -a
Linux localhost 4.14.104 #2 SMP PREEMPT Wed Aug 21 17:14:01 IST 2019 aarch64 aarch64 aarch64 GNU/Linux

Attachments

    Outcomes