EOL for NVIDIA Jetson TK1 Developer Kit

The Jetson TK1 Developer Kit is approaching EOL. Final orders from distributors have been received, and NVIDIA will continue shipping Jetson TK1 Developer Kits through April, at which point those orders will be fulfilled. JetPack 3.1 is the final JetPack to support Jetson TK1 Developer Kit.

Note that NVIDIA Tegra K1 SoC will remain available through January 2024.
L4T sustaining releases for Tegra K1 will continue to be made as deemed necessary. (L4T 21.6 was the most recent release.)

According to this page:

JetPack 3.3 still supports the TX1.
Can you please confirm?

Thanks.

Yes, JetPack 3.3 supports TX1. As noted above, the last JetPack version to support TK1 was JetPack 3.1.

Derp. Sorry I misread TK1 for TX1. My apologies. Feel free to delete my posts.

JetPack 3.1 is no longer available for download. Please confirm if this is an oversight or if this issue can be remedied. Thank you.

The 3.1 release was moved to the archive, so you need to look for it here:

https://developer.nvidia.com/embedded/downloads/archive#?search=jetpack

Added note: To see what is in https://developer.nvidia.com/embedded/jetpack-archive you probably need to log in and then click on the link again (forwarding doesn’t work right).

Ah, thank you. It appears to work now.

Linuxdev, am I crazy or was that not working when we checked last?

You are not crazy…I cheated and asked someone about fixing the link :P

I have a few questions. It says this device is available until 2024, however, trying to flash the emmc has been an outdated mess at best. First I had to downgrade from Ubuntu 20 to 16, the sdk manager doesn’t support the tk1, and every time I use the .run file it opens and immediately says error with little to no troubleshooting or help available. From my research it could be the VM. It could be a static IP it doesn’t like possibly because of said VM.

Isn’t there an easier way to do this? And if not, WHY?
I spent 3 hours just trying to install the OS before giving up. I can’t even use grub or anything to boot from SD, it forces you to manually swap the boot, which is a tall order when my light dm is failing for some reason and it won’t boot the board. I’ve been completely trapped by this process and it really feels unnecessary, especially when every other device works in sdk manager.

Any help?

Just some random thoughts which you might find useful…

  • GRUB is only for PCs with a BIOS. Embedded systems don’t have a BIOS, so even if GRUB were available for the 32-bit ARM architecture, it wouldn’t work. This is done with software instead.
  • VMs could work, but very often fail to correctly pass through USB. The USB will disconnect and reconnect during flash, and so it is up to the VM itself whether this works. If you know enough about the VM to cause USB to correctly pass through (even if disconnecting and reconnecting), then it would probably work. However, VM instructions vary with the VM and are up to the VM software to support this, not the Jetson.
  • The device being available until 2024 basically implies the SoC, the chip itself, and not the TK1 dev kit. During the time of the TK1 the dev kit was considered a reference design, and manufacturers would purchase the SoC and build their own design based on the dev kit. Manufacturers know that if their product is successful, then it can continue production until 2024.
  • IP address pass-through has similar issues to USB pass-through in a VM. The Jetson has no way of knowing about the VM and has no way of configuring it. VMs are not drop in replacements to an actual operating system and do not behave correctly unless the end user has configured this. The VM is not supported because the flash software has no control or knowledge of the VM, but if networking is set up by the end user, then it would work.
  • Products newer than the TK1 tend to be sold in modules which plug in to a carrier board. Some of them have larger modules, others use the smaller 168-pin DIMM form factor. Commercial products tend to build their own carrier board for the module. One current supplier of custom TK1 (in DIMM format) and carrier board (for their DIMM format modules) is Toradex.
  • The TK1 dev kit itself has not been sold for quite some time and is already end-of-life.
  • For cases where JetPack is used consider flashing on command line. JetPack is just a front end for the actual flash software. The range of Linux host releases which work for flash without the GUI front end is a much larger list than just the Ubuntu release you found is used for JetPack.
  • Actual flash is via the “driver package” in combination with the “sample root filesystem”. When NVIDIA direct hardware access drivers combine with the sample rootfs (which happens to be purely an Ubuntu release), this becomes known as “Linux for Tegra” (“L4T”). Each JetPack is listed as working with a given L4T release. The most recent L4T release for the TK1 dev kit is R21.8.
  • Flash only installs the operating system. Optional content, e.g., CUDA libraries, are usually a separate step. Instead of manually downloading this and sending to the Jetson is what JetPack is used for (SDK Manager is a network expansion on top of JetPack, but SDKM did not exist during the life of the TK1, so it is just JetPack and not as convenient as SDKM on top of JetPack). If you have an up-and-running TK1, then you can run JetPack at any later date and install optional packages if you uncheck flash. Optional content is added to a fully running Jetson, and does not use recovery mode. One uses recovery mode only for flashing, and not for optional package install.
  • Command line install summary (assumes you have a lot of spare disk space on the host PC…I used Fedora for this back in the day since JetPack did not support Fedora):
    1. Unpack the “driver package” as a regular user (this creates a “Linux_for_Tegra/” directory).
    2. Go to “Linux_for_Tegra/rootfs/”. Unpack the “sample rootfs” there using sudo for root permissions during the unpack.
    3. cd back to “Linux_for_Tegra/”. Add the NVIDIA content via “sudo ./apply_binaries.sh”.
    4. You can now flash as many times as you want, and do not need to repeat the above steps.
    5. Example flash command from “Linux_for_Tegra/”:
      sudo ./flash.sh jetson-tk1 mmcblk0p1
    6. If desired you can then use the JetPack release related to the L4T release to add other package content while the Jetson is fully booted and networked with the PC. Checking if ssh works is a good “acid test” since ssh is used by JetPack for this. Just make sure the board is not in recovery mode since recovery mode is only for flashing.
  • Recovery mode does not change the Jetson in any way other than making it available as a custom USB device. That device is only understood with a custom driver, and this is what the “driver package” is, which in turn runs on the host PC.

If you do have errors it is best to copy and paste the full error here. One method of command line flash which also creates a log of the flash is this:
sudo ./flash.sh jetson-tk1 mmcblk0p1 2>&1 | tee log_flash.txt
(then you could attach “log_flash.txt” to the forum thread)