Getting Started with NVIDIA Jetson Nano Eagle 101 Carrier Board
Product descriptions:
Tanna TechBiz has developed the EAGLE -101 carrier board, a Make in India initiative. This board has been designed for the NVIDIA® Jetson NanoTM Module.
The entire system constituting the carrier board and module can be used for various use cases ranging from computer vision, robotics, factory automation, Traffic management solutions (ITMS), Smart Cities, and so on.
The board features rich I/O ports that include 4 USB 3.0, 1 GB Ethernet, Micro SD card slot, etc.., a wide range of temperature specifications, and at the same time, packaged together in a compact size
Product descriptions and technical specifications you can get from TannTecBiz. Or from here.
Why TannaTechBiz has developed this board?
The NVIDIA Jetson Nano dev kit is not made to be deployed at the production level or as an end smart system, the developer kit is used to develop and test software in a pre-production environment. The dev kit is just like a reference board that other vendors may use as a template to make their board. There are also some flexibilities in the I/O that other vendors may enable them on their board but those things do not exist on devkit. As a vendor, TannaTechBiz has developed the carrier board EAGLE 101 for Jetson Nano. The dev kit does not have an SD card slot (It has internal eMMC)but the EAGLE 101 does have both eMMC and an external SD card slot. Many of our customers are already using this board in their AI application at production.
Downloading the BSP(Board Support Package):
Since NVIDIA develops the SoC (System on Chip) of Jetson Nano, they also provide a BSP (Board Support Package) for the SoC.
NVIDIA BSP (Board Support Package) is a set of software components and tools provided by NVIDIA to support the development and deployment of applications on NVIDIA hardware platforms.
You can get the BSP for Jetson Nano from here under the Drivers Details under Jetson Nano, Nano 2GB, and TX1 and row DRIVERS. Download the following two files as pointed out by arrows in the photo.
Note: Other versions of BSP can be found here.
- L4T Driver Package (BSP) (Jetson-210_Linux_R32.7.2_aarch64.tbz2)
- Sample Root Filesystem (Tegra_Linux_Sample-Root-Filesystem_R32.7.2_aarch64.tbz2)
NOTE: Before proceeding, make sure you have a system with OS Ubuntu 18.04 with a minimum of 100GB of space as a host computer.
NOTE: Use Ethernet or an external Wifi module with your system, as Ubuntu 18.04 has Wifi driver issues.
Flashing the BSP:
Once you have downloaded the above two files, follow the steps below.
- Extract the files:
tar xf jetson-210_Linux_R32.7.2_aarch64.tbz2gnome-disks
cd Linux_for_Tegra/rootfs/
sudo tar xpf /(path of downloaded sample-root-
file)/Tegra_Linux_Sample-Root-Filesystem_R32.7.2_aarch64.tbz2
cd..
sudo ./apply_binaries.sh2. copy tegra210-p3448–0002-p3449–0000-b00.dtb to folder generate
by step1
cp tegra210-p3448–0002-p3449–0000-b00.dtb
Linux_for_Tegra/kernel/dtb/You can get the DTB file from here.
3. Put the board in Recovery Mode.
- Use a jumper to short pin 3(FC REC) and pin 4(GND) as shown below image.
2. Connect the DC power supply to the circular power port and wait a moment.
3. Now connect the Micro USB port of the Jetson Nano to the Ubuntu Host Machine with a USB cable (Make sure it is a data cable).
4. Use the following command to flash the BSP.
cd Linux_for_Tegra
sudo ./flash.sh jetson-nano-emmc mmcblk0p1Note: Wait for a while to complete the flashing of the image. You will see the success message.
Note: In between the flashing process, the host system may prompt you to install specific Ubuntu packages; please install those and restart the flashing process with the above command 2.
Once the flashing process is complete, disconnect the power supply, and remove the jumper used to short pin 3 and pin 4.
Now connect the Display through either HDMI or DP port, and connect the Mouse and Keyboard. connect the DC power supply to the circular power port and wait a moment to boot the Jetson Nano.
Once Jetson Nano has successfully booted, follow the general Ubuntu Linux setup and get the IP through the Internet(Wi-Fi) connection setting. Your Display screen should look like the one below.
Note: If you do not have a display, you can simply proceed ahead with the serial connection (Micro USB) between your host machine and Jetosn Device to complete the boot setup. You can use the following link for the headless setup.
Change Root File System to SD Card Directly:
Now Your Jetson Nano is ready to use for the AI application but wait there is a catch; the BSP is flashed in internal eMMC and we have an SD card slot with an SD card inserted.
Now we can see how to move the root file system on eMMC flash to SD card storage directly and boot from the SD card.
In your Jetson Nano Display screen Open the terminal and type down the following command.
sudo jetson_clocks
gnome-disksThe first command allows the Jetson module’s whole sources to be used. The next command opens the GNOME Disks application below.
Format the whole disk before creating the storage.
Then, create a new partition from SD card storage.
Partition size is up to you but must be min current file system’s size
Choose the type in ext4 format and name the volume.
After creating the partition, check it’s name (/dev/mmcblk1p1).
Download the script file from here or at Git Hub and extract it. You can directly download it on the Jetson Device or download it on the host machine and transfer it to the Jetson Device using SSH(File Zila).
Note: The .sh file needs the permission to execute. Use the following command to make it executable.
chmod +x change_rootfs_storage_direct-emmc_to_sdmmc.shThen, run it with this command below:
sudo ./change_rootfs_storage_direct-emmc_to_sdmmc.sh {EXTERNAL_STORAGE}In our setup, we typed this command below:
sudo ./change_rootfs_storage_direct-emmc_to_sdmmc.sh /dev/mmcblk1p1Wait for a while until the whole file system is copied, and the root path changes.
Now use the following command to see the disk space usage. It is still booting from the eMMC.
df -hIt’s time to reboot the Jetson module. Reboot it and check the Root File System copied successfully.
Open a terminal and type this command to check the root mounted from the SD card below which was on eMMC before reboot.
df -hAfter rebooting you can see that the new storage is assigned as the root file system.
NVIDIA SDK- Manager :
Now Jetson Nano is ready to install further NVIDIA SDK components. Download the SDK manager for host Ubuntu 18.04 and install it on host Ubuntu.
Connect the Jetson Device to the host machine using Micro USB. From a terminal window, launch SDK Manager with the command:
sdkmanagerLog in to your account, if the Jetson Nano is recognized normally, SDK Manager will detect it correctly.
Check your Jetpack version. If your Jetpack version doesn't appear use the following command to launch the SDK manager with archived Jetpack versions.
sdkmanager --archived-versionNote: You can also check the Jetpack Version from the display of the Jetson Device. Just type down the following command in the display terminal.
sudo apt-cache show nvidia-jetpackNow you can proceed ahead by clicking on CONTINUE. Before that, you can tick on the DeepStram app if you wish to install it.
Next, uncheck Jetson OS (Because we have already flashed it using BSP), and check Jetson SDK Components(CUDA, Tensorrt, etc.). Check the terms & conditions and click CONTINUE.
Note: If you want to learn more about how to use NVIDIA SDK-manager, you can use the official guide from NVIDIA from here.
Once all the required NVIDIA SDK components are successfully installed you can proceed ahead to install PyTorch and torchvision from here.
You can check the compatible CUDA versions and tensorrt versions using the following commands.
nvcc --versionpip3 show tensorrt Special thanks to my fellow Engineer and Colleague -Kishan
You can follow me on Linkedin