Jetson Nano开发实战:eMMC存储与SDK Manager系统烧录全解析
1. 从零开始:认识你的Jetson Nano与eMMC
如果你刚拿到一块Jetson Nano开发板,看着这块巴掌大的小电脑,可能会有点懵:这玩意儿怎么用?特别是当你发现它没有SD卡槽,或者你的版本是那个自带16GB存储的型号时,疑问就更大了。别急,这正是我们今天要聊的核心——eMMC版本的Jetson Nano。
简单来说,Jetson Nano就是NVIDIA推出的一款专门为边缘AI计算设计的小型计算机。你可以把它想象成一个自带“大脑”(CPU)和“图形处理器”(GPU)的超级微型电脑。它的GPU基于NVIDIA的Maxwell架构,虽然听起来不是最新的,但跑一些常见的AI模型,比如图像识别、物体检测,甚至一些轻量级的自然语言处理任务,都绰绰有余。它非常适合用来做智能小车、人脸识别门禁、智能摄像头这些好玩又有用的项目。
那么,eMMC又是什么呢?你可以把它理解为焊死在主板上的“内置硬盘”。就像你的手机,存储空间是直接集成在主板上的,不能像SD卡那样随意插拔。对于Jetson Nano来说,带eMMC的版本(比如4GB内存的版本通常就带16GB eMMC)最大的好处就是稳定。SD卡用久了可能会因为频繁读写而损坏,或者因为接触不良导致系统崩溃,但eMMC是焊接上去的,物理上更可靠,读写速度也通常比普通的SD卡要快一些。所以,如果你的项目需要7x24小时稳定运行,或者经常在移动、震动的环境下使用,eMMC版本会是更好的选择。
但eMMC也带来了一个“甜蜜的烦恼”:它不像SD卡那样,可以简单地在电脑上用读卡器烧录一个系统镜像就完事了。eMMC是板载存储,第一次使用或者系统崩溃后,你必须通过一种特殊的方式,把操作系统“灌”进去。这就引出了我们今天的主角之二:NVIDIA SDK Manager。这个工具,你可以把它看作是给Jetson系列开发板准备的“官方装机U盘”和“环境配置管家”。它不仅能帮你下载适配好的系统(基于Ubuntu的Jetson Linux),还能一键安装好CUDA、cuDNN、TensorRT这些让AI模型飞起来的核心库,省去了你手动配置环境时,面对各种版本依赖地狱的烦恼。
所以,整个流程的逻辑就很清晰了:你需要一台电脑(我们称之为“上位机”),通过USB线连接处于特殊“恢复模式”的Jetson Nano,然后运行SDK Manager,让它帮你完成从下载系统到安装环境的全部工作。听起来是不是比给电脑装系统还复杂一点?别担心,跟着我一步步来,其实很简单。我当年第一次操作也踩过不少坑,现在把这些经验都总结给你,保证你能顺利上车。
2. 万事俱备:硬件准备与上位机环境搭建
在开始激动人心的烧录之前,我们必须把准备工作做足。老话说得好,磨刀不误砍柴工,这里要是偷懒,后面很可能就会遇到各种奇奇怪怪的问题。
首先,清点你的硬件清单:
- Jetson Nano开发板(eMMC版本):确认你的板子型号,核心板背面通常有标识。确保板子完好,特别是Micro-USB接口。
- 电源适配器:官方推荐是5V/4A的DC电源。千万不要用手机充电器凑合,供电不足会导致烧录过程中板子重启,前功尽弃。我吃过这个亏,烧录到一半板子黑了,排查了半天才发现是电源的锅。
- Micro-USB数据线:注意,是数据线,不是只能充电的线!这是连接上位机和开发板进行通信的生命线。很多便宜的线只有充电功能,无法传输数据,会导致电脑根本识别不到设备。建议使用手机原配的那种数据线,或者明确支持数据传输的线。
- 上位机电脑:这是我们的操作主机。强烈推荐使用Ubuntu系统的电脑,可以是物理机,也可以是虚拟机。虽然SDK Manager也支持Windows,但在Ubuntu上兼容性最好,问题最少。版本上,Ubuntu 18.04或20.04 LTS是经过广泛验证的。我的主力机就是Ubuntu 20.04,整个过程非常顺畅。
- 网络环境:SDK Manager需要从NVIDIA服务器下载系统镜像和SDK组件,总大小可能超过10GB。请确保你的网络连接稳定且快速。最好用网线直连路由器,避免使用不稳定的Wi-Fi,否则下载中途断掉会很痛苦。
- 辅助工具(可选但建议准备):
- 跳线帽或杜邦线:用于短接进入恢复模式的针脚。
- 显示器、HDMI线、USB键鼠:在烧录完成后,首次启动系统时需要进行初始设置(用户名、密码、时区等)。当然,如果你熟悉,也可以通过串口或网络进行无头(headless)设置,但对于新手,接上显示器操作更直观。
接下来,搭建上位机环境:如果你的电脑已经是Ubuntu,那么可以跳过这一步。如果你用的是Windows,我强烈建议你在Windows 10/11上使用WSL 2(Windows Subsystem for Linux)来安装一个Ubuntu子系统。这是目前最优雅的解决方案,比用虚拟机性能损耗更小,文件交互也更方便。
不过这里有个巨坑需要特别注意:WSL下的Ubuntu版本必须和你要烧录的JetPack版本要求匹配!比如,如果你想为Jetson Nano烧录较老的JetPack 4.6.x,官方文档可能要求主机是Ubuntu 18.04。如果你在WSL里装了Ubuntu 22.04,很可能会在烧录过程中失败。我当初就在这里卡了好久,各种报错,最后才发现是版本问题。所以,请务必先查阅NVIDIA官方文档,确认你目标JetPack版本对主机系统的要求,然后在Microsoft Store里下载对应版本的Ubuntu。
准备好Ubuntu环境后,我们就可以安装SDK Manager了。打开浏览器,访问NVIDIA开发者网站,搜索“SDK Manager”进入下载页面。你需要一个NVIDIA开发者账号(免费注册)。找到对应你系统架构(通常是x86_64)的.deb安装包并下载。
打开终端,进入下载目录,执行安装命令:
cd ~/Downloads sudo dpkg -i sdkmanager_[你的版本号]_amd64.deb如果安装过程中提示缺少依赖,运行下面的命令修复并完成安装:
sudo apt --fix-broken install安装完成后,直接在终端输入sdkmanager就可以启动它了。第一次启动可能会提示你安装一些额外的图形库依赖,按照提示安装即可。
3. 关键一步:让Jetson Nano进入恢复模式
这是整个流程中最具“硬件操作感”的一步,也是新手最容易出错的地方。eMMC版本的Jetson Nano在出厂时,存储是空的,或者需要彻底重装系统时,必须让它进入“恢复模式”(Recovery Mode),上位机才能识别它为一个可烧录的设备,而不是一个普通的USB设备。
详细操作步骤如下,请严格按照顺序进行:
- 断电:确保Jetson Nano开发板处于完全断电状态,拔掉电源线。
- 找到恢复引脚:在Jetson Nano的核心板(就是那块绿色的、带有NVIDIA芯片的大板子)上,仔细寻找标有“FC REC”或“REC”的引脚。它旁边通常还有一个“GND”(接地)引脚。这两个引脚是挨在一起的。对于Jetson Nano Developer Kit,它们通常位于核心板下方、载板(那块更大的底板)的背面。如果不确定,一定要去官网查一下你的具体板型图纸,这一步千万不能错。
- 短接引脚:用跳线帽或者一根杜邦线(最好把两端金属线拧在一起),稳定地短接“FC REC”和“GND”这两个引脚。手一定要稳,保持短接状态不要松开。
- 连接USB数据线:将Micro-USB数据线的一端连接到Jetson Nano的Micro-USB口(注意不是电源口),另一端连接到你的上位机电脑。
- 上电:在保持短接的状态下,给Jetson Nano插上电源。此时板子上的电源指示灯应该会亮起。
- 松开短接:保持短接约2-3秒钟,然后松开跳线帽或杜邦线。至此,恢复模式应该已经成功激活。
如何验证是否成功?在上位机的Ubuntu终端里,输入以下命令:
lsusb你会看到一长串USB设备列表。如果操作成功,列表中应该会出现一个包含“NVIDIA Corp.”字样的设备(可能显示为“NVIDIA Corp. APX”或类似信息)。这就意味着你的电脑已经识别到了处于恢复模式的Jetson Nano,就像电脑识别到了一个刚插上的U盘一样。
如果lsusb里没有找到NVIDIA设备,请按顺序排查:① 检查短接是否准确、接触是否良好;② 换一根确定能传数据的Micro-USB线;③ 检查USB端口是否正常。我遇到过好几次都是线的问题,换根线立马就识别了。
4. 核心操作:使用SDK Manager烧录系统与组件
好了,硬件准备就绪,开发板也进入了“等待灌装”的状态,现在轮到SDK Manager大显身手了。打开你上位机上的SDK Manager,整个过程就像是一个图形化的向导,我们一步步来。
第一步:登录与设备选择启动SDK Manager后,首先会用你的NVIDIA开发者账号登录。登录成功后,你会看到“STEP 01”界面。这里最重要的是“Hardware Configuration”部分。
- Target Hardware:这里一定要选择“Jetson Nano”。注意,有些版本的SDK Manager会细分出“Jetson Nano (eMMC)”的选项,如果有,请务必选择它。如果没有,就选“Jetson Nano”即可。
- 如果前面的恢复模式操作正确,下面的“Target Hardware”状态应该会从“Not Selected”或“Disconnected”变成“Connected”,并且会显示具体的设备信息(如“Jetson Nano in recovery mode”)。如果没显示,可以点击旁边的“Refresh”按钮刷新一下。
第二步:选择软件组件在“STEP 01”的下半部分,是选择要安装的软件。
- Jetson OS:这就是Jetson Nano的系统镜像,必须勾选。系统会自动为你匹配一个推荐的JetPack版本(例如JetPack 5.1.2)。对于新手,我建议就用这个默认推荐的版本,兼容性最有保障。
- Jetson SDK Components:这里包含了CUDA、cuDNN、TensorRT、VisionWorks等一大堆AI开发库。对于16GB的eMMC版本,这里有个重要建议:你可以选择不勾选,或者只勾选最核心的CUDA。因为全部安装会占用大量空间,可能导致系统分区几乎被塞满。你可以先只烧录系统,等启动后再根据实际需要,用
apt命令单独安装必要的库。这样更灵活,也能节省宝贵的存储空间。如果存储空间充足(比如你用的是SD卡版本),可以全部勾选,让SDK Manager帮你一站式配齐。
选择好后,点击右下角的“CONTINUE”。
第三步:同意协议与下载在“STEP 02”界面,勾选“I accept the terms and conditions”同意许可协议。下方会显示即将下载内容的总大小和所需磁盘空间,请确保你的上位机有足够空间(通常需要20GB以上)。再次点击“CONTINUE”。
第四步:配置与烧录来到“STEP 03”,这是最关键的操作界面。
- 烧录模式:因为我们的Jetson Nano已经通过USB连接并处于恢复模式,所以SDK Manager会自动选择“Manual Setup”或“Device Mode”,并识别到你的设备。这里一般不需要改动。
- 初始配置:你需要在这里为Jetson Nano系统设置一个用户名、密码、计算机名和时区。请务必牢记你设置的用户名和密码,这是你以后登录系统的凭证。
- 开始烧录:确认所有信息无误后,勇敢地点下那个“Flash”按钮吧!
接下来,SDK Manager会开始它的工作:首先下载你选择的系统镜像和组件(耗时取决于网速),然后将其烧录到Jetson Nano的eMMC存储中。整个过程会在界面中有进度条显示,期间Jetson Nano可能会自动重启几次,USB连接也会断开重连,这是正常现象,千万不要中断操作或拔掉线缆。烧录系统部分大概需要10-20分钟,如果勾选了SDK组件,总时间可能长达1小时以上。泡杯茶,耐心等待。
第五步:初始设置与组件安装当系统烧录完成,Jetson Nano会自动重启。这时,你需要把显示器、键盘、鼠标接到开发板上。屏幕上会出现标准的Ubuntu系统首次设置界面,就像你给一台新电脑装系统一样,完成语言、时区、用户密码等设置。
系统设置完成后,如果你之前勾选了“Jetson SDK Components”,SDK Manager会尝试通过网络连接到你的Jetson Nano,继续安装那些AI组件。确保你的Jetson Nano和上位机在同一个局域网内(可以通过网线将开发板连接到路由器,或者使用USB网络共享)。SDK Manager会通过SSH自动登录并执行安装脚本,你只需要在提示时输入刚才设置的Jetson Nano的用户密码即可。
5. 验证与收尾:确认你的AI小车已就位
当SDK Manager弹出“Flash Complete”的提示时,恭喜你,最复杂的部分已经完成了!但先别急着庆祝,我们还需要做最后的验收测试,确保一切工作正常。
首先,在Jetson Nano上打开终端(快捷键Ctrl+Alt+T),输入以下命令进行验证:
检查GPU驱动:
nvidia-smi这个命令会显示一个类似任务管理器的界面,如果能看到Jetson Nano的GPU信息(比如GPU型号、内存占用等),说明NVIDIA驱动安装成功。这是AI计算的基础。
检查CUDA:
nvcc -V或者
cat /usr/local/cuda/version.txt这个命令会输出CUDA的版本号(例如“11.4”)。如果能正确显示,说明CUDA工具包已安装。CUDA是调用GPU进行并行计算的基石。
检查系统信息:
cat /etc/nv_tegra_release这个命令会显示你安装的JetPack(L4T)具体版本号,帮你确认系统版本。
如果以上命令都有正确输出,那么你的Jetson Nano就已经是一个功能完整的边缘AI计算设备了!你可以开始安装Python、PyTorch、TensorFlow等框架,跑你的第一个AI模型了。
最后,还有一些实用的收尾工作和技巧:
- 拔掉跳线帽:非常重要!烧录并验证成功后,记得把短接“FC REC”和“GND”的跳线帽或杜邦线拔掉。否则下次开机板子会直接进入恢复模式,无法正常启动系统。
- 扩展存储:16GB的eMMC装完系统和基础环境后可能就有点捉襟见肘了。建议买一张高速的MicroSD卡(建议A1/U3级别,容量64GB或以上),格式化成ext4文件系统,挂载到
/home目录或者专门用来存放数据集和项目代码,这样可以极大缓解存储压力。 - 配置远程访问:总不能一直接着显示器键盘用吧?我强烈建议你设置SSH远程登录。在Jetson Nano上安装
openssh-server(sudo apt install openssh-server),然后通过ifconfig查看它的IP地址,以后就可以从你的主力电脑上通过终端远程操作它了,非常方便。 - 安装系统监控工具:推荐安装
jetson-stats这个神器。只需运行sudo pip3 install jetson-stats,安装后使用sudo jtop命令。它能以一个非常直观的界面实时显示CPU/GPU/内存的使用率、频率、温度以及所有已安装的JetPack组件版本,对于监控和调试来说不可或缺。
回想我第一次给Jetson Nano烧录系统,因为一根劣质USB线折腾了一下午。所以,细节决定成败。这套流程虽然步骤不少,但每一步都有它的道理。一旦你成功跑通一次,以后再遇到系统问题需要重装,或者换一块新板子,就会觉得非常轻松了。边缘AI开发的乐趣,就从这块绿色的小板子成功点亮开始。
