2、系统烧录与初始化:SDK Manager安装与使用、JetPack系统烧录、首次启动配置与网络设置

好,咱们进入第二章。这一章,说白了就是让 Jetson 真正「活过来」的关键一步。你拿到一块 Jetson 开发板,它只是一块冰冷的硬件。只有把系统烧进去,它才算是有了灵魂。

我个人习惯把这一步叫做「开光仪式」。搞好了,后面开发一路顺风;搞砸了,可能得折腾一整天。别问我怎么知道的——我曾经在给客户演示的前夜,把系统刷成了砖,凌晨三点还在找恢复模式。

嗯,咱们一步步来。

2.1 SDK Manager:你的装机神器

NVIDIA 官方提供了一个工具,叫 SDK Manager。它不只是刷系统,还能帮你装 CUDA、cuDNN、TensorRT 这些深度学习库。说白了,一条龙服务。

2.1.1 安装 SDK Manager

你需要在你的 Ubuntu 主机(注意,必须是 Ubuntu 18.04 或 20.04,我建议用 20.04)上安装它。为什么?因为 Jetson 的刷机工具依赖 Linux 的底层驱动。

步骤很简单:

  1. 去 NVIDIA 官网下载 sdkmanager_[版本].deb
  2. 终端执行:sudo dpkg -i sdkmanager_[版本].deb
  3. 如果报依赖错误,执行:sudo apt-get install -f
我的小技巧: 下载前先注册好 NVIDIA 开发者账号。SDK Manager 登录时需要它。我第一次刷机时没注册,卡在登录界面半小时,尴尬。

2.1.2 连接开发板与主机

这里有个关键点:Jetson 开发板需要进入 强制恢复模式(Force Recovery Mode)。不同型号进入方式略有不同,但原理一样:

  • 用 Micro-USB 线(或 USB-C,看型号)连接 Jetson 和你的 Ubuntu 主机
  • 按住开发板上的 RECOVERY 按钮(通常标有「REC」)
  • 按住不放,再按一下 RESET 按钮,然后松开 RESET
  • 等待 2 秒,松开 RECOVERY 按钮

怎么确认成功了?在主机终端输入:

lsusb

如果看到 NVIDIA Corp. 相关的设备,就对了。我见过有人插错 USB 口,折腾半天才发现——嗯,注意看接口旁边的图标。

2.2 JetPack 系统烧录:别怕,就是点几下鼠标

打开 SDK Manager,登录你的 NVIDIA 账号。你会看到这样的界面:

步骤 操作 说明
1 选择硬件平台 比如 Jetson Orin NX 或 Xavier NX
2 选择 JetPack 版本 我建议选最新的 LTS 版本,稳定
3 勾选组件 CUDA、cuDNN、TensorRT 必选
4 点击「Flash」 开始烧录,约 20-40 分钟
注意: 烧录过程中不要断开 USB 线,不要断电。我曾经在烧录到 80% 时手贱碰了一下线,结果系统分区损坏,只能重新来过。

烧录完成后,SDK Manager 会提示你进行后续安装。你可以选择「Pre-install」——这样 CUDA 等库会直接刷进系统,省得后面再装。我个人习惯选这个,省事。

2.3 首次启动配置:让 Jetson 认识你

系统烧好了,拔掉 Micro-USB 线,接上 HDMI 显示器和键盘鼠标。上电开机。

第一次启动会进入 Ubuntu 的初始化向导。你需要:

  • 设置用户名和密码(记住它,后面 SSH 要用)
  • 选择语言和时区(选中文或英文都行,我建议英文,终端里少些乱码)
  • 配置网络(先连有线,后面再配 Wi-Fi)

这里有个坑:Jetson 默认的桌面环境是 GNOME,对性能有一定消耗。如果你打算做嵌入式开发,我建议后面换成轻量级桌面,或者直接用命令行模式。不过第一次启动,先看看桌面也挺好。

2.4 网络设置:让 Jetson 连上世界

开发板没有网络,就像人没有手机——寸步难行。咱们需要配好网络,才能远程 SSH 进去。

2.4.1 有线网络(推荐)

插上网线,Ubuntu 一般会自动获取 IP。在终端输入:

ip addr show

找到类似 192.168.1.xxx 的地址,记下来。这就是你 SSH 的目标。

2.4.2 无线网络配置

如果你用 Wi-Fi,可以在桌面右上角点击网络图标,选择你的 Wi-Fi 并输入密码。但有时候 Wi-Fi 驱动没装好——嗯,我遇到过。这时需要手动装驱动:

sudo apt update
sudo apt install bcmwl-kernel-source

装完重启,Wi-Fi 就能用了。

2.4.3 设置静态 IP(推荐)

动态 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, 8.8.4.4]

保存后执行:

sudo netplan apply
关键点: 确保你设置的 IP 没有被局域网内其他设备占用。我习惯先 ping 一下这个 IP,如果没回应,说明是空闲的。

2.5 验证系统与网络

最后,咱们做个快速验证。在 Jetson 终端里输入:

uname -a
nvidia-smi
ping 8.8.8.8

如果能看到内核版本、GPU 信息,并且 ping 通外网,恭喜你——系统烧录与初始化大功告成!

嗯,到这里,你的 Jetson 已经准备好接受远程调用了。下一章,咱们就聊 SSH 连接和远程开发的实战技巧。

我的经验: 第一次烧录成功后,建议马上做一个系统备份。用 dd 命令把整个 eMMC 或 SD 卡镜像出来。万一后面搞坏了,直接恢复,省得重新刷机。我曾经在项目 deadline 前一天把系统搞崩,全靠备份救场。