Follow these steps to update the Linux kernel image and device tree on the SD card.
Compiling Linux kernel images and device tree
- On the Linux host, clone the repository with Linux kernel image and device tree: $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/linux
- $ cd linux
- $ git checkout -b <new branch> <start point>
- $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig lsdk.config
If you want to make changes to device tree, open and edit arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
- $ 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-ls1046a-rdb.dtb is in arch/arm64/boot/dts/freescale/.
Copying the compiled kernel images and device tree to SD card
- Plug the SD card into the Linux host machine.
- List the disks that are accessible to the computer: $ cat /proc/partitions
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.
- Mount the SD card partition that contains Linux kernel images and device tree:
$ sudo mount /dev/sdX <mount_location>
- Replace Image, Image.gz, and fsl-ls1046a-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-ls1046a-rdb.dtb <mount_location>
- sudo umount /dev/sdX
- Plug the SD card into LS1046ARDB and boot the board to Ubuntu using the SD card: => cpld reset sd
In boot log, you’ll see:
Board: LS1046ARDB, boot from SD
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.