Jetson
General information
- Jetson nano https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-nano/.
- https://developer.nvidia.com/embedded/jetson-modules
- CPU Tegra X1 4x A57 @ 1.43 GHz (ARMv8), GPU 128 cores of Maxwell generation @ 921 MHz (cf GeForce GT 1030 SC 2GB GDDR5 Low Profile Graphic Cards has 384 CUDA cores)
- https://en.wikipedia.org/wiki/Nvidia_Jetson
- https://elinux.org/Jetson_Nano
- Power consumption: when it is idle, it uses .44A.
More
- Now One Of The BEST SBCs For Emulation Project ARES On The Jetson Nano ETA Prime, ARES for the Jetson Nano, Tech Toy Tinker Company
- Introduction to CUDA Programming With Jetson Nano
4GB vs 2GB
Comparison between Jetson Nano 2GB and Jetson Nano 4GB
ARMv8, ARMv9
- https://en.wikipedia.org/wiki/ARM_architecture_family
- ARMv8 is an ARM instruction set architecture announced in 2011. It brought a large number of fundamental changes to the instruction set, including the introduction of 64-bit operating capabilities. ARMv8 architecture uses two execution states, AArch32 and AArch64. As the names imply, one is for running 32-bit code and one for 64-bit.
- After ARMv8, which was introduced in 2011, ARM introduced ARMv9 architecture.
- According to ARM, some of the major new features of the ARMv9-A architecture include Realm Management Extension (RME) and Embedded Trace Extension (ETE) and Trace Buffer Extension (TRBE).
- Apple M1 chip or M2 chip is based on ARMv8.5-A instruction set architecture.
Images
Vs Raspberry Pi 4
The two motherboard are similar:new Raspberry Pi has the same arch and almost the same processor (nvidia one is older). VLC doesn’t work on Nvidia Jetson Nano
Get started
- Getting Started with Jetson Nano 2GB Developer Kit. Jetson 2GB Developer Kit User Guide. How-to guides. NVIDIA AI tutorials and courses.
- Getting Started: Nvidia Jetson Nano, Object Detection and Classification.
sudo apt-get update sudo apt-get install v4l-utils v4l2-ctl --list-devices --list-formats ./imagenet-camera.py --camera=/dev/video0 ./detectnet-camera.py --camera=/dev/video0
- Self-paced, online training from NVIDIA DEEP LEARNING INSTITUTE
Hello AI World
Ubuntu 20.04
Install Ubuntu 20.04 on Jetson Nano
Post installation
- Use gparted to increase the partition /dev/mmcblk0 on another computer.
- sudo apt install openssh-server
- sudo apt-get install avahi-daemon
- Switch from GNOME to LXDE & lightdm (cf xfce4). Save 1GB of Memory! Use LXDE on your Jetson.
- Setup tightvncserver. Seee Remote Desktop. Remember to set up VNC server system at startup. In ".vnc/xstartup", use "startlxde&" instead. For 16:9 ratio, consider 1366×768 or 1280×720.
- Install jtop to monitor CPU/GPU usage, temperature, et al. jtop is better than tegrastats
sudo apt install python3-pip sudo -H pip3 install -U jetson-stats
- Remove snap
snap list sudo apt remove --purge snapd sudo apt-mark hold snapd
- nano ~/.bashrc. Add a line LS_COLORS="di=1;31"
- Test gst-launch-1.0
gst-launch-1.0 filesrc location=Big_Buck_Bunny_4K.mp4 ! \ qtdemux ! queue ! h264parse ! nvv4l2decoder ! \ nv3dsink window-width=1280 window-height=720
- Install exiftool
sudo apt install libimage-exiftool-perl exiftool Big_Buck_Bunny_4K.mp4
- sudo apt install terminator, neofetch
Camera
Getting Your Camera Working on the Nvidia Nano
Tips
Boot from USB
- https://github.com/jetsonhacks/bootFromUSB 2021, Jetson Nano – Boot from USB 2021
- Boot Jetson nano from a micro SD card
- git clone https://github.com/jetsonhacks/bootFromUSB.git
- Disks > Format > GPT > '+' > SSD240
- Mount SSD. ls /dev/sd*
- ./copyRootToUSB.sh -p /dev/sda1
- cd /media/USERNAME/SSD240/boot/extlinux
- sudo cp extlinux.conf extlinux.conf.bak
- ./partUUID.sh
- sudo gedit extlinux.conf
- Shutdown. Remove SD card. Bingo.
- How to Boot Jetson Nano From USB 3.0 (Natively) with Jetpack 4.5 2021
- Nvidia Jetson Nano Boot from USB 2020
- etson Nano – Run on USB Drive 2019. Use a swap file, not a swap partition.
Low memory problem in Jetson nano
GPU benchmark
- Glmark2. Glmark2 is an OpenGL 2.0 and ES 2.0 benchmark. glmark2 is a cross-platform tool that can be used to test the performance of the GPU on both platforms with and without CUDA cores.
- sudo apt-get install glmark2
- LuxMark
System monitor
jtop
jtop: The Ultimate Tool for Monitoring NVIDIA Jetson Devices
sudo pip3 install -U jetson-stats jtop
Tegrastats Utility
nvidia-smi
- Command nvidia-smi on Jetson Nano not working? or GPU usage info (nvidia-smi is not there)
- System Management Interface SMI
Hardware acceleration
- Hardware decoding in mpv player. totem is gstreamer based.
- https://github.com/jocover/jetson-ffmpeg
GStreamer, gst-launch-1.0
- Jetson Nano + Raspberry Pi Camera
- Video Decode Examples Using gst-launch-1.0 & PDF version.
- To test 4K video playback on the NVIDIA Jetson Nano, you can use the GStreamer multimedia framework.
sudo add-apt-repository universe sudo add-apt-repository multiverse sudo apt-get update sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa \\ gstreamer1.0-plugins-base gstreamer1.0-plugins-good \\ gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \\ gstreamer1.0-libav sudo apt-get install libgstreamer1.0-dev \\ libgstreamer-plugins-base1.0-dev \\ libgstreamer-plugins-good1.0-dev \\ libgstreamer-plugins-bad1.0-dev gst-launch-1.0 filesrc location=<4k-video-file-path> ! \ qtdemux ! h264parse ! omxh264dec ! nveglglessink -e
Replace <4k-video-file-path> with the path to your 4K video file. Note that the performance of 4K video playback may depend on other factors such as the bitrate of the video, the overall load on the Jetson Nano, and so on
- Jetson Nano 2GB development kit 4k video play back question. The following is for H.264 Decode (NVIDIA Accelerated Decode).
gst-launch-1.0 filesrc location=<filename_h264.mp4> ! \ qtdemux ! queue ! h264parse ! nvv4l2decoder ! nv3dsink -e
gst-launch-1.0 uridecodebin uri=file:///home/nvidia/a.mp4 ! \ nvvidconv ! 'video/x-raw(memory:NVMM),width=1920,height=1080' ! \ nvoverlaysink
- mkv file. Playing videos using gstreamer on Jetson Nano
- GStreamer on Linux
gst-launch-1.0 filesrc location=vid.mkv ! \ matroskademux name=dem dem.video_0 ! \ h265parse ! nvv4l2decoder ! nvvidconv ! \ video/x-raw ! subtitleoverlay name=sub dem.subtitle_0 ! \ queue ! sub. sub. ! xvimagesink
- Is "!" the same as "|" ? Ans: No, the "!" and "|" symbols are not the same in the Linux command line. The "!" symbol in a GStreamer pipeline (like in your `gst-launch-1.0` command) is used to separate and link different elements in the pipeline. The "|" symbol, also known as a pipe, is used in the Linux command line to pass the output of one command as input to another¹. This is a form of redirection that is a fundamental part of Unix-like operating systems.
4k test videos
- Pixabay, Pexels
- Big Buck Bunny (2008) 4K 60FPS Blender Animated Short - x265 7.1GB, mkv file.
- https://www.demolandia.net/
- https://www.libde265.org/downloads-videos/
- exiftool to check metadata/verify width/height/fps
ffmeg
FFmpeg can be used to play 4K video on the Jetson Nano. The Jetson-FFMpeg project allows you to use FFmpeg on the Jetson Nano via the L4T Multimedia API, supporting hardware-accelerated encoding of H.264 and HEVC.
However, it's important to note that the Jetson Nano doesn't need to use GPU for hardware decoding MPEG2, H.264/AVC, HEVC, VP8 and VP9. These formats are decoded by a specific video hardware decoder (NVDEC) that can be accessed by the L4T Multimedia API².
Here is an example command to play a 4K video using FFmpeg on the Jetson Nano:
ffplay -vcodec h264_nvmpi -i vid.mp4 ffplay -vcodec hevc_nvmpi -i vid.mp4
The `hevc_nvmpi` and `h264_nvmpi` are both hardware-accelerated video encoders provided by NVIDIA, but they are used for different video codecs¹.
- h264_nvmpi: This is the NVIDIA hardware-assisted H.264 video encoder. H.264, also known as AVC (Advanced Video Coding), is a standard for video compression that is most commonly used to encode high definition video and distribute digital video content²⁵.
- `hevc_nvmpi`: This encoder is used for the H.265 video codec, also known as HEVC (High Efficiency Video Coding). HEVC is a more recent video compression standard that provides a more efficient compression method than H.264 but with the same level of image quality. It's particularly useful for streaming 4K content over networks like Netflix.
- In terms of quality and performance, libx264 (a software-based H.264 encoder) might deliver better quality than `h264_nvmpi` for the same bitrate, but `h264_nvmpi` is probably faster and uses less power. The same could be true when comparing a software-based HEVC encoder with `hevc_nvmpi`.
swap
Alternative OS
https://forums.developer.nvidia.com/t/alternative-os/75649
LineageOS
- https://download.lineageos.org/porg
- Download and Install GApps for Lineage OS
- Lineage Android OS for the Jetson Nano
- Nvidia Jetson (Nano / Nano 2GB) [Tablet (porg_tab)]
- Video: Lineage OS on the Nvidia Jetson Nano!
ARES: aurora retro entertainment system
- https://techtoytinker.com/nvidia-jetson-nano. Username/password: aresuser/thera
- Nvidia Jetson Nano ARES Stable 1 Release