NVIDIA TX2i刷机过程记录

2023-05-16

毕业设计做的视觉系统,需要用到TX2i,以下为本人疫情期间在家摸索了十几天,才刷机成功的全过程。
关于tx2i的注意点:首先推荐买个usb扩展器,因为只有2个usb口,我中途需要同时连笔记本、键盘、鼠标、手机,根本不够用!!!其次,tx2i和tx2有一个不同之处是tx2i没有wifi模块,网上却没有tx2i的刷机教程,一开始给我造成了误解(我想到的解决方法是用手机usb提供有线网络)最后,tx2i需要12V供电,电池电量充足时上下两层都有绿色的灯亮,电量不足只有下层灯亮(我以为只要灯亮就是有电,一开始连不上一直以为是笔记本有问题)

以下正文开始(标题是需要注意的一些关键点):
因为我的毕设题目要使用ubuntu16.04+ROS kenitic,所以下载了JetPack-L4T-3.3-linux-x64_b39.run这个文件来烧录。没有用sdkmanager并且选了这个版本的jetpack是因为我的RSTO烧录手册上说jetpack跟jetson设备系统l4t版本号具有一定的对应关系,我的是l4t-28.2.1(其实我没太搞懂版本号什么意思)
把这个文件拷贝到/home下,然后终端运行

 ./JetPack-L4T-3.3-linux-x64_b39.run

1.注意留够内存

要给安装位置留够空间,一开始就因为空间和进程都满了(貌似是因为之前尝试sdkmanager的遗留问题),导致所需文件下载失败。我全部弄好之后看了一下,下载的东西大概有40G了,所以要注意磁盘内存
关于这个跑偏的问题,也不想再写个博客了,就记在这里吧:
报错提示:
Warning:we notice you are running OS with non-EN locale.NVIDIA does not test nor support such configurations
检查cuda_host_9.0.log,说是磁盘满了,先把回收站清空,有多30g了,结果运行还是报错
再次查看该文档,推测可能软件源有问题,打开终端想换软件源,结果终端一打开出现这么一大堆报错信息:

Traceback (most recent call last):
  File "/opt/ros/kinetic/_setup_util.py", line 297, in <module>
    sys.stdout.flush()
IOError: [Errno 28] No space left on device
Failed to run '"/opt/ros/kinetic/_setup_util.py" ': return code 1
/home/ymy/.pyenv/libexec/pyenv-init: 行 131: 无法为立即文档创建临时文件: 设备上没有空间
Traceback (most recent call last):
  File "/home/ymy/catkin_ws/devel/_setup_util.py", line 297, in <module>
    sys.stdout.flush()
IOError: [Errno 28] No space left on device
Failed to run '"/home/ymy/catkin_ws/devel/_setup_util.py" ': return code 1
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/local/lib/python2.7/dist-packages/virtualenvwrapper/hook_loader.py", line 223, in <module>
    main()
  File "/usr/local/lib/python2.7/dist-packages/virtualenvwrapper/hook_loader.py", line 145, in main
    output.close()
IOError: [Errno 28] No space left on device
bash: 无法为立即文档创建临时文件: 设备上没有空间
OSError: [Errno 28] No space left on device

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.5/runpy.py", line 184, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.5/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.5/dist-packages/virtualenvwrapper/hook_loader.py", line 223, in <module>
    main()
  File "/usr/local/lib/python3.5/dist-packages/virtualenvwrapper/hook_loader.py", line 145, in main
    output.close()
OSError: [Errno 28] No space left on device
bash: 无法为立即文档创建临时文件: 设备上没有空间
Traceback (most recent call last):
  File "/home/ymy/catkin_ws/devel/_setup_util.py", line 297, in <module>
    sys.stdout.flush()
IOError: [Errno 28] No space left on device
Failed to run '"/home/ymy/catkin_ws/devel/_setup_util.py" ': return code 1
Traceback (most recent call last):
  File "/home/ymy/my_rospy/devel/_setup_util.py", line 297, in <module>
    sys.stdout.flush()
IOError: [Errno 28] No space left on device
Failed to run '"/home/ymy/my_rospy/devel/_setup_util.py" ': return code 1
bash: /home/ymy/ugvc_simulation/devel/setup.bash: 没有那个文件或目录
Traceback (most recent call last):
  File "/home/ymy/roboware_ws/devel/_setup_util.py", line 297, in <module>
    sys.stdout.flush()
