Jetson Nano Developer Kit

本文档记录当前 Jetson Nano 设备的实际环境、常用命令、容器用法、扩展引脚配置、系统脚本和官方参考资料。

设备信息

实际目标:

注意:这是 Jetson Nano / JetPack 4.x / L4T 32.x 时代的环境,不是 Jetson Orin Nano。不要混用 Orin Nano 的 Ampere GPU、Cortex-A78AE、LPDDR5、NVMe 等参数。

官方参考资料

硬件与供电

Jetson Nano Developer Kit 常见接口包括:

J48 供电跳线

J48 用于选择供电方式:

常见建议:

系统检查

基础信息

hostname
whoami
cat /etc/os-release
uname -a
cat /etc/nv_tegra_release

CPU

lscpu

Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1
Core(s) per socket:  4
Socket(s):           1
Vendor ID:           ARM
Model:               1
Model name:          Cortex-A57
Stepping:            r1p1
CPU max MHz:         1479.0000
CPU min MHz:         102.0000
BogoMIPS:            38.40
L1d cache:           32K
L1i cache:           48K
L2 cache:            2048K
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32

当前机器输出要点:

Architecture:        aarch64
CPU(s):              4
Model name:          Cortex-A57
CPU max MHz:         1479.0000
CPU min MHz:         102.0000

内存与磁盘

free -h

              total        used        free      shared  buff/cache   available
Mem:           3.9G        1.4G        528M         57M        1.9G        2.2G
Swap:          1.9G        1.3M        1.9G

df -hT

Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/mmcblk0p1 ext4       60G   20G   38G  34% /
none           devtmpfs  1.7G     0  1.7G   0% /dev
tmpfs          tmpfs     2.0G   40K  2.0G   1% /dev/shm
tmpfs          tmpfs     2.0G   37M  1.9G   2% /run
tmpfs          tmpfs     5.0M  4.0K  5.0M   1% /run/lock
tmpfs          tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
tmpfs          tmpfs     396M  136K  396M   1% /run/user/1000
/dev/loop0     vfat       16M   66K   16M   1% /media/jean/L4T-README

网络

ip -br addr

当前主要入口是:

wlan0  UP  192.168.32.64/24

摄像头设备

ls -ltrh /dev/video*

crw-rw----+ 1 root video 81, 0 6月   4  2025 /dev/video0

编译工具与版本

python3 --version
# Python 3.6.9
gcc --version

gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ld -v

GNU ld (GNU Binutils for Ubuntu) 2.30

cmake --version

cmake version 3.10.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).

make --version

GNU Make 4.1
Built for aarch64-unknown-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

补充:

Jetson 性能与功耗

查看实时状态

tegrastats

tegrastats 可以观察:

查看功耗模式

nvpmodel -q

当前机器曾显示:

NV Power Mode: MAXN

查看或锁定频率

jetson_clocks --show

如果需要在测试中尽量固定性能,可使用:

sudo jetson_clocks

恢复默认动态调频通常需要重启,或根据保存的配置恢复。

JetPack / L4T / CUDA 组件

JetPack 是 Jetson 的软件栈,L4T 是其中的系统 BSP 组件。当前设备是 L4T R32.6.1,对应 JetPack 4.6 系列。

JetPack 常见组件包括:

当前系统安装了较完整的 L4T 32.6.1 包,例如:

常见 sample 路径

JetPack 组件 示例路径
TensorRT /usr/src/tensorrt/samples/
cuDNN /usr/src/cudnn*_samples*/
CUDA /usr/local/cuda-<version>/samples/
Multimedia API /usr/src/tegra_multimedia_api/
VisionWorks /usr/share/visionworks/sources/samples/
OpenCV /usr/share/OpenCV/samples/
VPI /opt/nvidia/vpi/

CUDA 与 nvcc

当前机器已安装 CUDA 10.2,CUDA 目录如下:

ls -ld /usr/local/cuda*

要点:

/usr/local/cuda -> /etc/alternatives/cuda
/usr/local/cuda-10 -> /etc/alternatives/cuda-10
/usr/local/cuda-10.2

nvcc 可通过绝对路径访问:

/usr/local/cuda/bin/nvcc --version

当前输出:

nvcc: NVIDIA (R) Cuda compiler driver
Cuda compilation tools, release 10.2, V10.2.300
Build cuda_10.2_r440.TC440_70.29663091_0

CUDA 版本文件:

cat /usr/local/cuda/version.txt
cat /usr/local/cuda/version.json

当前版本信息:

常用 CUDA 工具:

/usr/local/cuda/bin/nvcc --version
/usr/local/cuda/bin/cuda-gdb --version
/usr/local/cuda/bin/cuda-memcheck --version
/usr/local/cuda/bin/nvprof --version

