Note: This post has been languishing in the drafts folder for a while. I just, this weekend, finished the install. Rather than going over the entire saga, here's the result and lessons learned.
I've had the Jetson TX1 f for a couple weeks and only recently had the opportunity to try to install Jetpack, the OS and tools package from Nvidia to be flashed onto the board. The installation, for a someone new to this process, is not necessarily a straight forward one. There were some obstacles I had to work around that weren't obvious. Hopefully some of the these experiences will help you avoid some of the same hurdles. And these issues started right at the beginning...
Initial Hardware Problems
Right at the beginning I was having challenges in just seeing what was happening. When I received my TX1, it wasn't blank. There was an initial OS installed. I didn't play around with it enough to see if a version of Jetpack was already flashed. I wanted to get it updated quickly to make sure it had all of the proper drivers. So I tried to connect the board to a spare monitor I had lying about. The monitor did not, however, have an HDMI input. Using an HDMI to DVI adapter I connected the monitor to the TX1 with no results. It turns out the HDMI out from the Jetson is not compatible with converters, at least not natively. So, next I tried connecting it to a television with an HDMI input. This time I was able to get video, but it was cropped around all edges significantly. I was unable to see the first 5 or 6 characters of the text that was streaming during boot up.
The issues with the converter and the television led to my first unexpected expense, a new monitor with HDMI input. Fortunately Fry's had one on sale, a little larger than I was hoping for, but it was less than $100, so I went ahead and bought it. While I was there I went ahead and picked up a USB3 hub knowing I would need it for use with the Zed camera later. With the new monitor I was able to see the output properly. This initial issue solved it was time to begin the installation.
While on the topic of hardware issues, there is also the matter of the keyboard/mouse. This is probably not related to the actual install, since it was not an issue with the re-flash (more on that later). But, the Logitech wireless keyboard/touchpad did not initially work with the board. I had to use a wired mouse and keyboard through the aforementioned USB hub. So, something to keep in mind.
To install Jetpack you will need to do so on a full, independent installation of Ubuntu 14.04. And by independent I mean you can't install it on a VM. It has to be an actual machine. I spent several hours trying to get it to run within an VM, including installing Virtualbox on my Windows 10 machine. In the end it was nothing but frustration.
So, next I turned to my laptop running Ubuntu 12.04. And there I had many of the same frustrations. I just could not get the installer to run. I put a fresh install of Ubuntu 14.04 onto the machine and had the same issue. It turns out the problem was me and my very poor understanding of Linux. In order to run the Jetpack installer, you have to precede the filename with a dot-slash ( ./ ).
I am not going to go over the whole installation process. However there are some things you will need to know going into it.
- You will need a developer account to download the package. But those are free. Nvidia just wants to know who is accessing their files.
- The Jetpack is not installed directly on the Jetson board. You will instead be installing the Jetpack on a host Ubuntu Linux 14.04 host system. In my case I was using a laptop which I have set aside specifically for my robotics experiments and development.
- As stated above, you cannot install Jetpack from a VM. For you Windows users it's a bit of a pain, but if you're going to be playing around in this more advanced robotics space, you're going to have to learn Linux anyway. Bite the bullet, get a cheap refurbished laptop, and install Ubuntu on it.
- Be sure you are connecting both the host system and the jetson board via ethernet cable to the same router/network. Jetson installation will fail if you try to use WiFi.
- Make sure the version of Jetpack is compatible with your chosen hardware. You're going to find, at least at the time of this writing, the newest, bleeding-edge version may not have the driver and software support you need. I ended up having to roll back from JetPack 2.2 for L4T to JetPack 2.1 for L4T because 64bit support just wasn't where it needed to be. The latest version may have fixed this, but at the time it was an issue.
During the setup I ran into an issue where the host system could not find the Jetson on the network. Jetpack installation is a multi-stage process. Once it has Ubuntu installed, it will restart the board and attempt to connect to it via ethernet. For some reason, on my first pass, the host failed to capture the IP for the Jetson. If this happens to you, reset the Jetson and boot it into the GUI. The user is "ubuntu" and the password is "ubuntu" by default. Once in, connect to your router as normal then use:
~$: sudo ifconfig
to find your ip address. Back on the host machine, run the installation again. It will skip everything that was done and take you to the point it tries to connect to the Jetson. When the system fails to find the IP address select to manually set the IP. This will bring up a new dialog box where you enter the target's ip, user, and password. It may take a couple minutes to connect, so let it do what it's going to do. Once it finds it, it will continue the installation.
Now, with all my woarnings and life lessons out of the way, follow directions at http://docs.nvidia.com/jetpack-l4t/index.html#developertools/mobile/jetp...
The next step is to install ROS and I'll be covering that in the next post.