Home Wiki > HCL:JetsonTK1
Sign up | Login

HCL:JetsonTK1

tagline: From openSUSE

The Nvidia Jetson TK1 is a single-board computer.

Technical details

  • Tegra K1 (Tegra124) SoC
    • 4x ARM Cortex-A15 CPU
  • Ethernet
  • HDMI
  • USB
  • SATA
  • mini PCIe slot (half size)
  • RS232

Manual installation

Flashing U-Boot

Download u-boot-jetson-tk1 package and extract u-boot, u-boot.dtb, u-boot-dtb-tegra.bin, u-boot-nodtb-tegra.bin, spl/u-boot-spl into a directory.

CROSS_COMPILE= tegra-uboot-flasher-scripts/build --boards jetson-tk1 import-uboot .
tegra-uboot-flasher-scripts/build --boards jetson-tk1 build-bcts-imgs
tegra-uboot-flasher-scripts/build --boards jetson-tk1 build-configs
tegra-uboot-flasher-scripts/tegra-uboot-flasher flash jetson-tk1

Boot script

Here's an example boot.script, using U-Boot-provided variables. Adapt the bootargs as needed.

setenv bootargs 'console=ttyS0,115200 root=/dev/sda2 rootfstype=btrfs rw rootwait'
load ${devtype} ${devnum}:1 ${kernel_addr_r}  ${prefix}zImage
load ${devtype} ${devnum}:1 ${fdt_addr_r}     ${prefix}dtb/tegra124-jetson-tk1.dtb
load ${devtype} ${devnum}:1 ${ramdisk_addr_r} ${prefix}initrd
bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}

Convert boot.script to boot.scr:

$ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n Boot-Script -d boot.script boot.scr

Install boot.scr to an SD card, into the root of an ext4 partition if you intend to use SATA, into a boot subdirectory otherwise.

Installing Tumbleweed to SATA disk

U-Boot v2015.07 does not support SATA yet, so your kernels must be placed onto the SD card.

Extract a rootfs to the SATA disk:

# tar xjvf openSUSE-Tumbleweed-ARM-JeOS.armv7-rootfs.armv7l-*.tbz -C path/to/mount/point

TBD: kernel (kernel-lpae), dtb (dtb-tegra124), initrd

Installing GRUB2

grub2-arm-uboot package does not work on Tegra124 unmodified. GRUB2 assumes that RAM starts at 0x00000000, while it's at 0x80000000 on Tegra124.

grub-core/Makefile.core.def:

  arm_uboot_ldflags       = '-Wl,-Ttext=0x88000000';

include/grub/offsets.h:

#define GRUB_KERNEL_ARM_UBOOT_LINK_ADDR		0x88000000

Installation to /boot/grub2/:

# grub2-install

Example boot.script:

load ${devtype} ${devnum}:1 ${loadaddr} ${prefix}grub2/arm-uboot/core.img
bootm ${loadaddr}

u-boot-jetson-tk1 package does not yet enable CONFIG_API, needed for GRUB2. Symptoms are GRUB2 exiting without output and U-Boot resetting.

U-Boot v2015.10-rc3 has a bug enumerating storage devices, leading to only hd0 (eMMC) being available, not the SD card. Symptoms are GRUB2 entering its rescue shell, not finding its config and modules.