Jeston刷机
SDKManager
SDKManager下载:https://developer.nvidia.com/sdk-manager
SDKManager官方文档:https://docs.nvidia.com/sdk-manager/install-with-sdkm-jetson/index.html
Jetson Xavier NX (天梭)刷机
1、准备工作(重要)
- 虚拟机安装ubuntu-20.04版本的系统
-
- Jetson Xavier NX只支持ubuntu-20.04、18.04系统安装JetPack
- 虚拟机配置参数如下图
-
- 内核越多越好,这样安装速度快很多,这里设为Processors=4*4个core=16
-
- Memory不能低于12GB
-
- Hard Disk不能低于100GB,最好分配150GB以上
- Hard Disk不能低于100GB,最好分配150GB以上
2、安装步骤
第一步:
Jetson Xavier NX
先不接通电源;
第二步:采用
Type-C
线将主机与Jetson Xavier NX
连接起来;
第三步:将
Jetson Xavier NX
进入Recover
模式:
- 天梭盒子:按住
RCY
,然后接通电源即可(RES
是重启按钮)。- Jetson Xavier NX官方:将
Jetson Xavier NX
的FC REC
引脚和GND
引脚用杜邦线短接(第二个和第三个引脚),然后接通电源。
第四部:确定
Jetson Xavier NX
与虚拟机/主机
已连接,SDKManager
已经识别到Jetson Xavier NX
设备,Target Hardware
下方显示Jetson Xavier NX的字样代表连接成功。
- 右击虚拟机设备==>
Removable Devices
>NVIDIA LIUNX for Tegra
>Disconnect (connect to host)
即可让虚拟机连接上Jetson Xavier NX
设备;
第五步:选择需要下载的安装包,这里将需要用的安装包都勾选上即可,如下图所示。
第六步:下载安装包,这一步包含下载和安装两个步骤
- 两个框都勾选,代表先下载,下载完后再返回STEP 02安装(建议)
- 只勾选第一个框,代表边下载边安装(不建议)
第七步:安装:由于EMMC内存不足,烧机阶段分为两步:第一步,刷jetpack系统到emmc中,再设定从ssd启动;第二步,烧录cuda、opencv、deepstream到系统中。
- 1、重新返回STEP 02安装步骤,只勾选Jeston Liunx进行安装;
- 先只安装Jeston Liunx的原因:1、Jetson Xavier NX官方搭载的是16GB/8GB的核心板,内存太小,安装其他选项会导致EMMC内存不足。
- 在Jeston Liunx安装完后,会出现虚拟机\主机与Jetson Xavier NX设备IP不通的现象,后续cuda、opencv等安装包都不会安装成功。
- 2、只勾选第一个框(
I accept the terms and conditions of the license agreements.
),再点击CONTINUE按钮进入STEP 03- 3、弹框1:输入虚拟机的开机密码
- 4、弹框2:输入新的
Newusername
和Newuserpassward
,随便填写,记住即可,并选择安装存储位置为EMMC
即可;- 5、等待安装结束。
第八步:Jetson Xavier NX关闭电源,接上显示器,然后通电,一直按见键盘F11,选择EMMC为启动选项,这样会进入新刷号的系统zbs用户系统中,不然可能会进入之前SSD盘中原来使用的系统。
第九步:进入系统:
- 1、执行后续步骤前,需要检查SSD的设备名称是不是/dev/nvme01p1
- 2、如果不一致,需要修改以下文件对应位置:copy-rootfs-ssd.sh、data/setssdroot.sh、data/setssdroot.service
- 3、如果SSD是新买安装上的,SSD默认是NTFS的文件系统格式,用在Ubuntu上,需要格式化成Ext4的格式,我使用ubuntu的自带的 Disks 软件,来格式化硬盘(直接搜索就出来了)。
- 4、在SSD中打开终端(只要打开终端就行),将rootOnNVMe项目克隆到本地(如果连接不上网络就采用U盘将rootOnNVMe项目拷贝进去)
git clone https://github.com/jetsonhacks/rootOnNVMe.git
cd rootOnNVMe
./copy-rootfs-ssd.sh
===> 拷贝文件系统到SSD中;
./setup-service.sh
===> 设置ssd为启动盘;
reboot
===> 重启;
第10步:针对天梭盒子:重启显示 [FAILED] Failed to start MySQL Community Sever. ,天梭盒子连接不上网络
- 1、打开终端
- 2、ifconfig :查看usb0的IP,显示如下,usb0并没有生成对应的IP。
- 3、配置Jetson Xavier NX的IP地址
sudo ifconfig usb0 192.168.55.1
- ifconfig再次查看,usb0已经显示192.168.55.1的IP了
- 4、在虚拟机端ping一下Jetson Xavier NX的
usb0
的IP
ping 192.168.55.1
第11步:切换到虚拟机再次安装,此时安装只勾选Jeston Runtime Components和Jeston SDK Components,注意:一定要取消Jeston Liunx系统安装,输入之前创建的
Newusername
和Newuserpassward
,等待安装完成即可;
第12步:测试Jetson Xavier NX系统是否安装好
# 查看cuda
nvcc -V
# 测试deepstream环境
cd /opt/nvidia/deepstream/deepstream-6.3/samples/configs/deepstream-app
deepstream-app -c source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt
Jetson Xavier NX安装报错
报错一:没有进入Recover模式
在采用
Automatic setup
设置安装时,会报IP
错误,在采用Manual setup
设置时,不会显示Flash
刷机按钮。如下图所示:
- 这是因为
Jetson Xavier NX
设备没有进入Recover
模式。
报错二:[FAILED] Failed to start MySQL Community Sever.
解决方案:
先打开终端,执行sudo ifconfig usb0 192.168.55.1
首先断掉电源,重启,不行再关机,再采用recover模式启动,然后再关机启动。
不行就多尝试几次
Jetson设备在刷机后默认没有网络,特别是通过 Type-C 接口连接主机时。这可能是由于以下原因之一:
- 没有正确设置 USB 网络共享
默认情况下,Jetson 设备可能没有启用 USB 网络共享功能。 - 主机未配置 USB 网络适配器
主机侧可能没有自动识别 Jetson 的 USB 网络接口,需要手动配置。
以下是解决此问题的方法:
方法 1:确保 Jetson 端启用了 USB 网络共享 - 连接 Jetson 和主机的 Type-C 数据线。
- 在 Jetson 上运行以下命令,检查 USB 网络是否可用:
ifconfig
如果你看到 usb0 或类似名称的网络接口,则表示 USB 网络已被检测到。
5. 如果未检测到,可以尝试手动启用:
sudo nmcli connection add type ethernet con-name usb0 ifname usb0
sudo nmcli connection up usb0
方法 2:在主机上配置 USB 网络适配器
6. 在Jetson Xavier NX
运行以下命令,查看 usb0网络接口是否存在:
ifconfig
或者使用 ip addr 检查是否有新的网络接口(例如 usb0)。
7. 如果未发现 USB 网络接口,可以尝试重载 USB 网络模块:
sudo modprobe usbnet
sudo modprobe cdc_ether
- 配置
Jetson Xavier NX
侧的 IP 地址:
sudo ifconfig usb0 192.168.55.1
(假设 Jetson 的 USB 默认网络地址是 192.168.55.1)
9. 确保主机可以与 Jetson 通信:
ping 192.168.55.1
方法 3:设置 Jetson 自动获取网络
10. 使用 nmtui 工具配置网络:
sudo nmtui
- 选择 Activate a connection,找到 usb0 接口并激活。
- 检查网络是否成功连接:
nmcli connection show
方法 4:使用共享网络
如果通过主机共享网络:
13. 在主机上启用网络共享:
• 在 Linux 主机中,进入网络设置,选择有互联网访问的网络连接。
• 在“共享”选项中,允许该连接通过 USB 接口共享网络。
14. 确保 Jetson 可以自动分配到 IP 地址:
sudo dhclient usb0
方法 5:检查硬件连接
确保:
• Type-C 数据线支持数据传输(不是仅供电线)。
• 如果是开发板,例如 Jetson Xavier NX,需要正确插入电源供电。
通过这些步骤,你应该能够解决 Jetson 刷机后通过 Type-C 无法联网的问题。如仍有问题,请提供具体错误信息以便进一步排查。
未选择任何文件
sudo nmcli device wifi # 搜索无线网络
sudo nmcli device wifi connect WIFI名称 password WIFI密码 # 连接无线网络,注意替换成自己的WIFI名称和密码
ifconfig # 查看在网络中的IP地址
Jetson Xavier NX安装无线网驱动
下载8821驱动(可以用U盘拷贝到Jetson Xavier NX,或者使用网线连接提供网络)
git clone https://github.com/KwanWaiPang/8821cu.git
cd 8821cu
make -j12
sudo make install
reboot
# 如果报错,可能没有安装(选择)
sudo apt-get install make
sudo apt-get install gcc
Jetson Xavier NX安装输入法
Jetson Xavier NX是arm架构,而sougoupinyin只支持amd架构,不支持arm架构,因此可以使用采用googlepinyin
# 1、安装googlepinyin
sudo apt-get install fcitx-googlepinyin -y
如果安装失败提示 E: Unable to locate package fcitx-googlepinyin 时,先执行: sudo apt install fcitx,然后再执行安装googlepinyin的命令
# 2、在右上角打开设置,找到区域与语言
# 3、然后把Keyboard input method system设置为fcitx
# 4、reboot后生效
# 5、切换中英文输入法快捷键:Ctrl + Space
Jetson Xavier NX安装jtop
sudo apt install python3-pip
sudo -H pip3 install -U jetson-stats
sudo systemctl restart jetson_stats.service # 运行完,会提醒reboot才代表安装成功
reboot
jtop
Jetson Xavier NX安装VScode
问题:在Jetson Xavier NX上安装Jetpack5.1.2后,安装VSCode无法启动。
解答:根据NVIDIA支持论坛中这篇内容提示,应该是新版本的VSCode默认sandbox模式跟随主程序启动,导致与Jetpack系统不兼容。关掉sandbox有如下两种方案:
方案一:安装alacarte配置Code启动选项
1.每次启动Code都通过终端命令,以no-sandbox的方式启动
code --no-sandbox
2.安装alacarte配置启动选项
sudo apt install alacarte
3、打开alacarte界面
alacarte
- 选择
工具
,选择Visual Studio Code
,点击Properties
。
- 在"–unity-launch"和"%F"中间加入"–no-sandbox"(注意空格)。点击OK,关闭alacarte。
至此,点击快速启动栏图标,Code正常启动。
该方法的缺点是,若在终端启动Code,则仍需添加–no-sandbox属性。
方案二:安装旧版本的VSCode
Jetpack的系统与新版本VSCode不兼容,所以重装旧版本Code
可解决问题。这个方法也更方便。目前我可以正常使用的最新版本是1.65.2
。
下载链接:https://update.code.visualstudio.com/1.65.2/linux-deb-arm64/stable
# 卸载已经安装的VScode(可以省略)
sudo apt-get remove code
# 重新安装
sudo dpkg -i code_1.65.2-1646922911_arm64.deb