注意:交互式 bash 中已能通过 PATH 找到 nvcc。自动化脚本建议使用 /usr/local/cuda/bin/nvcc,或显式设置 PATH=/usr/local/cuda/bin:$PATH

GPU 信息

Jetson Nano 使用集成 GPU。CUDA deviceQuery 检测结果:

Detected 1 CUDA Capable device(s)
Device 0: "NVIDIA Tegra X1"
CUDA Driver Version / Runtime Version: 10.2 / 10.2
CUDA Capability Major/Minor version number: 5.3
Total amount of global memory: 3956 MBytes (4148273152 bytes)
( 1) Multiprocessors, (128) CUDA Cores/MP: 128 CUDA Cores
GPU Max Clock rate: 922 MHz (0.92 GHz)
Memory Clock rate: 13 Mhz
Memory Bus Width: 64-bit
L2 Cache Size: 262144 bytes
Integrated GPU sharing Host Memory: Yes
Result = PASS

设备树识别信息:

tr '\0' '\n' < /proc/device-tree/model
tr '\0' '\n' < /proc/device-tree/compatible

当前结果:

NVIDIA Jetson Nano Developer Kit
nvidia,p3449-0000-b00+p3448-0000-b00
nvidia,jetson-nano
nvidia,tegra210

GPU sysfs 状态:

cat /sys/devices/gpu.0/load
cat /sys/devices/gpu.0/devfreq/57000000.gpu/cur_freq
cat /sys/devices/gpu.0/devfreq/57000000.gpu/min_freq
cat /sys/devices/gpu.0/devfreq/57000000.gpu/max_freq

当前检测值:

load: 0
cur_freq: 76800000
min_freq: 76800000
max_freq: 921600000

编译并运行 CUDA deviceQuery

如果 samples 目录下没有预编译好的 deviceQuery,可复制完整 sample 结构到 /tmp 再编译:

rm -rf /tmp/cuda-samples-check
mkdir -p /tmp/cuda-samples-check
cp -a /usr/local/cuda/samples/common /tmp/cuda-samples-check/common
cp -a /usr/local/cuda/samples/1_Utilities /tmp/cuda-samples-check/1_Utilities
cd /tmp/cuda-samples-check/1_Utilities/deviceQuery
PATH=/usr/local/cuda/bin:$PATH make -j2
./deviceQuery

成功时最后会看到:

Result = PASS

Docker 使用

当前机器已安装 Docker:

docker --version

DLI Nano AI 容器

官方容器页面:https://catalog.ngc.nvidia.com/orgs/nvidia/teams/dli/containers/dli-nano-ai

当前机器已有脚本:

~/docker/start_dli.sh

脚本作用:

适合场景:

等价命令示例:

sudo docker run --runtime nvidia -it --rm --network host \
  --volume ~/nvdli-data:/nvdli-nano/data \
  --volume /tmp/argus_socket:/tmp/argus_socket \
  --device /dev/video0 \
  nvcr.io/nvidia/dli/dli-nano-ai:v2.0.2-r32.7.1

启动后通常等待约 10 秒,访问 JupyterLab:

http://<jetson-ip>:8888

DLI 默认密码通常为:

dlinano

L4T 基础容器

当前机器已有脚本:

~/docker/start_l4t.sh

脚本作用:

适合场景:

等价命令示例:

sudo docker run -it --rm --net=host --runtime nvidia \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix/:/tmp/.X11-unix \
  nvcr.io/nvidia/l4t-base:r32.4.3

DLI DeepStream 容器示例

sudo docker run --runtime nvidia -it --rm --network host \
  -v /tmp/.X11-unix/:/tmp/.X11-unix \
  -v /tmp/argus_socket:/tmp/argus_socket \
  -v ~/nvdli-deepstream:/dli/task/my_apps \
  --device /dev/video0 \
  nvcr.io/nvidia/dli/dli-nano-deepstream:v2.0.0-DS6.0.1

远程桌面

当前机器已有脚本:

~/docker/start_vino.sh

作用:

脚本内容等价于:

/usr/lib/vino/vino-server --sm-disable 2>&1 | tee -a ~/.local/share/vino/log

适合在不接显示器时访问 Jetson 桌面。

Jetson-IO 与 40-pin 扩展接口

Jetson-IO 是 NVIDIA 提供的扩展接口配置工具,用于配置 40-pin header、CSI 等外设接口的 pinmux 和设备树 overlay。

启动交互式界面:

sudo /opt/nvidia/jetson-io/jetson-io.py

常用脚本:

