Fedora on Nvidia Jetson Nano
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:
- Make sure Jetson Nano is powered off and no micro SD card in the slot.
- To get into Force Recovery Mode on B01 model, connect the jumper to the FRC pins which are
9
and10
pins of theJ50
Button Header.J50
Button Header is located under the heatsink of Jetson Nano. - Power the board either by DC power connected to
J25
or through micro USB (Remember to remove the jumper onJ48
to power through micro USB). - Remove the jumper from the FRC pins on
J50
Button Header. - To check if the Jetson Nano is in developer mode, run the following:
$ lsusb | grep -i nvidia
- 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⌗
- Download a Fedora aarch64 arm Workstation or Xfce or Minimalimage to use on Jetson Nano.
- 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 withXXX
in the above command - 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.
- Enjoy playing with your Jetson Nano running Fedora.