Orin NX
NoMachine
Downloads – Download
1 2 3 sudo apt update sudo apt upgrade -y sudo dpkg -i nomachine_*_arm64.deb
配置启动
配置服务器以允许远程连接
1 sudo systemctl start nxserver
设置NoMachine为开机启动:
1 sudo systemctl enable nxserver
设置EGL Capture 为yes,这是NoMachine提供的一个屏幕捕获功能,主要用于改善在特定显示服务器环境下的远程桌面体验:
1 sudo /etc/NX/nxserver --eglcapture yes
该命令重启后生效,可使用以下命令二次确认,当出现EGL Capture has been enabled则表示该功能已写入配置文件。
1 if [ -f "/usr/lib/systemd/user/[email protected] " ] && grep -q "nxpreload.sh" "/usr/lib/systemd/user/[email protected] " && [ -f "/usr/share/applications/org.gnome.Shell.desktop" ] && grep -q "nxpreload.sh" "/usr/share/applications/org.gnome.Shell.desktop" && [ -f "/usr/NX/etc/node.cfg" ] && grep -q "EnableEGLCapture 1" "/usr/NX/etc/node.cfg"; then echo "EGL Capture has been enabled"; else echo "Not enabled"; fi
重启NoMachine服务:
1 sudo systemctl restart nxserver
重启
snap版本
刷机后snap版本是2.7.0,Jetson内核与snap2.7.0不兼容,所以用snap2.7.0安装chrome/firefox后,有问题
修复方法 :回退到与 Jetson 兼容的旧版本 Snap
执行以下命令即可(安装Snap 2.68.5并锁定,使其不会被snap或apt更新)
1 2 3 4 snap download snapd --revision=24724 sudo snap ack snapd_24724.assert sudo snap install snapd_24724.snap sudo snap refresh --hold snapd
由于orin是arm架构因此无法安装x86 版本的chrome,只能安装 chromium,具体命令如下:
1 2 3 sudo add-apt-repository ppa:a-v-shkop/chromium sudo apt-get update sudo apt-get install chromium-browser
GPIO
如果要在 Jetson 中使用硬件 PWM,则需要修改 Pinmux 表来多路复用。Jetpack 提供了一个名为 jetson-io 的工具,它允许创建和更新可以使用 PWM 的 dtb。
1 sudo /opt/nvidia/jetson-io/jetson-io.py
选择 Configure Jetson 40pin Header > Configure header pins manually , pwm7(32)选择并 Back,Save pin changes ,Save and reboot to reconfigure pins,按下任意键后重启,即可完成设置。
在使用第三方载板时,jetson-io工具无法确定载板型号。需要手动配置引脚复用。
1 2 3 4 5 6 7 8 9 10 nvidia@tegra-ubuntu:/sys/class/pwm/pwmchip4$ sudo cat /sys/kernel/debug/gpio | grep PG.06 gpio-389 (PG.06 |usbhub_power_en ) out lo nvidia@tegra-ubuntu:/sys/class/pwm/pwmchip4$ ^C nvidia@tegra-ubuntu:/sys/class/pwm/pwmchip4$ sudo cat /sys/kernel/debug/gpio | grep PH.00 gpio-391 (PH.00 |m2_KeyB_power_en ) out lo nvidia@tegra-ubuntu:/sys/class/pwm/pwmchip4$ nvidia@tegra-ubuntu:/sys/class/pwm/pwmchip4$ sudo cat /sys/kernel/debug/gpio | grep PN.01 gpio-433 (PN.01 ) nvidia@tegra-ubuntu:/sys/class/pwm/pwmchip4$ sudo cat /sys/kernel/debug/gpio | grep PCC.00 gpio-328 (PCC.00 |user-led ) out lo
但是载板并没有引出PWM引脚,使用GPIO模拟。
sudo apt-get install libgpiod-dev
sudo gpioinfo
设置 GPIO 高低:sudo gpioset --mode=wait gpiochip0 106=1
sudo gpioset --mode=wait gpiochip0 106=0
opencv
https://jishuzhan.net/article/2013776823067918337
需要手动编译OpenCV 以支持 CUDA 加速
一键安装脚本,修改version (OpenCV 版本),ARCH_BIN (CUDA 算力架构),PYTHON_VERSION_NUM (Python 版本)
Jetson 设备型号
架构代号
ARCH_BIN 修改值
备注
Jetson AGX Orin
Ampere
“8.7”
脚本默认值
Jetson Orin NX
Ampere
“8.7”
与 AGX Orin 相同
Jetson Orin Nano
Ampere
“8.7”
与 AGX Orin 相同
Jetson AGX Xavier
Volta
“7.2”
Jetson Xavier NX
Volta
“7.2”
Jetson TX2
Pascal
“6.2”
Jetson Nano (B01)
Maxwell
“5.3”
老款 Nano 请填这个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 #!/bin/bash version="4.10.0" ARCH_BIN="8.7" PYTHON_VERSION_NUM="3.10" folder="workspace" set -efor (( ; ; ))do echo "Do you want to remove the default OpenCV (yes/no)?" read rm_old if [ "$rm_old " = "yes" ]; then echo "** Remove other OpenCV first" sudo apt -y purge *libopencv* break elif [ "$rm_old " = "no" ]; then break fi done echo "------------------------------------" echo "** Install requirement (1/4)" echo "------------------------------------" sudo apt-get update sudo apt-get install -y build-essential cmake git pkg-config unzip curl sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev sudo apt-get install -y libv4l-dev v4l-utils qv4l2 sudo apt-get install -y libjpeg-dev libpng-dev libtiff-dev sudo apt-get install -y libtbb-dev if apt-cache search --names-only '^libtbb2$' | grep -q libtbb2; then sudo apt-get install -y libtbb2 elif apt-cache search --names-only '^libtbb12$' | grep -q libtbb12; then sudo apt-get install -y libtbb12 fi sudo apt-get install -y libgtk2.0-dev echo "------------------------------------" echo "** Download opencv ${version} (2/4)" echo "------------------------------------" mkdir -p $folder cd ${folder} if [ ! -f "opencv-${version} .zip" ]; then echo "Downloading OpenCV source..." curl -L https://github.com/opencv/opencv/archive/${version} .zip -o opencv-${version} .zip else echo "opencv-${version} .zip already exists." fi if [ ! -f "opencv_contrib-${version} .zip" ]; then echo "Downloading OpenCV Contrib source..." curl -L https://github.com/opencv/opencv_contrib/archive/${version} .zip -o opencv_contrib-${version} .zip else echo "opencv_contrib-${version} .zip already exists." fi echo "Unzipping..." unzip -o opencv-${version} .zip > /dev/null unzip -o opencv_contrib-${version} .zip > /dev/null cd opencv-${version} /echo "------------------------------------" echo "** Build opencv ${version} (3/4)" echo "------------------------------------" mkdir -p releasecd release/cmake -D WITH_CUDA=ON \ -D WITH_CUDNN=ON \ -D CUDA_ARCH_BIN="${ARCH_BIN} " \ -D CUDA_ARCH_PTX="" \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${version} /modules \ -D WITH_GSTREAMER=ON \ -D WITH_LIBV4L=ON \ -D BUILD_opencv_python3=ON \ -D BUILD_opencv_gapi=OFF \ -D BUILD_TESTS=OFF \ -D BUILD_PERF_TESTS=OFF \ -D BUILD_EXAMPLES=OFF \ -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local .. echo "Compiling... This may take a while." make -j$(nproc ) echo "------------------------------------" echo "** Install opencv ${version} (4/4)" echo "------------------------------------" sudo make install if ! grep -q "export LD_LIBRARY_PATH=/usr/local/lib" ~/.bashrc; then echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc fi SITE_PACKAGES_PATH="/usr/local/lib/python${PYTHON_VERSION_NUM} /site-packages" if ! grep -q "export PYTHONPATH=${SITE_PACKAGES_PATH} " ~/.bashrc; then echo "export PYTHONPATH=${SITE_PACKAGES_PATH} /:\$PYTHONPATH" >> ~/.bashrc fi echo "------------------------------------" echo "** Install opencv ${version} successfully" echo "** IMPORTANT: Please run the following command to apply changes:" echo " source ~/.bashrc" echo "** Bye :)"
TensorRT
添加工具软链接
1 sudo ln -s /usr/src/tensorrt/bin/trtexec /usr/local/bin/trtexec
pt导出onnx(动态纬度)
1 yolo export model=best.pt format=onnx dynamic=True opset=12
转换模型
1 2 3 4 5 6 7 8 9 trtexec \ --onnx=best.onnx \ --saveEngine=yolo11n.engine \ --fp16 \ --minShapes=images:1x3x640x640 \ --optShapes=images:1x3x640x640 \ --maxShapes=images:1x3x640x640 \ --memPoolSize=workspace:4096 \ --verbose
导出batch2模型
1 2 3 4 5 6 7 8 trtexec \ --onnx=best.onnx \ --saveEngine=yolo11n_batch2.engine \ --fp16 \ --minShapes=images:2x3x640x640 \ --optShapes=images:2x3x640x640 \ --maxShapes=images:2x3x640x640 \ --verbose