First of all, a bit shoutout to Peter Robinson for working on this. His blog post is the basis for how I was able to get it to working.

Before going deeper, please read the Jetson Nano’s user guide and quick start guide. This is very useful to figure out where the microSD card slot, pin headers are located as they are placed in unusual locations.

I tried this on B01 model of Jetson Nano (not the 2GB version), so this guide provides the information on how to boot Fedora on B01 board, but it should work pretty similar on A02 board as well.

Things you need

  • A USB-A to micro USB cable for flashing
  • A micro SD card to boot fedora
  • A jumper to close the connection on FRC pins for recovery mode (The board comes with a jumper to disable power through micro USB, if you are powering it through micro USB you can use the jumper that comes with it)
  • USB to TTL Serial Cable for debugging (optional)
  • A 5v DC Barrel Jack Power (optional if you are powering the board through micro USB)
  • A HDMI cable and monitor, keyboard and mouse
  • A NVIDIA developer account to download the latest L4T release

Connecting the serial console

This is not required, but its better to use it if you have USB to TTL Serial cable to debug any issues. This a good article to follow to setup the serial console. Connect the serial console pins as follows:

Jetson Nano J50 Pin 4 (TXD) → Cable RXD (White Wire) Jetson Nano J50 Pin 3 (RXD) → Cable TXD (Green Wire) Jetson Nano J50 Pin 7 (GND) → Cable GND (Black Wire)

Connect the usb to your computer and run

$ sudo screen /dev/ttyUSB0 115200

Flashing the firmware

As per the blog post, you need the latest release of L4T (Linux 4 Tegra), I used R32.4.4 release. This release supports the option to flash the firmware to the onboard SPI flash enabling the use of the entire micro SD card for Fedora to run.

Download the L4T tarball and run the following commands:

$ sudo dnf install -y usbutils uboot-images-armv8 arm-image-installer
$ tar xvf ~/Downloads/Tegra210_Linux_R32.4.4_aarch64.tbz2
$ cd Linux_for_Tegra
$ cp /usr/share/uboot/p3450-0000/u-boot.bin bootloader/t210ref/p3450-porg/

NOTE: I am running my laptop on Fedora rawhide at the time of testing and uboot-images-armv8 has a bug in it. I had to downgrade u-boot and used the latest version in Fedora 33 release, precisely uboot-tools-2020.10-2.fc33.

You can power the Jetson Nano either by 5V DC Barrel Jack or through micro USB. Powering through micro USB is disabled by default by a jumper on J48 header, remove that jumper and you will be able to power the board through micro USB.

We need to put the Jetson Nano into Force Recovery Mode (FRC) to flash the firmware onto it. To achieve this, follow the steps below:

  1. Make sure Jetson Nano is powered off and no micro SD card in the slot.
  2. To get into Force Recovery Mode on B01 model, connect the jumper to the FRC pins which are 9 and 10 pins of the J50 Button Header. J50 Button Header is located under the heatsink of Jetson Nano.
  3. Power the board either by DC power connected to J25 or through micro USB (Remember to remove the jumper on J48 to power through micro USB).
  4. Remove the jumper from the FRC pins on J50 Button Header.
  5. To check if the Jetson Nano is in developer mode, run the following:
    $ lsusb | grep -i nvidia
    
  6. To flash the firmware, run the following script from the Linux_for_Tegra directory:
    $ sudo ./flash.sh p3448-0000-max-spi external
    

Booting Fedora on Jetson Nano

  1. Download a Fedora aarch64 arm Workstation or Xfce or Minimalimage to use on Jetson Nano.
  2. To prepare the arm disk image, insert the microSD card in your system and run the following command:
    $ sudo arm-image-installer --media=/dev/XXX --resizefs --target=none --image=~/Downloads/Fedora-Workstation-33-1.3.aarch64.raw.xz
    

    NOTE: You can find the device by running lsblk and replace it with XXX in the above command

  3. Once it’s done, you can pop the microSD card into the Jetson Nano and connect it to a keyboard, mouse and a montor through HDMI, and power it up.
  4. Enjoy playing with your Jetson Nano running Fedora.