/opt/nvidia/jetson-io/config-by-pin.py
/opt/nvidia/jetson-io/config-by-function.py
/opt/nvidia/jetson-io/config-by-hardware.py
/opt/nvidia/jetson-io/jetson-io.py

按引脚查看

sudo /opt/nvidia/jetson-io/config-by-pin.py --list
sudo /opt/nvidia/jetson-io/config-by-pin.py --pin 3

作用:

按功能配置

sudo /opt/nvidia/jetson-io/config-by-function.py --help

作用:

按硬件模块配置

sudo /opt/nvidia/jetson-io/config-by-hardware.py --list

作用:

注意:Jetson Nano GPIO 通常为 3.3V 逻辑电平,不要直接接入 5V 信号。

Jetson.GPIO

Jetson.GPIO 文档通常位于:

/opt/nvidia/jetson-gpio/doc/README.txt

可用于 Python 控制 GPIO。使用前建议确认:

python3 -c "import Jetson.GPIO as GPIO; print(GPIO.VERSION)"

如果权限不足,检查用户是否在 gpio 相关组中,或按 README 配置 udev 规则。

USB Device Mode

相关脚本位于:

/opt/nvidia/l4t-usb-device-mode/

用途:让 Jetson 通过 USB 作为复合设备暴露给主机,常见能力包括:

主要脚本:

脚本 作用
nv-l4t-usb-device-mode-config.sh 定义 USB gadget 协议、网络、DHCP、MAC、设备描述等配置。
nv-l4t-usb-device-mode-start.sh 创建并启动 USB gadget,启用 RNDIS、ACM、ECM/NCM、Mass Storage 等功能。
nv-l4t-usb-device-mode-runtime-start.sh 拉起 l4tbr0,配置 IP,启动 DHCP,恢复路由。
nv-l4t-usb-device-mode-runtime-stop.sh 停止 DHCP,删除运行态文件,关闭 l4tbr0
nv-l4t-usb-device-mode-state-change.sh 根据 USB CONFIGURED 状态自动启停 runtime 服务。
nv-l4t-usb-device-mode-stop.sh 彻底关闭 gadget,删除 configfs 项,关闭网桥并卸载 loop 设备。

查看脚本:

ls /opt/nvidia/l4t-usb-device-mode/

Bootloader / QSPI

相关脚本:

/opt/nvidia/l4t-bootloader-config/nv-l4t-bootloader-config.sh

作用:

适合场景:

系统脚本清单

CodeCrafters 项目脚本

~/Documents/codecrafters-http-server-c/your_program.sh

作用:

适合场景:

Ubuntu unminimize

/usr/local/sbin/unminimize

作用:

通常不需要运行,除非系统缺少基础文档、man page 或基础工具。

Swap 调整

如果编译或运行模型时内存不足,可以增加 swap。

示例:创建 4 GB swap 文件。

sudo systemctl disable nvzramconfig
sudo fallocate -l 4G /mnt/4GB.swap
sudo chmod 600 /mnt/4GB.swap
sudo mkswap /mnt/4GB.swap
sudo sh -c 'echo "/mnt/4GB.swap swap swap defaults 0 0" >> /etc/fstab'
sudo reboot

重启后检查:

free -h
swapon --show

常用软件安装

VLC

sudo snap install vlc

如果 snap 不可用,也可以优先考虑 apt:

sudo apt update
sudo apt install vlc

常见排查

没有 nvidia-smi

Jetson 平台通常不使用桌面 GPU 上的 nvidia-smi。请使用:

tegrastats
nvpmodel -q
jetson_clocks --show
cat /sys/devices/gpu.0/load
cat /sys/devices/gpu.0/devfreq/57000000.gpu/cur_freq

CUDA 能力建议用 deviceQuery 验证。

容器无法访问摄像头

检查:

ls -ltrh /dev/video*
ls -l /tmp/argus_socket

Docker 启动时需要按摄像头类型传入:

低电压或不稳定

如果出现随机重启、USB 外设掉线、性能异常下降:

快速命令汇总

# 登录
ssh jetson

# 系统
cat /etc/os-release
cat /etc/nv_tegra_release
uname -a

# 资源
free -h
df -hT
ip -br addr

# 性能 / GPU
tegrastats
nvpmodel -q
jetson_clocks --show
cat /sys/devices/gpu.0/load
cat /sys/devices/gpu.0/devfreq/57000000.gpu/cur_freq

# CUDA
/usr/local/cuda/bin/nvcc --version
cat /usr/local/cuda/version.txt

# Docker
docker --version
docker ps -a

# Jetson-IO
sudo /opt/nvidia/jetson-io/jetson-io.py

# USB device mode 脚本
ls /opt/nvidia/l4t-usb-device-mode/

Page Source