I’ve connected my TK1 in recovery mode, connected the micro-USB.
I ran the following commands, exactly as the instructions suggest:
$ sudo tar xpf Tegra124_Linux_R21.5.0_armhf.tbz2
$ cd Linux_for_Tegra/rootfs
$ sudo tar xpf …/…/Tegra_Linux_Sample-Root-Filesystem_R21.5.0_armhf.tbz2
$ cd …/
$ sudo ./apply_binaries.sh
Then, I hold down the force recovery button while pressing the reset button on the board. Then I run
So everything looks fine to me. But when I connect a monitor via an HDMI-to-DVI cable and reset the board, I see nothing. If I connect an ethernet cable, the board shows up in my router’s LAN page, with the right MAC address. I can ping the IP (192.168.0.14), which is promising, but unfortunately when I try to ssh into ubuntu@192.168.0.14, the board doesn’t respond.
How should I go about debugging this issue? Does the output of the flashing script indicate that the flash was successful? Is ssh disabled by default and if so, how can I enable it before flashing?
The flash log shows success. I would have probably increased the partition size with “sudo ./flash.sh -S 14580MiB jetson-tk1 mmcblk0p1”, but it shouldn’t cause any failure. It is possible that if there is not enough space to write temp files some operations will fail (such as GUI login, or perhaps network logins writing temporary files). You might reflash with more available storage just to check.
About ssh…if ssh has successfully connected at some previous time there is a “fingerprint” of that system saved in the connection client’s “~/.ssh/known_hosts” file. Flashing can change the Jetson’s fingerprint because keys may have changed. In that case your client will reject the Jetson as a possible man-in-the-middle attach. I do not think this happened since it didn’t tell you it is rejecting the connection, but it is worth mentioning. You can find out more about the ssh failure though via the “-v” verbose option (you can add up to 3 “-v” to be even more verbose, e.g., “-vvv”). Normally a number of protocols and tests fail since there are a list of steps, but you may see something useful with this.
If you really want to see what is going on without re-flashing I’ll suggest you get a serial console connected (the 9-pin D-sub connector). Settings would be 115200 speed, 8N1.
I’ve reflashed with the increased partition size, but I’m getting exactly the same problems. I’ve added the verbose SSH option show that it gets stuck “Connecting to 192.168.0.14”, and then times out, so I guess the port is closed or the SSH server isn’t running, or the OS isn’t booting properly. It seems strange that it responds to ping, though.
I’ll get a serial console connector and go from there. Thank you for the help.
If a firewall were to block the port then it would immediately close connection attempt. The fact that it waits means it is reaching the Jetson, but the Jetson is not responding (“the lights are on, but nobody is home”). This is sort of a long shot, but the machine you did the flash from…was the file system type ext4? Or was it a VM on top of a non-Linux file system type? From the directory you ran the flash in you can find out with “df -H -T .” to see both available system and type.
If this does not give any indication, then it may be time to connect the serial console to see what is going on.
So it turns out I was building and flashing the image from a btrfs filesystem.
My root filesystem is ext4 though (Debian Stretch), so I tried doing it there (started from scratch with the tar files) but it’s still not working. It’s actually an old board that’s been sitting unused in the box for a few years. Maybe it’s faulty.
If it managed to flash there is a strong chance it isn’t faulty (a lot has to be functional for flash to complete). On your host what is the output of:
gawk '/ext4/,/[}]/' mke2fs.conf
Mostly I’m looking for incompatible 64-bit options, including “64bit” and “metadata_csum”.
There is a way to enter those options to not use within the flash.sh script where it does the mkfs (I’m not where I can see the flash.sh script at the moment though). There is an option with a carrot “^” symbol which can be used to disable 64bit and metadata_csum without editing “/etc/mke2fs.conf” (a “-O ^64bit,^metadata_csum” type option). However, you can simply eliminate those from mke2fs.conf while you do the flash, and then put them back in (I advise saving a backup file if you alter a system file). If you find the man page for the mkfs command in the flash.sh script you can find the “^” option which is explained (search for “^”).