Upgrading from a first-generation Jetson Nano

Greetings!

I have an original, (first generation) Jetson Nano that I bought, (awhile ago!), thinking that I could integrate it into my GoPiGo robot as a beefier replacement for the then-lame Raspberry Pi 3.n series boards.

As a wise man once said, “The best laid plans of mice and men often go down the tubes”[1] and the Jetson Nano project was delayed. . . Now I discover that my shiny new, (ancient), Jetson Nano is no longer supported, the SDK depends on a version of Ubuntu that hasn’t seen the light of day since Benzine was linear, and if you try to do anything else to it, (like install a VPN), it’s too old.

Therefore I would like to ask:

  1. Is there any way to use my existing Jetson Nano with something more recent - like Linux Mint - (Ubuntu’s user interface is terrible to say the least. . .)
  2. Is there any other reasonable SDK that can be used with the Nano as it exists based on a modern version of Linux? (preferably NOT Ubuntu)
  3. Absent all of that, is there a current version of a Nano-like board that uses the Raspberry Pi GPIO pinout, fits the Raspberry Pi form-factor, has a SDK based on a modern version of Linux and is currently supported, for less than the cost of a small airplane? (:wink:)

Alternatively I could (try to) migrate to the Raspberry Pi-5, but it would be a non-trivial exercise no matter what I do - and if I’m going to do the Labors of Hercules anyway, I’d rather upgrade to something with more horsepower than a Pi.

Any ideas or am I smoking something interesting?

Thanks!
Jim

  1. No plan survives contact with the enemy
    Attributed to Field Marshal Rommel, quoting Prussian Field Marshal Helmuth von Moltke the Elder and this concept is still taught in various military academies and military training facilities. It should be noted that this quote has resurfaced over the years in various contexts including Mike Tyson’s quote that “no plan survives the first hit”.
    https://quoteinvestigator.com/2021/05/04/no-plan/

You’re mostly stuck with Ubuntu, although if you went with the Thor you have possibilities. Thor is definitely not the inexpensive cost you are looking for. In the future, when Orin gets an L4T R38.x release, then it too might qualify for what you want, but it isn’t inexpensive either (just less expensive than Thor, and quite powerful, but the L4T R38.x is not yet out for this platform). All of them default to an Ubuntu install, but your choices go up with R38.x.

So, I now have an expensive NAS controller with good graphics? 😉

Why is the SDK dependent on Ubuntu specifically? Is it possible to use an Ubuntu clone like Mint?

Is it possible to use something more recent?

This is a far bigger topic than it sounds like. However, if you wish to do AI things, and if you can use the releases available on your Nano, then the Nano is a powerhouse at low electrical power and cost. Once you need flexibility though things get complicated.

The most important limitation on “new software” is that the X server is more than a graphics server; it is in reality an ABI to the GPU, and quite often isn’t even related to display (although it is related to display hardware, and thus that is what most people see it as). The X server itself uses a dynamic plug-in model for the GPU driver with some implications from that method of loading the driver.

Dynamically loaded binaries tend to mean the binary follows both an ABI and is compiled against a particular server build. The NVIDIA driver for the X server (there are other drivers not using X) in those earlier days (and for quite some time) was released only in binary form (precompiled) such that it only loads into that specific release of the X server. If you were to upgrade the X11, then the driver would fail to load. You would lose GPU hardware acceleration, and the CUDA which uses the X interface for GPU access. Since it is binary only format (this is changing, but I’m not sure at which release), then the real reason for choosing a Jetson (things it can do with the GPU and CUDA) would be removed. The Jetson would become just another RPi if that happened.

Note that the user space driver (which is what the GPU plugin to X11 is) is now open, but it is from newer hardware and newer releases. The Nano is the TX1 in small form factor, a 64-bit platform; the first embedded GPU was on the TK1, a 32-bit platform. The TK1 was quite successful, but 32-bit was outdated, and very early on 64-bit was required, and this is when the TX1 was invented (everything 64-bit was brand new at that time). This is so long ago that new feature development ended many years ago for both the TK1 and the TX1 (and this version of the Nano is a TX1). The open source user space driver did not exist before that time.

If you can’t use the outdated CUDA and/or graphics of the TX1 (Nano form factor), then it is indeed just a nice controller with graphics.

All of the Jetson platforms up until around L4T R35.x were completely custom boot chains centered on non-UEFI boot loaders for systems without a hardware BIOS (none of the Jetsons have a true hardware BIOS). This meant that setting up for transfer of control to the Linux kernel has been a very custom thing before UEFI (UEFI itself has a hardware abstraction stage and once this is reached most any o/s can boot). Unless your hardware and L4T release are fully UEFI only the sample Ubuntu can be booted without some serious knowledge and customizing of boot content. Even with UEFI you would have some work cut out for you, but the newer Thor (and later Orin) actually have some support (though sometimes third party) for other Linux flavors, e.g., Fedora might be found on some of those. This is in fact the reason why UEFI conversion occurred: Flexibility and customization become almost the same as having a hardware BIOS (this is at run time and self-flash is still not on par with an ordinary motherboard/CPU combination).

The real benefit though comes from the time when the user space driver becomes open source, and can be built against any X server for dynamic loading. If you upgrade your Ubuntu release, or if you change from Ubuntu to something else, e.g., Fedora, then the X server changes and in newer content you can build against this different server if you have some knowledge and tenacity.

So far as something like Mint goes, so long as the X server itself stays the same, you can simply install the correct desktop software (it won’t be Mint, but the things which make it Mint would be there). Remember how I said that the X server is really just a GPU interface? The X server is not what determines the look and feel of the desktop; the X server runs one and only one program, and when working as a GUI, it runs a window/desktop manager (or momentarily, a login manager which switches to a window manager). That window/desktop manager is what provides all of the apps running simultaneously, e.g., running a text terminal and a web browser and moving them around on the desktop is that window/desktop manager software (and this is not the X server doing this).

There are desktop/window managers available which the exact and current release on your Nano can use even if they are not the default Ubuntu manager. These can be customized and changed so long as they don’t require the X server itself to be changed. One could install the same window/desktop manager as used by Mint (beware of updates though!).

Without going to a newer hardware generation (preferably the newest under Thor, but perhaps also Orin) you won’t find upgrading Ubuntu or changing to a different distribution to be very practical. If you want your desktop to have the look and feel of a different flavor of Linux though, then this can be done if the window manager of that other flavor can be installed without changing the existing user space driver (and by dependencies, without changing the Xorg server).