HCL:JetsonTK1
Nvidia Jetson TK1 是一款单板计算机。
技术细节
- Tegra K1 (Tegra124) SoC
- 4x ARM Cortex-A15 CPU
- 以太网
- HDMI
- USB
- SATA
- 迷你 PCIe 插槽(半尺寸)
- RS232
手动安装
烧录 U-Boot
下载 u-boot-jetson-tk1 包 并提取 u-boot、u-boot.dtb、u-boot-dtb-tegra.bin、u-boot-nodtb-tegra.bin、spl/u-boot-spl 到一个目录。
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,使用 U-Boot 提供的变量。根据需要调整 bootargs。
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}
将 boot.script 转换为 boot.scr
$ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n Boot-Script -d boot.script boot.scr
将 boot.scr 安装到 SD 卡,如果打算使用 SATA,则安装到 ext4 分区的根目录,否则安装到 boot 子目录。
将 Tumbleweed 安装到 SATA 磁盘
U-Boot v2015.07 尚未支持 SATA,因此您的内核必须放置在 SD 卡上。
将 rootfs 提取到 SATA 磁盘
# tar xjvf openSUSE-Tumbleweed-ARM-JeOS.armv7-rootfs.armv7l-*.tbz -C path/to/mount/point
待定:内核 (kernel-lpae)、dtb (dtb-tegra124)、initrd
安装 GRUB2
grub2-arm-uboot 包在 Tegra124 上未经修改无法正常工作。GRUB2 假定 RAM 从 0x00000000 开始,而 Tegra124 上 RAM 从 0x80000000 开始。
grub-core/Makefile.core.def:
arm_uboot_ldflags = '-Wl,-Ttext=0x88000000';
include/grub/offsets.h:
#define GRUB_KERNEL_ARM_UBOOT_LINK_ADDR 0x88000000
安装到 /boot/grub2/
# grub2-install
示例 boot.script
load ${devtype} ${devnum}:1 ${loadaddr} ${prefix}grub2/arm-uboot/core.img
bootm ${loadaddr}
u-boot-jetson-tk1 包尚未启用 CONFIG_API,这是 GRUB2 所必需的。症状是 GRUB2 在没有输出的情况下退出,并且 U-Boot 重置。
U-Boot v2015.10-rc3 在枚举存储设备时存在错误,导致只有 hd0 (eMMC) 可用,而 SD 卡不可用。症状是 GRUB2 进入其救援 shell,找不到其配置和模块。