- Board : Jetson Nano Development 4GB
- HostPC : Ubuntu 20.04
- Camera : Luxonis OAK-D-W
- ssd : 256GB nvme M.2
- OS : Ubuntu 20.04
- Middle OS : ROS noetic
- Python Version : 3.8.10
- Jetpack 4.6.6
- L4T : 32.7.6
- CUDA : 10.2.300
- cuDNN : 8.2.1.32
- TensorRT : 8.2.1.9
- Python Binding TensorRT : 8.0
-
Host PC : Ubuntu20.04
-
Download Jetson Linux Archive
- Invite https://developer.nvidia.com/embedded/linux-tegra-r3276
- Download Driver Package(BSP) for Jetson Nano
->https://developer.nvidia.com/downloads/embedded/l4t/r32_release_v7.6/t210/jetson-210_linux_r32.7.6_aarch64.tbz2 - Download Sample Root Filesystem
-> https://developer.nvidia.com/downloads/embedded/l4t/r32_release_v7.6/t210/tegra_linux_sample-root-filesystem_r32.7.6_aarch64.tbz2
- Flash Jetson module
- cd /Download
- mkdir Jetson_project
- mv Jetson-210_Linux_R32.7.6_aarch64.tbz2 ./Jetson_project
- mv Tegra_Linux_Sample-Root-Filesystem_R32.7.6_aarch64.tbz2 ./Jetson_project
- tar xf Jetson-210_Linux_R32.7.6_aarch64.tbz2
- cd Linux_for_Tegra/rootfs/
- sudo tar xpf ../../Tegra_Linux_Sample-Root-Filesystem_R32.7.6_aarch64.tbz2
- cd ..
- sudo ./apply_binaries.sh
- sudo ./flash.sh jetson-nano-emmc mmcblk0p1
Jetson Nano boot for Nvme (https://wiki.seeedstudio.com/reComputer_Jetson_Memory_Expansion/)
- connect nvme ssd on board && boot
- Ctrl + F && disks
- Format Disk
- Partitioning : Compatible with...hard disks > 2TB(GPT) && Click Format..
- click on the mdiddle + to add a disk character
- click on Next
- Volume Name : SSD && Type Internal disk for use with Linux systems only (Ext4) && Create
- git clone https://github.com/limengdu/rootOnNVMe.git
- cd rootOnNVMe/
- ./copy-rootfs-ssd.sh
- ./setup-service.sh
- sudo reboot now
- host pc install Docker image
- https://developer.nvidia.com/sdk-manager, Docker Image Ubuntu 18.04 Download
- cd Download
- docker load < <(tar -c .)
- jetpack_docker install (command more -> https://docs.nvidia.com/sdk-manager/docker-containers/index.html)
-> docker run -it --rm --privileged -v /dev/bus/usb:/dev/bus/usb/ -v /dev:/dev -v /media/$USR:/media/nvidia:slave --network host sdkmanager:2.2.0.12021-Ubuntu_18.04 --cli - Login NVIDIA Developer
- Install
- Jetson
- Uncheck Host Machine(press spacebar), Target Hardware
- Jetson Nano modules
- Do you want to show all release versions? | y
- JetPack 4.6.6 | select
- DeepStream 6.0.1 Uncheck
- Do you want to customize the install settings | y
- Do you want to flash Jetson Module? | n
- Download folder : (/home/nvidia/Downloads/nvidia/sdkm_downloads)
- Target HW image folder: (/home/nvidia/nvidia/nvidia_sdk)
- Accept the terms and conditions of all license agreements: | move 2 & enter
- Install JetPack 4.6.6 now | enter
- Allow usage data collection? | No
- space bar && unchech Jetson OS && enter
- Install
- Connect via | Ethernet cable (turn on Jetson Nano and connect same network on hostpc)
- Enter SSH connection detail to Jetson Nano Modules: | IPv4
- IP address: | Jetson Nano IP ex) 111.111.111.51
- Username: | Jetson Nano Name ex) jmnano
- Password: | Jetson Nano Password ex) 1234
- Proxy mode: | Do not set proxy
- enter
Update Ubuntu20.04 (https://qengineering.eu/install-ubuntu-20.04-on-jetson-nano.html)
- sudo vim /etc/update-manager/release-upgrades -> change line Prompt=nomal
- sudo apt-get update
- sudo apt-get dist-upgrade
- sudo reboot
- sudo do-release-upgrade
- almost questions enter y, not to use chrominum but auto install
- sudo vim /etc/gdm3/custom.conf
-> change uncomment |
WaylandEnable=false
- sudo vim /etc/X11/xorg.conf -> chagne uncommnet | Driver "nvidia"
- sudo vim /erc/update-manager/release-upgrades -> change Prompt=never
- sudo rm -rf /usr/share/vulkan/icd.d
- sudo apt-get update | maybe this time show error for chrominium use chatgpt how to delete chrominium (https://chatgpt.com/share/67496421-4744-800b-807b-7ab39b2b5af1)
- sudo apt-get upgrade
- sudo apt-get autoremove
- sudo rm /usr/share/applications/vpi1_demos\
- cd /usr/share/nvpmodel_indicator
- sudo mv nv_logo.svg no_logo.svg
- sudo apt-get install gcc-8 g++-8
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 8
- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9
- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 8
- sudo update-alternatives --config gcc
- sudo update-alternatives --config g++
- sudo apt-get install clang-8
- sudo apt-get purge lightdm
- sudo apt-get autoremove
- sudo dpkg-reconfigure gdm3
- sudo apt install ubuntu-gnome-desktop
- sudo apt install gnome-tweaks
- Alt + F2, r
- sudo apt install --reinstall gnome-control-center
- git clone https://github.com/JetsonHacksNano/installSwapfile
- cd installSwapfile
- if you want to 8GB more Change number -> vim ./installSwapfile.sh -> SWAPSIZE = 8 (defalut 6)
- ./installSwapfile.sh
- uninstall opencv * use Chatgpt
- wget https://github.com/Qengineering/Install-OpenCV-Jetson-Nano/raw/main/OpenCV-4-8-0.sh
- sudo chmod 755 ./OpenCV-4-8-0.sh
- vim ./OpenCV-4-8-0.sh -> delete v4l2ucp | use vim search : esc, /v4l2ucp and delete -> change Cmake command (Using gcc 8 version)
# Set GCC-8 as default compiler for this build
CC=/usr/bin/gcc-8 CXX=/usr/bin/g++-8 cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D EIGEN_INCLUDE_PATH=/usr/include/eigen3 \
-D WITH_OPENCL=OFF \
-D CUDA_ARCH_BIN=${ARCH} \
-D CUDA_ARCH_PTX=${PTX} \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D WITH_CUBLAS=ON \
-D ENABLE_FAST_MATH=ON \
-D CUDA_FAST_MATH=ON \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_NEON=ON \
-D WITH_QT=OFF \
-D WITH_OPENMP=ON \
-D BUILD_TIFF=ON \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_TBB=ON \
-D BUILD_TBB=ON \
-D BUILD_TESTS=OFF \
-D WITH_EIGEN=ON \
-D WITH_V4L=ON \
-D WITH_LIBV4L=ON \
-D WITH_PROTOBUF=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D BUILD_EXAMPLES=OFF \
-D CMAKE_CXX_FLAGS="-march=native -mtune=native" \
-D CMAKE_C_FLAGS="-march=native -mtune=native" ..
- ./OpenCV-4-8-0.sh
TensorRT Python Bindings (https://elinux.org/Jetson/L4T/TRT_Customized_Example#TensorRT_Python_Bindings)
- sudo apt install zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev -y
- wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tar.xz
- tar xvf Python-3.8.10.tar.xz Python-3.8.10/
- mkdir build-python-3.8.10
- cd build-python-3.8.10/
- ../Python-3.8.10/configure --enable-optimizations
- make -j $(nproc)
- sudo -H make altinstall
- cd ../
- sudo apt-get install -y protobuf-compiler libprotobuf-dev openssl libssl-dev libcurl4-openssl-dev
- mkdir python3.8
- mkdir python3.8/include
- wget http://launchpadlibrarian.net/449197644/libpython3.8-dev_3.8.0-3~18.04_arm64.deb -O libpython3.8-dev_3.8.0-3~18.04_arm64.deb
- ar x libpython3.8-dev_3.8.0-3~18.04_arm64.deb
- tar -xvf data.tar.xz
- cp ./usr/include/aarch64-linux-gnu/python3.8/pyconfig.h python3.8/include/
- cp -r Python-3.8.10/Include/* python3.8/include/
- git clone https://github.com/pybind/pybind11.git
- git clone -b release/8.0 https://github.com/NVIDIA/TensorRT.git
- cd TensorRT
- git submodule update --init --recursive
- cd python/
- TRT_OSSPATH=${PWD}/.. EXT_PATH=${PWD}/../.. TARGET=aarch64 PYTHON_MINOR_VERSION=8 ./build.sh
- python3.8 -m pip install build/dist/tensorrt-8.0.1.6-cp38-none-linux_aarch64.whl | if you want to install venv, active venv and command this
Install Torch & TorchVision (https://qengineering.eu/install-pytorch-on-jetson-nano.html)
- sudo apt-get install python3-pip libjpeg-dev libopenblas-dev libopenmpi-dev libomp-dev
- if you want to install torch for venv active and follow --------host python command-------- --------venv python command--------
- sudo -H pip3 install future | pip3 install future
- sudo pip3 install -U --user wheel mock pillow | pip3 install -U wheel mock pillow
- sudo -H pip3 install testresources | pip3 install testresources
- sudo -H pip3 install setuptools==58.3.0 | pip3 install setuptools==58.3.0
- sudo -H pip3 install Cython | pip3 install Cython
- sudo -H pip3 install gdown | pip3 install gdown
- gdown https://drive.google.com/uc?id=1e9FDGt2zGS5C5Pms7wzHYRb0HuupngK1
- sudo -H pip3 install torch-1.13.0a0+git7c98e70-cp38-cp38-linux_aarch64.whl | pip3 install torch-1.13.0a0+git7c98e70-cp38-cp38-linux_aarch64.whl
- rm torch-1.13.0a0+git7c98e70-cp38-cp38-linux_aarch64.whl
- sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev
- sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
- if you want to install torch for venv active and follow --------host python command-------- --------venv python command--------
- sudo pip3 install -U pillow | pip3 install -U pillow
- gdown https://drive.google.com/uc?id=19UbYsKHhKnyeJ12VPUwcSvoxJaX7jQZ2
- sudo -H pip3 install torchvision-0.14.0a0+5ce4506-cp38-cp38-linux_aarch64.whl | pip3 install torchvision-0.14.0a0+5ce4506-cp38-cp38-linux_aarch64.whl
- rm torchvision-0.14.0a0+5ce4506-cp38-cp38-linux_aarch64.whl
- python3
- import torch
- torch.cuda.is_available() -> True
- pip install ultralytics
Install ROS noetic(https://wiki.ros.org/noetic/Installation/Ubuntu)
- sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
- sudo apt install curl -y
- curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
- sudo apt update
- sudo apt install ros-noetic-desktop-full
- source /opt/ros/noetic/setup.bash
- echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
- source ~/.bashrc
- sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential -y
- sudo apt install python3-rosdep -y
- sudo rosdep init
- rosdep update
- sudo wget -qO- https://raw.githubusercontent.com/luxonis/depthai-ros/main/install_dependencies.sh | sudo bash
- sudo apt install python3-rosdep
- sudo rosdep init
- rosdep update
- mkdir -p dai_ws/src
- cd dai_ws/src
- git clone --branch noetic https://github.com/luxonis/depthai-ros.git
- cd ..
- rosdep install --from-paths src --ignore-src -r -y
- source /opt/ros/noetic/setup.bash
- catkin_make
- source devel/setup.bash
- git clone https://github.com/luxonis/depthai-python.git
- cd depthai-python/examples
- python3 install_requirements.py