详细指南:在WSL上使用NVIDIA SDK manager给Jetson烧录系统

简介: 总所周知,使用emmc作为内部存储的jetson设备,烧录系统是需要Linux设备作为主机(Host)的,这意味着你要么需要一台Linux电脑、要么需要在Windows系统上安装虚拟机。但是都2022年了,WSL的方法应当成为主流,因此介绍如下方法。整体来说,WSL烧录要比在Linux主机、虚拟机下要繁琐一点点,但没什么太大的差别。这篇《使用WSL给Jetson烧录系统指南》献给热爱折腾、追求优雅的你

总所周知,使用emmc作为内部存储的jetson设备,烧录系统是需要Linux设备作为主机(Host)的,这意味着你要么需要一台Linux主机、要么需要在Windows系统上安装虚拟机。

但是都2022年了,作为最强虚拟机的WSL应当成为主流,因此介绍如下方法:

  • 一个jetson设备,我使用的是jetson TX2 NX,比NANO稍贵,但是整体性能比NANO强很多,性价比不错,搭配了微雪扩展板

0.png

  • WSL强烈建议使用Windows 11的电脑,Windows 11的WSL兼容性比10要好很多。而Windows 10很可能会因为缺少 Linux GUI 等而出错
  • 确保已安装WSL 2,且对应的Ubuntu要和你的jetson匹配!!!

    ​ 这一点十分重要,是新手最容易犯的错误,要仔细看厂商提供的烧录资料,例如我的Jetson TX2 NX就只能用18.04才能烧录,WSL Ubuntu版本高了(20.04、22.04)就是不行,没办法向下兼容,英伟达,fxxk you,我之前就在这里绕了弯路,大家一定要注意看你需要的烧录系统版本:

    image.png

如果不匹配,就去Microsoft store重下一个,里面各种版本都有,安装也还是很快的。

image.png

下载并安装 SDK manager

准备工作

更新很重要,有的时候一些奇奇怪怪的报错,很可能是由于没更新系统导致的...
更新WSL内核,进入Windows PowerShell,运行:

 wsl --update

image.png

再更新ubuntu,进入WSL的Ubuntu系统,运行:

sudo apt update
sudo apt list --upgradable
sudo apt upgrade

更新ubuntu的时候,别闲着:
在Windows上到英伟达官网下载.deb安装包NVIDIA SDK manager ,注册账号下载即可。

在WSL中切换到下载目录

cd /mnt/c/Users/PeepYXB/Downloads

注意要把其中的PeepYXB替换成你自己的系统用户名

安装sdkmanager

sudo apt install ./sdkmanager_1.9.0-10816_amd64.deb

同样要把1.9.0-10816替换成你自己下载的SDK manager安装包版本

运行sdkmanager

运行

sdkmanager

这时大概率会报错,提示缺失关键文件,无法运行,解决办法就是google,缺什么就装什么:

例如,我遇到的问题提示

/opt/nvidia/sdkmanager/sdkmanager-gui: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory

查到是解决办法是执行如下指令:

sudo apt install libgconf-2-4 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm-dev libnss3-dev libxss-dev

再次运行sdkmanager,成功:

image.png

需要注意的是:WSL的登录过程和传统Linux Host略有不同 —— 如果你没有安装WSL版浏览器的话,是不会自动跳出网站的。

这个时候要点这个二维码标志,然后选择copy login URL再手动把链接粘贴到电脑的浏览器,实现登录。

image.png

运行 usbipd-win

这时,你会发现SDK manager找不到你的设备:

image.png

这是因为默认情况下,WSL 2没有办法直接识别插在Windows计算机上的USB设备,说白了就是:你点的外卖被门口保安给截胡了

这个时候就需要用到开源工具usbipd-win来构建桥梁,参考微软官方教程:(连接 USB 设备 | Microsoft Learn)以及视频教程WSL 2: Connect USB devices - YouTube进行如下操作:

确定在Windows系统下可以找到jetson设备

将jetson的FC rec与GND短接,进入恢复模式,连接圆口直流电源后再与计算机通过USB连接,打开计算机的设备管理器,监视被识别到的设备,然后记住设备名。

例如我这里,APX是在连接电脑后识别到的,也就是“APX”是我的jetson TX2 NX在Windows下的设备名称,只需要将其导入到WSL即可:

image.png

安装并使用usbipd-win工具

下面开始下载并安装usbipd-win

Releases · dorssel/usbipd-win (github.com)下载并安装其中的.msi文件

image.png

WSL中运行如下指令

sudo apt install linux-tools-5.4.0-77-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20

不要关闭WSL窗口,然后用管理员权限运行Windows PowerShell,运行指令:

usbipd wsl list

image.png

如图Not attached代表未同步给WSL,我需要将APX同步到WSL,该设备在我的电脑上的BUSID3-2,遂运行指令:

usbipd wsl attach --busid 3-2 --auto-attach

