> 文档中心 > Xavier NX上安装Deepstream导致NX不断的重启

Xavier NX上安装Deepstream导致NX不断的重启

      使用安装SDK Manager后再使用JetPack安装板子的方式非常慢而且由于网络慢容易出错,所以直接使用SD Image烧写TF卡是最快的安装方式,将image写入TF卡后,启动板子可以看到Ubuntu18.04和和TensorRT等大部分工具软件已经打包在image内一起安装了,但是Deepstream却没有包含进去,这点很奇怪。

     我们使用的SD Image是6月份从NVIDIA官网上下载的nv-jetson-nx-sd-card-image-r32.4.2,为何不下载使用最新的jetson-nx-developer-kit-sd-card-image.zip呢?这个里面包含的软件都是最新的,按理说最新很好啊,可是NVIDIA在Jetson序列板子上搞的这些软件还真不能随便使用最新的,比如这个里面的CUDA是最新的CUDA11+cudnn8,等你安装好了,你会后悔想到要卸掉从新安装旧版本的,为什么呢?NVIDIA为了自己维护方便,搞一个自我感觉很好但其实很蠢的做法就是强制不断的在新版的SD image或者JP里把CUDA升级到最新,根本不管你使用的Tensorflow、Pytorch之类的框架是否支持,到时在CUDA11下编译和运行会遇到大堆的错误让你头疼!同时NVIDIA根本不像提供X86版的CUDA那样提供legacy版本的CUDA和cudnn的集中下载的链接,比如说,你要想得到旧版的CUDA10.0,可能只能在Linux PC上安装旧版的sdk manager后从PC上找到里面的安装源repo的deb文件,在Jetson板子上Ubuntu下安装并且执行apt-get update然后使用apt-get install cuda-tookit-10.0这样的命令来安装旧版的CUDA,另外就是到网上去搜素看有没有好心人共享出安装文件,下载下来安装 。反正NVIDIA这个做法让人无语,但是一家独大没法,只能忍了,只能自己多储备旧版本sdk image和sdk manager或者直接储备arm64版的CUDA和cudnn安装程序来绕过这些人为的障碍吧。

    不知道为何nv-jetson-nx-sd-card-image-r32.4.2就没有打包Deepstream,于是自己按照官网指南安装Deepstream: https://docs.nvidia.com/metropolis/deepstream/dev-guide/index.html,安装完后当时编译我们自己开发的deepstream插件和运行都可以,下班关机,第二天上班再开机,傻眼了,板子不断的重启,根本起不来了!当时还以为Ubuntu自动更新了内核还是什么的弄坏了还是TF卡坏了,追查原因时反正没往Deepstream的安装方面想,就用image重新烧写TF卡,发现可以去起来,貌似卡没坏,但是等什么都安装完,当然包括安装Deepstream,然后重启NX板子时发现板子又不断的重启,于是怀疑TF卡某个地方坏了有读写故障,于是换一张新卡再烧写和安装所需的全部软件,再重启NX后发现NX板子还是不断的重启,傻眼了,看了不是卡的问题,那就应该是安装的问题了,是哪步安装出了问题了?于是安装完一步就重启一次NX板子看能否起来,就这么一步一步逼近,最后发现就是官方关于安装Deepstream的指南里的install latest NVIDIA V4L2 GStreamer plugin这个预装步骤引起的:

      只要不做这步,后面安装完Deepstream SDK后板子在重启后都能正常启动起来,浪费了两天多时间折腾这些才发现竟然是重新安装NVIDIA V4L2 Gstreamer插件个引起的,真是第一次见识了,以前从来没遇到过安装软件会引起板子不断重启的问题。

      虽然最后有一个提示说这步必须是在使用SDK Manager flash完OS后才能做的,我们的理解就是在使用sd image烧写TF卡后也能做,因为烧写完后Ubuntu18.04等软件都已经在里面了,所以不加思索做了这步,难道是只能是通过SDK Manager写入OS后才能做这步?还是什么方式烧写没关系,这个步骤里其实有NVIDIA的一个重大bug?  没时间用SDK Manager通过网络写的方式安装实验一遍,以后有时间可以试试,但估计是个bug的可能性很大。