IOError: [Errno 28] No space left on device
Failed to run '"/home/ymy/roboware_ws/devel/_setup_util.py" ': return code 1
Traceback (most recent call last):
  File "/home/ymy/cv_ws/devel/_setup_util.py", line 297, in <module>
    sys.stdout.flush()
IOError: [Errno 28] No space left on device
Failed to run '"/home/ymy/cv_ws/devel/_setup_util.py" ': return code 1

从网上搜说确实是磁盘满了,就看了一下:

ymy@ymy:~$ df -h
文件系统        容量  已用  可用 已用% 挂载点
udev            1.6G     0  1.6G    0% /dev
tmpfs           331M   35M  296M   11% /run
/dev/sda7        19G   18G     0  100% /
tmpfs           1.7G  104M  1.6G    7% /dev/shm
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           1.7G     0  1.7G    0% /sys/fs/cgroup
/dev/sda9       1.9G  141M  1.6G    9% /boot
/dev/sda10       60G   23G   34G   41% /home
tmpfs           331M   92K  331M    1% /run/user/1000
/dev/sdb1       932G  454G  478G   49% /media/ymy/明月大人的小硬盘
/dev/sda1        99G   32G   68G   33% /media/ymy/BE7806FA7806B0E7
/dev/sda6       130G   16G  115G   12% /media/ymy/文档

有一项是100%,那就只能删东西了,主要是把.local里面nvidia的东西删了:

$ su
# du -h --max-depth=1

发现.local占了几个g,于是看.local里面有啥占内存的:

# cd .local
# du -h --max-depth=1

再这样一步一步往下找,删掉大文件…

可是删了还是100%,从网上搜说是因为进程还在,那就删进程呗

# lsof |grep delete

这样之后$ df -i 看进程,没有很满的了:

ymy@ymy:~$ df -i
文件系统           Inode 已用(I)   可用(I) 已用(I)% 挂载点
udev              415213     558    414655       1% /dev
tmpfs             422833     806    422027       1% /run
/dev/sda7        1220608  389912    830696      32% /
tmpfs             422833     119    422714       1% /dev/shm
tmpfs             422833       5    422828       1% /run/lock
tmpfs             422833      17    422816       1% /sys/fs/cgroup
/dev/sda9         122160     307    121853       1% /boot
/dev/sda10       3948544  324274   3624270       9% /home
tmpfs             422833      39    422794       1% /run/user/1000
/dev/sdb1      501059712  244495 500815217       1% /media/ymy/明月大人的小硬盘
/dev/sda1       70525240  141078  70384162       1% /media/ymy/BE7806FA7806B0E7
/dev/sda6      120264976   52281 120212695       1% /media/ymy/文档

发现上一步删内存没有从最顶端开始找,应该在这里开始:

root@ymy:/# du -h --max-depth=1
776M	./lib
12G	./usr
du: 无法访问'./media/ymy/明月大人的小硬盘/娱乐/Pictures/desktop.ini': 权限不够
500G	./media
139M	./boot
200K	./dev
8.0K	./snap
4.0K	./srv
du: 无法访问'./proc/28767/task/28767/fd/4': 没有那个文件或目录
du: 无法访问'./proc/28767/task/28767/fdinfo/4': 没有那个文件或目录
du: 无法访问'./proc/28767/fd/3': 没有那个文件或目录
du: 无法访问'./proc/28767/fdinfo/3': 没有那个文件或目录
0	./proc
du: 无法访问'./run/user/1000/gvfs': 权限不够
35M	./run
4.0K	./lib64
16K	./lost+found
4.0K	./cdrom
18G	./home
116K	./tmp
13M	./sbin
248K	./root
4.0K	./mnt
0	./sys
4.2G	./var
13M	./bin
1.4G	./opt
14M	./etc
536G	.

看出usr和var和opt比较多,先弄usr吧
把/usr/local/cuda-10.0删掉之后再查看,变成/dev/sda7 19G 15G 3.3G 82% /了,有进步
把/var/cuda-repo-10-0-local-10.0.326-cross-aarch64删掉之后再查看,变成63%
问题解决!

2.关于文件下载页面的使用

第一次下载的时候要选下图右上角的full(应该没人会改这个吧)
之后的刷机有需要改Flash OS Image and OS的Action时,直接点那个install 28.2.1,然后就可以选no action了(一开始网上教程没说清楚我还不会改,所以也记录一下)
在这里插入图片描述

