Create Custom bootable system.img
  • 06 May 2024
  • 1 Minute to read
  • Dark
    Light
  • PDF

Create Custom bootable system.img

  • Dark
    Light
  • PDF

Article summary

Demo image (system.img)

There are two step to do:

  1. Prepare files
  2. create system.img

1. Prepare files

  • kernel Image
  • kernel modules
  • kernel dts
  • pinmux
  • change boot config for custom device-tree(overlay)

kernel Image

Copy from:

<nvidia_folder>/Linux_for_Tegra/sources/kernel/kernel-5.10/arch/arm64/boot/Image

to here

<nvidia_folder>/Linux_for_Tegra/kernel/

kernel modules

Copy from

<nvidia_folder>/Linux_for_Tegra/sources/kernel/modules/lib/

to here

<nvidia_folder>/Linux_for_Tegra/rootfs/

rootfs files

Copy anything you want to deploy to image to here

<nvidia_folder>/Linux_for_Tegra/rootfs/

device-tree

Copy from

<nvidia_folder>/Linux_for_Tegra/sources/kernel/kernel-5.10/arch/arm64/boot/dts/<target>.dtb 

to here

<nvidia_folder>/Linux_for_Tegra/rootfs/boot/<target>.dtb

pinmux (TEK-ORIN series for example)

Copy

Orin-tek-orin-a1-gpio-default.dtsi

to here

<nvidia_folder>/Linux_for_Tegra/bootloader/

Copy

Orin-tek-orin-a1-pinmux.dtsi

to here

<nvidia_folder>/Linux_for_Tegra/bootloader/t186ref/BCT/
For Orin-EVK pinmux

Remember, ORIN-EVK series has different pinmux file name.
Please rename it.
<SOM>-<board_name >-gpio-default.dtsi
-> tegra234-mb1-bct-gpio-p3767-dp-a03.dtsi
<SOM>-<board_name >-pinmux.dtsi
-> tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi

boot config for custom device-tree

<nvidia_folder>/Linux_for_Tegra/rootfs/boot/extlinux/extlinux.conf
LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
+     FDT /boot/<target>.dtb
-     APPEND ${cbootargs} quiet
+     APPEND ${cbootargs} 

2-1. create system.img

Follow Flash Step section: Create new system.img, DO NOT flash.

2-2. Create raw system.img can be dd into storage

Follow Flash Step section: Flash demo image .


Was this article helpful?