注意,结尾的这个--auto-attach是一定要加的,因为在烧录过程中,jetson会反复重启,如果没有自动重连,就会导致烧录失败。

验证jetson已被WSL识别

Windows PowerShell,运行usbipd wsl list

image.png
可以看到,APX的设备状态已经变成了Attached - Ubuntu

WSL,运行lsusb

image.png

此时运行SDK manager,可正确识别我的Jetson TX2 NX

image.png

image.png

开始烧录

保持Windows PowerShell窗口开启,操作NVIDIA sdkmanager进行烧录,
烧录过程和虚拟机下没有任何区别:

image.png

下载固件:我的Windows电脑端后台开启了代理,所以整体的下载速度还算可观...

image.png

刷写固件,这个过程如果出现问题,例如“与设备断开”、“设备未在恢复模式”、“无法识别设备主板”等问题,就回头看一下,是不是在Windows PowerShell里的usbipd命令结尾没有加--auto-attach
image.png

烧录完成
image.png

此时Windows会自动识别并弹出L4T的设备,代表jetson已经完全可用,且能被电脑识别,记得拔去rec短接线。
image.png

目录
相关文章
|
3月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
65 0
|
18天前
|
Ubuntu 开发工具 虚拟化
Jetson 学习笔记(十六):使用SDK Manager烧录Jetson Nano
这篇博客介绍了如何使用Nvidia SDK Manager烧录Jetson Nano。首先,需要在Ubuntu系统中安装VMware虚拟机和Nvidia SDK Manager。然后,通过连接Jetson Nano并进行一系列设置,包括FC_REC脚接GND,连接HDMI、鼠标键盘和电源线。在Ubuntu上通过lsusb确认设备连接后,使用SDK Manager进行烧录,选择Manual Setup-Jetson Nano,设置用户名和密码,然后点击flash完成安装。完成后,可以断开连接并启动Jetson Nano,进入Ubuntu安装界面。
67 2
Jetson 学习笔记(十六):使用SDK Manager烧录Jetson Nano
|
25天前
|
存储 安全 开发工具
百度公共IM系统的Andriod端IM SDK组件架构设计与技术实现
本文主要介绍了百度公共IM系统的Andriod端IM SDK的建设背景、IM SDK主要结构和工作流程以及建设过程遇到的问题和解决方案。
41 3
|
3月前
|
数据采集 开发工具 Python
海康威视工业相机SDK+Python+PyQt开发数据采集系统(支持软件触发、编码器触发)
该系统基于海康威视工业相机SDK,使用Python与PyQt开发,支持Gige与USB相机设备的搜索及双相机同时显示。系统提供软件触发与编码器触发模式,并可在数据采集过程中实时保存图像。此外,用户可以调节曝光时间和增益,并进行信息输入,这些信息将被保存至配置文件以便下次自动加载。参数调节与实时预览等功能进一步增强了系统的实用性。
155 1
|
5月前
|
Linux 调度 开发工具
云桌面系统镜像文件快速分发方案分享SDK
为了解决云桌面环境下批量升级系统镜像的效率问题,传统的1对多FTP/HTTP方式因服务器带宽限制导致传输慢。一种基于优化的Bittorrent协议的P2P解决方案被提出,利用P2P技术将文件切块并让终端互相分享,提高下载速度,尤其适合大文件如256GB分区镜像的分发。通过自定义IO接口、跳过校验、超大分块、多分块支持及局域网自建Tracker等功能,实现更快的传输和镜像更新,适用于系统镜像、游戏更新等领域。该方案已广泛应用于各行业,可根据不同场景定制优化。
56 1
|
5月前
|
网络协议 安全 调度
阿里云公共DNS发布支持鸿蒙系统版的SDK
阿里云公共DNS发布支持鸿蒙系统版SDK,赋能鸿蒙开发者快速接入阿里云公共DNS服务。公共DNS将帮助接入的鸿蒙应用免除LocalDNS劫持困扰、解析加速、精准调度。
|
5月前
|
Java Linux 开发工具
由" failed to run the android sdk manager"引起的一系列问题 android
由" failed to run the android sdk manager"引起的一系列问题 android
|
6月前
|
Web App开发 前端开发 JavaScript
如何快速与呼叫中心系统CTI/API/SDK接口集成
由于呼叫中心系统涉及通信、CTI、终端设备、中继线路等技术与概念,从事信息管理系统、ERP、CRM、工单系统等的研发人员一般不是非常熟悉这部分技术,当需要提供具备呼叫中心能力的解决方案时,往往要用较多的时间来研究这些相对复杂的技术,对接过程比较长,开发调试有一定的阻力,基于此,我们提出一种更加简便高效的集成方法,可以零代码集成呼叫中心平台,实现项目快速上线。
如何快速与呼叫中心系统CTI/API/SDK接口集成
|
6月前
|
前端开发
命令行创建React项目
命令行创建React项目
命令行创建React项目

热门文章

最新文章