下载时间比较长,中间还出现过一个警告(忘了拍照),不要紧,大家都会出现。

之后出现连接选择,选上面一个:
在这里插入图片描述
说明:我的连接方式就是板子usb下层口和电脑usb口直连,板子进入recovery模式,就会把usb模拟成网卡,板子和pc通过网络传输。
我看其他tx2教程里有说把tx2和电脑都用网线连到同一个路由器的,但是tx2i上的网口是针,普通的网线也插不上,我寒假回家也没带配套的线,所以没考虑这种接法,也不知道是不是tx2有和电脑网口一样的网口。

之后是很关键的网络选择界面:

3.操作顺序不正确引起的罕见出错

在这里插入图片描述
在这里插入图片描述
经过多次尝试的经验,只有网口选择的可选项只有一个的时候(在我电脑上是enp7s0),才说明后面不会报错,否则会这样:
在这里插入图片描述
出现这个就没戏,网上没发现有别人出过这个错,也没有解决方法
但是我多次尝试后琢磨出来,不出现这个错误的操作是:
板子一开始是把bit7打到on,并且连一下电源的状态,然后断电,bit7打到off,短接J12,连电脑,上电,断开J12,不能在off状态下开电再断电再短接,这时即使在终端lsusb出现了NVIDIA并且弹出一个类似U盘的L4T窗口也没有用

不报错后就会在Post Installation里不断刷新代码,之后出现下面这句话就卡住动不了了:
Finished Flashing OS
Determining the IP address of target …

网上搜到的解决方法是:
结束这次安装,重新开始,在文件下载界面里,把Flash OS Image and OS的Action改成no action,继续,这时就会出现让手动输入IP地址的情况了:
在这里插入图片描述
要想要点击next后正常进行下一步,就到了非常关键的IP地址修改了

4.修改二者ip地址

首先,打开了L4T里面的readme文件:
在这里插入图片描述
说明我需要修改两边的ip地址,这样他们才能在一个局域网下,相互之间才能ping通(原谅我网络通信课学的不太好,有些术语说的不太准确,反正就是下面的这样一个操作过程)
首先,在主机这边,分别在板子没连电脑和连上电脑时终端输入ifconfig,观察区别:
在这里插入图片描述
上面是没连,下面是连上了,解释一下:
lo:本地回环,不用管
enp7s0:我电脑与路由器用网线连接带来的网络
剩下两个enp0开头的,是和板子连上之后多出来的,所以这两个就是主机与板子连接的网络

再在板子上ifconfig:
在这里插入图片描述
某位大佬和我解释:
eth0和eth1指的是rj45接口的那两个网口(就是我看到的板子上的针),在tx2i上要改的是usb0和usb1对应的网络配置

修改网络配置:
tx2i上,打开系统设置——网络:
在这里插入图片描述
我每次打开后显示的都不一样,但是修改的诀窍是:能点开options,点开之后connection name是eth0的才是需要修改的,需要在IPv4下面的address里输入ip地址为192.168.55.1,子网掩码是255.255.255.0(也就是24),然后下面Require…打勾,保存。如下图:
在这里插入图片描述

在pc上类似,要把和板子连接的那两个网口的ip地址改成192.168.55.2和192.168.55.3,子网掩码不变。如下图是打开网络后,可以看出第三个是我电脑连接的有线网,所以上面两个是要改ip地址的
在这里插入图片描述
之后ping一下,如果有内容说明二者连接成功:
在这里插入图片描述
在jetpack里点击next就可以了,之后出现下面这个界面,和之前相比,发现确实少了OS那一项:
在这里插入图片描述

5.在TX2i手动下载装不上的软件

接上一步,之后会出现黑色窗口跑代码:
在这里插入图片描述
跑了一会之后就报错卡住:在这里插入图片描述
提示让我自己在板子上先把这五个东西下载好,再按enter继续。
这可苦了我了,板子没有wifi模块,和pc这样连着pc也没给它提供网络(我记得有一次到这一步时可以上网,很奇怪,也许是我记错了),那要怎么下载呢?
为了联网,只能断开和pc连接的usb线,并且bit7要拨回on才能使用下层usb口(我尝试过在recovery模式下,直接用我买的usb扩展器把上层usb连上键盘鼠标手机,这样就不用断开和电脑的连接了。可是这样一个外设都用不了,我推测可能该模式下usb口的供电或者带宽不够,或者10块钱买的扩展器质量差了?),然后手机用usb口给它提供网络(老李想出的操作,强!)。
再接上键盘鼠标显示器(接口不够用扩展器呀,所以要买扩展器),一台新电脑出现了!
之前看网上有说arm64的软件源和我们笔记本上的不一样,所以就换源:

