4、SDK Manager详解:安装与启动、组件选择策略、自定义安装路径、离线安装模式
说到JetPack的安装,SDK Manager绝对是绕不开的核心工具。我最早接触Jetson平台时,还是手动一个个下载deb包、交叉编译工具链,那叫一个折腾。后来NVIDIA推出了SDK Manager,说实话,这工具帮了大忙。但很多人只是点下一步下一步,其实里面有不少门道。
今天我就把这几年用SDK Manager的经验,掰开揉碎了讲给你听。
4.1 安装与启动:别急着双击
SDK Manager本质上是一个基于Python的图形化工具。它负责帮你完成三件事:下载组件、烧录系统、安装SDK包。
安装方式很简单:
- 从NVIDIA官网下载
sdkmanager_[版本号].deb包 - 或者通过apt仓库安装
我个人习惯用deb包安装,因为版本控制更明确:
sudo dpkg -i sdkmanager_2.1.0-11488_amd64.deb
sudo apt --fix-broken install -y
这里有个坑——依赖问题。SDK Manager依赖的Python库版本比较老,如果你系统里装了较新的Python 3.10+,可能会报错。我遇到过好几次,解决方案是用--fix-broken强制修复。
启动就更简单了:
sdkmanager
或者直接在应用菜单里找。第一次启动会让你登录NVIDIA开发者账号,这是必须的,因为组件下载需要鉴权。
sdkmanager --cli进入命令行模式。我经常在远程开发机上这么干。
4.2 组件选择策略:别全选,会出事
SDK Manager打开后,你会看到一堆组件列表。新手最容易犯的错误就是——全选。结果下载了十几个GB,安装还冲突。
我的选择原则是:按需加载,最小化安装。
核心组件就这几类:
| 组件类别 | 必选/可选 | 说明 |
|---|---|---|
| Jetson Linux (BSP) | 必选 | 系统内核、驱动、固件,这是基础 |
| CUDA Toolkit | 必选 | GPU计算核心库,跑AI离不开它 |
| cuDNN | 强烈推荐 | 深度学习加速库,我几乎每个项目都用 |
| TensorRT | 按需 | 推理优化引擎,做部署才需要 |
| Multimedia API | 按需 | 摄像头、编解码相关,做视觉项目必选 |
| VisionWorks/OpenCV | 可选 | 可以自己编译,SDK Manager里的版本较旧 |
举个例子,如果你只是做深度学习模型训练,那Multimedia API和VisionWorks完全可以不装。省下来的空间和时间,够你多跑几次实验了。
4.3 自定义安装路径:别放系统盘
SDK Manager默认把组件装到/根目录下。但Jetson的eMMC或者NVMe SSD空间通常不大,尤其是128GB的版本,装完JetPack基本就去了半条命。
我强烈建议自定义安装路径。
在SDK Manager的安装界面,有个“Advanced Options”按钮,点开后可以设置:
- Download folder:下载的deb包临时存放位置
- Installation folder:最终安装的目标路径
我个人习惯这样配:
Download folder: /data/jetpack_downloads
Installation folder: /data/jetpack
把/data挂载到一块大容量SSD上,这样系统盘只放核心系统,SDK组件全扔数据盘。万一系统崩了重刷,SDK组件还在,不用重新下载。
4.4 离线安装模式:没网也能干活
这个功能我太爱了。很多开发环境是内网隔离的,不能连外网。SDK Manager的离线模式就是为此而生。
离线安装分两步走:
第一步:在有网的机器上下载组件包
在SDK Manager里,选择“Download now, install later”模式。它会只下载不安装,所有文件保存在你指定的Download folder里。
sdkmanager --download --target JETSON_AGX_ORIN --product JetPack_5.1.3
下载完成后,把整个Download folder打包,拷贝到内网机器上。
第二步:在内网机器上离线安装
在内网机器上启动SDK Manager,选择“Offline installation”模式,指定刚才拷贝过来的文件夹路径即可。
这里有个关键点——依赖检查。离线安装时,SDK Manager不会自动帮你装系统依赖(比如libssl、libc6等)。你需要提前在内网机器上配好apt源,或者手动装好这些基础库。
sudo apt update && sudo apt upgrade,把系统依赖都更新到最新。这样能避免90%的依赖冲突问题。
4.5 核心逻辑流程图
下面这张图,是我根据多年使用经验总结的SDK Manager工作流程。你看完应该能明白,它到底是怎么把那么多组件串起来的。
你看,整个流程其实很清晰。核心就是第三步的组件选择——选对了,后面一路顺畅;选错了,各种报错等着你。
4.6 一些碎碎念
最后说几个我踩过的坑,你遇到了能少走弯路:
- SDK Manager版本要和JetPack匹配:老版本SDK Manager可能不认识新出的Jetson Orin NX,记得升级。
- 安装过程中别断电:尤其是烧录系统阶段,断电等于变砖。我有一块Jetson Nano就是这么废的。
- 多看看日志:安装失败时,SDK Manager会在
~/.nvidia/sdkmanager/logs下生成日志。别只看弹窗错误,日志里才有真话。
好了,SDK Manager的核心用法就这些。你只要记住:按需选组件、自定义路径、善用离线模式,基本就不会出大问题。
公众号:蓝海资料掘金营,微信deep3321