Note: This is for L4T 19.X. For later versions (such as the current 21.X series), please see: Install Grinch Kernel for L4T 21.3 on NVIDIA Jetson TK1
As a young development environment the NVIDIA Jetson TK1 exhibits a lot of promise with lots of raw performance for its form factor and intended use, with low power consumption to boot. But as is typical with most of these types of products, the “out of the box” experience needs some help. Grinch can help in this area.
There a couple of glaring holes. First, the Jetson has a USB 3.0 port. However, it is only enabled as a 2.0 port(!), which is much slower. To change the setting, the Jetson has to be reflashed.
The second missing part is support out of the box for WiFi or Bluetooth. For people coming from commodity PCs, tablets, phones and such this is a little confusing. Usually one just installs a driver and the device starts to work. In the case of the Jetson, the actual signals on the board need to be played with a little, as well as having the driver issue. For development kits, most people actually prefer that there is as little extra overhead as possible which means there aren’t any extra drivers or such loaded.
Fortunately the Jetson community, led by user Santyago built a new Linux kernel named Grinch which includes a lot of the features to which most desktop users are accustomed.
There’s always a certain amount of trepidation when you flash a device, especially for the first time. Unfortunately in my case, running the flash program on an older Macintosh running VirtualBox, it takes 3 hours to flash the Jetson which adds to the anxiety. Note: My understanding is that it takes about 45 minutes on a modern setup. I always assume that I’m going to brick it anyway, and have been nearly pleasantly surprised each time it works after flashing. I’ll note that there have been a couple of times I bricked it, but that is almost always the result of not following the recipe, or forgetting to use “sudo” when applying the binary. Be brave, and after you brick it you can at least tell yourself you were brave.
As a software person myself, I know that you have to treat hardware as being beneath contempt anyway. Just assume that it won’t work to begin with, and celebrate when you actually get it to work at all.
A couple of notes: First, the Grinch does not appear to enable 3.0 USB by default. If you want that feature, you’ll also need to Enable support for USB 3.0 during the preparation of the flashing process. Second (IMPORTANT), after the Jetson is flashed if you update software on the Jetson a file called libglx.so will be replaced, which means that it’s game over after that. libglx.so is the NVIDIA Jetson specific graphics driver. To prevent this, enter a Terminal and enter:
$ sudo apt-mark hold xserver-xorg-core
BEFORE you allow the system to update itself or do $ apt-get upgrade. Here’s a deeper discussion: Notice On apt-get upgrade: libglx.so Corruption.
Grinch Installation Instructions
Here are the step by step instructions that I use:
which I derived from user Todd Stellanova on Github.
I then run the script:
on the Jetson which installs git and the Chromium web browser, as well as applies the aforementioned libglx.so workaround. You’ll probably want to mark the permissions for that shell file as executable (you can do this from the file properties dialog box) before you execute it.
Alternatively, instructions for installation of Grinch are in the NVIDIA forum here: [CustomKernel] The Grinch 19.3.6 for Jetson TK1. That is also a good community to ask questions if you encounter any issues.