sudo gedit /etc/apt/sources.list

换成下面两种源之一即可:

清华:
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse  
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse   
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse   
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse   
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse   
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse   
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main universe restricted   
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main universe restricted

科大:
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse 
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse 
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse 
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main universe restricted 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main universe restricted

再更新一下:

sudo apt-get update #更新获取软件源提供的软件列表;
sudo apt-get upgrade #更新软件;

然后就按照提示说的下载:

sudo apt-get install cuda-toolkit-9-0
sudo apt-get install libgomp1
sudo apt-get install libfreeimage-dev
sudo apt-get install libopenmpi-dev
sudo apt-get install openmpi-bin

完成之后还得断电,和pc连上,拨bit7,短接,通电,改ip地址,ping一下确认连上了,之后在那个窗口里按enter就可以继续了
注:有时候板子刚进入recovery模式可能反应不过来,要等一会才能连上pc机和显示器鼠标键盘(连上的标志一般是pc上弹出L4T,板子上的网口显示灯亮了),等个一分钟还连不上那就直接拔电再插电,过个十几秒就能连上了

不久之后第二次报错:
在这里插入图片描述
乍一看挺高兴,这次不用联网,只要运行dpkg安装软件指令就可以把opencv装上了。
然而,安装时出现了依赖不满足的问题:
在这里插入图片描述
这时候我想到了之前看过的一个教程(Jetson TX2 手动安装cuda opencv cudnn等文件),还是需要联网(啊啊啊啊巨麻烦啊),执行这两条命令:

sudo apt --fix-broken install
sudo apt-get install libtbb2

之后再安装就可以了

最后一波报错来袭:

在这里插入图片描述
又是需要联网下载,这次是visionworks相关,和第一个的过程类似,就不重复了

最后,终于结束啦(★,°:.☆( ̄▽ ̄)/$:.°★。撒花!)
在这里插入图片描述

后记:
接下来就在tx2i上调试opencv程序啦,祝我好运!

收藏 个网页备用
https://www.elinux.org/Jetson_TX2
https://github.com/jetsonhacks?after=Y3Vyc29yOnYyOpK0MjAxOC0wNS0xMFQxNTo1MToxNFrOB-gcWA%3D%3D&tab=repositories
ps:如果在自己电脑apt-get update 失败:这是由于jetpack给原系统添加了arm的软件源,而其中有些源会下载失败。解决方法时删去arm的软件源:
sudo dpkg --remove-architecture arm64

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NVIDIA TX2i刷机过程记录 的相关文章

