Follow these steps to update the Linux kernel image and device tree on the SD card.
Compiling Linux kernel images and device tree
- On 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 the device tree, open and edit arch/arm64/boot/dts/freescale/fsl-ls1043a-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-ls1043a-rdb.dtb is in arch/arm64/boot/dts/freescale/.
Copying the compiled kernel images and device tree to the SD card
- Plug the SD card into the Linux host machine.
- Mount the SD card partition that contains Linux kernel images and device tree.
- sudo mkdir <mount_location>
- 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
- 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>
- sudo umount /dev/sdX
- Plug the SD card into LS1043ARDB and boot the board to Ubuntu using the SD card.
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