JetsonHacks

Developing on NVIDIA® Jetson™ for AI on the Edge

Install Grinch Kernel for L4T 21.3 on NVIDIA Jetson TK1

With the advent of Linux for Tegra (L4T) version 21.3 many of the issues that were exhibited in the 19.X release have been addressed. Installing the Grinch Kernel on L4T 21.3 increases the capabilities of the Jetson by adding support for a wide variety of external peripherals, addressing some of the still outstanding issues, and enabling different configuration parameters.
WARNING: You must have a version of L4T 21.X installed before adding the Grinch Kernel for 21.X described here. That means that you must have flashed the Jetson board to install a new OS before Grinch Kernel 21.X installation.
Here’s a video on what to expect during the install. Looky here:

Background

In an earlier post, Installing Grinch LinuxForTegra (L4T) on NVIDIA Jetson TK1, we discussed some of the issues with the earlier 19.X release. Several things have changed since that time, including the replacement of fastboot with uboot for the boot loader sequence. This means that it is easier to change the kernel on a flashed Jetson.

The way that USB 3.0 gets enabled is different also, and is simply changed by modifying /boot/extlinux/extlinux.conf. Here’s a blog entry on how to Enable USB 3.0.

These changes make it much easier to modify things on the Jetson side, rather than having to configure kernels and flash them from another Ubuntu host.

Many people, especially those coming from desktop platforms, wonder why the Jetson lacks initial support for a wide variety of external peripherals when removed from the box. The reason is that the Jetson is an embedded development kit, which means its main initial intent was to help developers build devices that include the Tegra K1 chip. If you think about it from that perspective, it wouldn’t make much sense to have extra drivers and cruft installed that a device doesn’t use. For example, if you were building a phone, it doesn’t make sense to have drivers for 20 different wireless cards that the phone doesn’t contain.

However, the Jetson is also powerful enough to be a general purpose desktop computer. Desktop computer users have certain expectations, including being able to add devices and drivers, or have support for common devices available. 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.

You can get more information about the Grinch Kernel for L4T 21.3 on the NVIDIA Jetson forum. The entry includes a list of changes and supported devices, and is also the place to get support for the Grinch Kernel.

Installation

There are detailed installation instructions on the Jetson forum. I’ve bundled those instructions into a little shell script which is available on the JetsonHacks Github account. Installation is straightforward. You will need to have ‘git’ installed. Git can be installed with the command:

$ sudo apt-get install git

To install the Grinch Kernel:

$ git clone https://github.com/jetsonhacks/installGrinch.git
$ cd installGrinch
$ ./installGrinch.sh

You will need to enter your password after the kernel files have finished downloading. After installation is complete, reboot your Jetson.

Note: The script does a simple ‘wget‘ to get the files from the server. Some people may have issues with firewalls and such. The script does not handle those cases, so you will have to modify the script or manually download the required files.

Note: There is also a file called “installGrinchNoDownload.sh” which is useful for the times when you either must manually download the kernel files, or if you have previously downloaded the kernel files, and only want to copy them to the correct place. The script expects the kernel files to be in the same directory where it is located.

After installation, you may delete the ‘installGrinch‘ folder if desired. It is useful to make a backup of the folder before deletion, so that you can install the Grinch again on a fresh flash without having to download the files again.

Facebook
Twitter
LinkedIn
Reddit
Email
Print

