第二章:系统烧录与初始化

好,咱们正式开始动手了。这一章要干的事,说白了就是把 Jetson 的「灵魂」装进硬件里。很多新手觉得烧录系统就是点个下一步,其实坑不少。我当年第一次给 Jetson TX2 烧系统,愣是折腾了一下午——后来发现是 USB 线质量不行。嗯,咱们今天把这些坑都填平。

2.1 SDK Manager 安装

NVIDIA 官方的 SDK Manager,是烧录 Jetson 系统的唯一官方工具。我个人习惯在 Ubuntu 主机上装它,Windows 虽然也能用虚拟机,但我不建议——USB 直通问题会让你怀疑人生。

下载与安装步骤

  1. 去 NVIDIA 官网下载 SDK Manager(需要注册账号,免费)
  2. 下载的是 .deb 包,直接双击或命令行安装
sudo dpkg -i sdkmanager_[版本号].deb
sudo apt --fix-broken install -y

这里要注意:你的主机系统最好是 Ubuntu 18.04 或 20.04。我试过在 22.04 上装,结果依赖冲突搞了半小时。说白了,NVIDIA 的更新速度没跟上 Ubuntu 的节奏。

⚠️ 避坑指南: 我曾经因为主机 Python 版本太高,导致 SDK Manager 启动就闪退。解决办法是装个 Python 3.6 的虚拟环境。如果你也遇到类似问题,先检查 python3 --version

2.2 系统镜像烧录

SDK Manager 装好后,把 Jetson 模块用原装 USB 线连到主机。注意:必须用原装线或高质量的数据线。我吃过亏,用了一根手机充电线,烧录到一半就断连,板子直接变砖——还好能强制恢复。

烧录流程

  1. 打开 SDK Manager,登录你的 NVIDIA 账号
  2. 选择 Jetson 型号(比如 AGX Orin、NX 等)
  3. 勾选「Jetson OS」和「Jetson SDK Components」
  4. 把 Jetson 进入强制恢复模式(按住 RECOVERY 键,再按一下 RST 键)
  5. 点击「Flash」开始烧录

为什么会强制恢复模式?说白了,就是让 Jetson 的 BootROM 等待主机发送镜像数据。你可以在终端用 lsusb 检查是否识别到设备:

lsusb | grep NVIDIA

如果看到类似 NVIDIA Corp. APX 的字样,说明连接成功。没看到?换根线试试,或者检查驱动。

💡 我的经验: 烧录过程中千万别拔 USB 线,也别断电。我见过有人手贱点了取消,结果板子变砖,得用跳线短接才能救回来。烧录大概需要 20-40 分钟,去泡杯咖啡吧。

2.3 首次开机配置

烧录完成后,拔掉跳线(如果有),接上显示器和键盘,上电开机。第一次启动会进入 Ubuntu 的初始化向导。这里有几个关键点:

系统初始化步骤

步骤 操作 注意事项
1 选择语言 选 English(中文支持可能不完整)
2 设置用户名和密码 记住!后面 SSH 要用
3 选择时区 选 Shanghai 或你所在时区
4 磁盘分区 默认即可,别手贱改

嗯,这里有个坑:首次启动后系统会自动更新。如果你网络不好,建议先跳过更新,否则可能卡在「Checking for updates」半小时。我一般直接拔网线,等进桌面后再手动配源。

🔑 关键操作: 进桌面后第一件事——打开终端,运行 sudo apt update && sudo apt upgrade -y。然后换国内源(清华或中科大),不然下载速度会让你崩溃。

2.4 网络与 SSH 设置

Jetson 开发板通常放在角落,不可能每次都接显示器。所以 SSH 是必备技能。我个人习惯:先配静态 IP,再开 SSH

设置静态 IP

编辑网络配置文件:

sudo nano /etc/netplan/01-netcfg.yaml

写入以下内容(根据你的网络环境修改):

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]

然后应用配置:

sudo netplan apply
⚠️ 注意: 我曾经因为 YAML 缩进不对,导致网络配置失败。YAML 对空格敏感,必须用两个空格缩进,不能用 Tab。如果 netplan apply 报错,检查缩进。

开启 SSH 服务

Jetson 默认没开 SSH,需要手动启动:

sudo systemctl enable ssh
sudo systemctl start ssh

然后从你的主机连接:

ssh 用户名@192.168.1.100

如果连不上,先 ping 192.168.1.100 看看通不通。不通的话,检查网线或防火墙。我遇到过最奇葩的问题——路由器开了 AP 隔离,导致设备间无法通信。你想想看,这种低级错误排查起来多浪费时间。

💡 进阶技巧: 配置 SSH 密钥登录,省去每次输密码的麻烦。在主机上运行 ssh-copy-id 用户名@IP,然后就能免密登录了。我平时调试 YOLO 模型,一天要 SSH 几十次,没密钥的话手都酸了。

本章小结

到这步,你的 Jetson 应该已经能通过网络远程访问了。系统烧录、初始化、网络配置,这三步是后续所有工作的基础。我见过不少学员卡在烧录阶段,其实大部分问题都是 USB 线或驱动没装好。记住:原装线、Ubuntu 主机、强制恢复模式,这三个要素缺一不可。

下一章,咱们开始装 YOLO 的依赖环境——CUDA、cuDNN、TensorRT 这些。嗯,那才是真正考验耐心的时候。