随机推荐

  • 【SpringBoot之旅】手把手教你Swagger接口文档神器使用

    手把手教你Swagger接口文档神器使用 相关内容地址Swagger官方文档swagger io docs specif Swagger常用注解blog csdn net weixin 4252 Swagger2常用注解blog csdn
  • 年度回忆录(2011.01----2011.07)

    看了看上次的总结是 2011 年 1 月 1 日 xff0c 距离这次的总结有将近七个月的时间 xff0c 下面来说一说这七个月的学习情况 xff08 按照时间进度 xff09 l 英语 xff08 1 月 now xff09 上次做总结的
  • VFH避障流程以及策略

    VFH避障核心代码讲解 xff0c 以及避障流程 VFH是一种由人工势场法改进而来的机器人导航算法 在机器人移动的过程中 xff0c 利用传感器探测周围障碍物信息 xff08 图1 xff09 xff0c 生成极坐标直方图 xff08 图2
  • 解决E: 仓库 “ubuntu bionic Release” 没有 Release 文件

    span class token function sudo span span class token function apt get span update 时候 xff0c 发现404 Not Found E 仓库 http ppa
  • c#/winform 串口编程

    这里结合看到的一些知识和在实际项目中应用的一些方法说明一下如何在 NET平台下使用C 创建串口通信程序 在 net 2 0中提供了串口通信的功能 xff0c 其功能的实现主要是System IO Ports 命名空间下实现的 可以通过加入这
  • c++:线程和进程的区别

    线程是指进程内的一个执行单元 也是进程内的可调度实体 与进程的区别 1 地址空间 进程内的一个执行单元 进程至少有一个线程 它们共享进程的地址空间 而进程有自己独立的地址空间 2 资源拥有 进程是资源分配和拥有的单位 同一个进程内的线程共享
  • Mac设置环境变量

    环境变量是电脑操作系统中常用的一些变量 xff0c 作用类似于将一些常用命令所在的文件夹位置预先告诉操作系统 xff0c 当以后需要用到这些命令时 xff0c 操作系统就自动来这些位置取 例如 xff0c 常见的Java开发中配置的相关环境
  • Java--Java版本和JDK版本

    对于Java初学者 xff0c 经常会听到同事 xff0c 或看到网上Java版本和JDK版本不一的叫法 xff0c 不明白这两者到底什么关系 xff1f 其实博主当年初学Java时也有这样的困惑 xff0c 今天我们就来好好探讨一下 xf
  • Oracle-Windows双击Oracle的setup.exe一闪而过;Oracle安装后的默认账号和密码

    双击Oracle解压包之后的setup exe之后 xff0c 界面一闪而过 xff0c 主要是如下三种原因 1 安装路径不要包含中文 2 安装路径不要包含空格 3 右击 xff0c 选择 以管理员身份运行 顺带提下Oracle安装之后的默
  • Java--Stream流详解

    Stream 是Java 8 API添加的一个新的抽象 xff0c 称为流Stream xff0c 以一种声明性方式处理数据集合 xff08 侧重对于源数据计算能力的封装 xff0c 并且支持序列与并行两种操作方式 xff09 Stream
  • Kubernetes - Kubernetes详解;安装部署(一)

    一 Kubernetes Kubernetes 这个单词源于希腊语 xff0c 意为 舵手 或 飞行员 Kubernetes xff0c 也称为K8S xff0c 其中8是代表中间 ubernete 的8个字符 xff0c 是Google在
  • Shiro - Shiro简介;Shiro与Spring Security区别;Spring Boot集成Shiro

    一 Shiro 以下引自百度百科 shiro xff08 java安全框架 xff09 百度百科 Apache Shiro是一个强大且易用的Java安全框架 xff0c 执行身份验证 授权 密码和会话管理 使用Shiro的易于理解的API
  • 最近

    距离软考还有 3 天的时间 xff0c 该复习的都复习了 xff0c 复习不到的知识点也只有搁置了 任何事情都不可能是完美的 xff0c 软考也一样 xff0c 要的只是追求完美的过程 xff0c 结果重要但是过程更重要 复习到现在感觉基础
  • 微信小程序-微信小程序登录流程(一)

    微信小程序 xff0c 小程序的一种 xff0c 英文名Wechat Mini Program xff0c 是一种不需要下载安装即可使用的应用 xff0c 它实现了应用 触手可及 的梦想 xff0c 用户扫一扫或搜一下即可打开应用 冷启动
  • 微信小程序-获取不限制的小程序码(二)

    一 获取小程序码 获取小程序码 微信开放文档 与 createQRCode 总共生成的码数量限制为 100 000 xff0c 请谨慎调用 调用方式 HTTPS 调用 POST https api weixin qq com wxa get
  • 微信-微信退款(三)

    一 微信申请退款 微信支付退款 API 地址 https pay weixin qq com wiki doc api app app php chapter 61 9 4 amp index 61 6 应用场景 当交易发生之后一段时间内
  • iOS-UILabel根据文本、字体大小计算label宽度;以及自适应高度

    下载地址 GitHub源码 或者 Demo下载 想获得所有字体 xff0c 如下 xff1a 获取到所有的字体名称 NSArray familyNames 61 UIFont familyNames NSLog 64 34 所有字体名称 6
  • iOS开发Provisioning profile "iOS Team Provisioning Profile:xxx" doesn't include signing certificate

    连接真机设备时爆红 因博主忘了截图已经处理过的截图 问题如下 xff1a Provisioning profile 34 iOS Team Provisioning Profile com xxx xxx 34 doesn 39 t inc
  • clang-format的使用

    clang format使用 1 clang format简介2 clang format的使用2 1 clang format中 clang format file2 2 示例 xff1a 配置google的代码风格2 3 vscode
  • NVIDIA TX2i刷机过程记录

    毕业设计做的视觉系统 xff0c 需要用到TX2i xff0c 以下为本人疫情期间在家摸索了十几天 xff0c 才刷机成功的全过程 关于tx2i的注意点 xff1a 首先推荐买个usb扩展器 xff0c 因为只有2个usb口 xff0c 我