27 Responses

  1. Complete Jetson newbie here. I followed the steps in this guide and upon reboot I see the lines of text scrolling and then a NVIDIA splash screen at which point the screen goes blank. I cannot seem to reach the console from here.

    Any help or guidance would be appreciated.

      1. Similar problem here, I had the old 19.2 Kernel. I’m guessing you are going to say to flash the L4T 21.3 Kernel first, then the Grinch install. Is there a way to avoid having to flash, similar to the Grinch install?

        Cheers,

        Jon

        1. Hi Jon,

          Am I that predictable? That’s exactly what I was going to say.
          The Grinch install described here is for 21.X version of L4T. For the older L4T 19.X kernels, the Grinch Kernel 19.3.8 described in the Jetson forum at: http://bit.ly/1jcKBug is the correct one.
          Unfortunately the only way to upgrade the OS is to flash the board. Version 21.X has a different boot loader than the 19.X series of L4T.

          1. Hi, I have the same problem. What should I do now? After Installing Grinch for I can’t see anything on the screen.

            PS please help

  2. We have Atheros AR9462 Wireless+BT card and have installed Grinch using the instruction described here. The wireless portion is working well. However, we are not able to find the bluetooth device using “hcitool dev” and “dmesg | grep -i blue” does not show the bluetooth driver is being loaded. Does anybody have any success in using the Bluetooth with this card ? Thank you very much.

  3. I have tried “sudo apt-get install linux-firmware” but no luck there.

    I looked at the directory: /lib/modules/3.10.40-grinch-21.3.4/kernel/drivers/bluetooth/, and only see btusb.ko there. I would expect something like ath9kbt.ko there as well ? So it’s probably missing firmware driver issue, as you have suggested.

    I’ll ask this question on the Jetson forum. Thank you very much,

    Norman

    1. It was LT4 19.x. I reached where I should get the dekstop but except having dekstop I got black screen. I don’t understand why it isn’t getting to dekstop even though booting process goes fine like everytime.

      1. Hi Pradeep.
        This article is for installing the Grinch on L4T 21.3, following the instructions here probably caused bad things to happen.
        The black screen is probably from overwriting libglx.so. See:
        https://devtalk.nvidia.com/default/topic/775070/embedded-systems/-l4t-r19-x-notice-on-apt-get-upgrade-libglx-so-corruption/
        Sorry if this caused you any trouble, maybe you can suggest how to mark the article more clearly so this won’t happen to others.

  4. Hello, I installed Grinch 21.3, but I would like to go back to L4T 21.4 for driver development. What would be the easiest way to do so? I should be using u-boot, since I installed Grinch over L4T 21.4 without flashing. Thanks!

    1. Unless you save a copy of the kernel before Grinch replaced it, I would probably flash L4T 21.4 on the board. I’m sure that there are other ways to go around accomplishing this, but replacing the kernel on a running system can be tricky and do things that take a long time to find/debug. For me, it’s always been better just to bite the bullet and reflash, especially if I’m doing driver development which requires a base system anyway.

    1. Hi Allen,
      Unless you save a copy of the kernel before Grinch replaced it, I would probably flash L4T 21.5 on the board using JetPack. I’m sure that there are other ways to go around accomplishing this, but replacing the kernel on a running system can be tricky and do things that take a long time to find/debug. For me, it’s always been better just to bite the bullet and reflash, especially if I’m doing driver development which requires a base system anyway.

    1. I do not know how you are trying to install librealsense, but you must recompile the kernel with some patches applied for librealsense to work correctly. See:

      https://jetsonhacks.com/2016/06/20/intel-realsense-camera-installation-nvidia-jetson-tk1/

      which has links to the scripts for the patches on Github. There are also some tricks if you are trying to install it on ROS:

      https://jetsonhacks.com/2016/06/23/realsense-camera-ros-install-jetson-tk1/

      To replicate this on the Grinch Kernel will require additional work, as you will need the source, headers and patches that were applied to build the Grinch Kernel. For links, see:

      https://devtalk.nvidia.com/default/topic/906018/?comment=4893696

  5. Hello,when I finish Grinch installation, I didn’t find the wlan0 or any other wifi card with `ifconfig`.My kernel is:
    `# R21 (release), REVISION: 5.0, GCID: 7273100, BOARD: ardbeg, EABI: hard, DATE: Wed Jun 8 04:19:09 UTC 2016`
    Did I miss anything?

  6. I followed instructions to install Grinch 21.3.4 on top of L4T 21.3. L4T was working fine (with no network support), but after installing Grinch, and powering up my Jetson, nothing is coming up on the display. Like display is receiving no signal. Did I do something wrong? Will I have to reflash my Jetson (yet again)?

Leave a Reply

Your email address will not be published. Required fields are marked *

Disclaimer

Some links here are affiliate links. If you purchase through these links I will receive a small commission at no additional cost to you. As an Amazon Associate, I earn from qualifying purchases.

Books, Ideas & Other Curiosities