第2章:系统烧录与初始化
好,系统到手了,接下来就是让它真正跑起来。
这一章,我们聊聊怎么把系统装进Jetson里。说白了,就是给这块板子装上「大脑」。我个人习惯把这一步叫做「开光仪式」——搞好了,后面顺风顺水;搞砸了,可能得折腾一整天。
2.1 SDK Manager烧录系统
如果你用的是官方推荐的NVIDIA Jetson开发套件(比如Orin NX、Xavier NX),那最省事的方式就是用SDK Manager。
为什么?因为它不光帮你烧系统,还会顺手把CUDA、cuDNN、TensorRT这些深度学习必备的库一起装好。我在项目中遇到过,有人手动装这些库,版本对不上,折腾了两天。用SDK Manager,半小时搞定。
准备工作:
- 一台Ubuntu主机(18.04或20.04,我建议用20.04,兼容性最好)
- Jetson开发板(通电,用原装电源,别用杂牌)
- USB Type-C数据线(连接主机和Jetson)
- 网络环境(主机和Jetson要在同一个局域网)
操作步骤其实不复杂:
- 在主机上下载并安装SDK Manager
- 打开软件,登录NVIDIA账号
- 选择你的Jetson型号和系统版本
- 勾选需要安装的组件(CUDA、TensorRT这些,全选就行)
- 点击「Flash」开始烧录
注意:烧录过程中不要断开USB线,不要断电。我曾经有一次手贱拔了线,结果板子变砖了,只能重新进入恢复模式再刷一次。
烧录完成后,系统会自动重启。这时候你会看到Jetson的桌面,嗯,第一次看到那个界面,还是挺有成就感的。
2.2 SD卡启动盘制作
如果你用的是Jetson Nano,或者你想给系统做个备份,那SD卡启动盘就派上用场了。
我个人习惯用Etcher这个工具,简单粗暴。当然,你用dd命令也行,但容易手滑写错盘符。
制作步骤:
- 下载Jetson的SD卡镜像文件(.img格式)
- 插入SD卡(建议用32GB以上,Class 10或UHS-I级别)
- 打开Etcher,选择镜像文件,选择SD卡,点击「Flash」
- 等待写入完成,验证通过后弹出SD卡
小技巧:SD卡的质量直接影响系统稳定性。我踩过坑,用了张杂牌卡,跑模型时经常莫名其妙卡死。后来换了三星的EVO Plus,再没出过问题。
把烧好的SD卡插进Jetson,上电,系统就会从SD卡启动。嗯,就是这么简单。
2.3 系统初始化设置
第一次进系统,你会看到一个设置向导。别急着跳过,这里有几个关键点:
- 用户名和密码:默认是nvidia/nvidia,我建议改成你自己的。安全第一。
- 时区:选Asia/Shanghai,不然日志时间对不上,排查问题很痛苦。
- 磁盘分区:如果你用的是SD卡,建议把剩余空间扩展到根分区。不然装几个包就提示磁盘满了。
扩展分区的命令很简单:
sudo apt-get update
sudo apt-get install -y nvidia-jetpack
sudo /usr/lib/nvidia/nvidia-jetpack/resize-rootfs.sh
sudo reboot
重启后,用df -h检查一下,根分区应该已经变大了。
2.4 网络配置
Jetson默认用DHCP获取IP地址。但作为开发板,我建议你给它设个静态IP。为什么?因为每次重启IP都会变,你SSH连接时就得去查IP,烦不烦?
配置静态IP的方法:
sudo nmcli con mod "Wired connection 1" \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns 8.8.8.8 \
ipv4.method manual
sudo nmcli con up "Wired connection 1"
记得把IP地址改成你局域网内的可用地址。别跟其他设备冲突了。
验证网络:
ping -c 4 8.8.8.8
ping -c 4 baidu.com
两个都能通,说明网络没问题。
2.5 SSH远程连接
Jetson的桌面环境挺吃资源的。我平时开发,基本都是SSH连上去,在终端里操作。省资源,效率也高。
首先,确保Jetson上SSH服务是开启的:
sudo systemctl enable ssh
sudo systemctl start ssh
然后在你的主机上连接:
ssh nvidia@192.168.1.100
输入密码,搞定。
进阶技巧:配置SSH密钥登录,省去每次输密码的麻烦。
# 在主机上生成密钥
ssh-keygen -t rsa -b 4096
# 把公钥复制到Jetson
ssh-copy-id nvidia@192.168.1.100
之后登录就不用密码了。我在项目中经常同时管理多块Jetson,这个技巧帮我省了不少时间。
2.6 VNC远程桌面配置
有时候你需要图形界面,比如调试摄像头、可视化模型输出。这时候VNC就派上用场了。
Jetson上默认用的是LightDM桌面管理器。配置VNC其实不难:
# 安装VNC服务器
sudo apt-get install vino
# 开启VNC服务
gsettings set org.gnome.Vino enabled true
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false
# 设置密码(改成你自己的)
gsettings set org.gnome.Vino authentication-methods "['vnc']"
gsettings set org.gnome.Vino vnc-password $(echo -n "yourpassword" | base64)
然后在主机上用VNC客户端连接:192.168.1.100:5900
注意:VNC默认不加密,不要在公网上用。只在局域网内使用。如果你需要远程访问,建议先搭个VPN。
嗯,到这里,你的Jetson已经可以正常工作了。系统烧好了,网络配好了,远程也能连上了。接下来,我们就可以开始装深度学习环境了。
下一章,我们聊聊CUDA和cuDNN的安装。别走开。