NVIDIA Jetson TX2踩坑解决记录与经验分享

最近拿着一张多年前实验室买的Jetson想刷个软路由玩,奈何折腾了一周才把clash-meta内核装好,记录一下自己踩的坑,整理一下以免其他玩jetson TX2的兄弟掉大坑。

已经过去一周了很多都记不太清了,凭记忆写的!



一、第一次开机

TX2第一次开机首先进入命令行模式,这时有两个账号可以用来登录,一个是NVIDIA另一个是Ubuntu,其实也可以来改root密码登录root。

passwd root

 进入命令行模式系统会提示你装驱动。一定要仔细看登录后的提示!!!

需要在NVIDIA账号下安装。经过最近几天搜索发现很多教程直接

cd ~/NVIDIA-INSTALL
sudo ./install.sh
reboot

但是文件实际上在 ~/home/nvidia/NVIDIA-INSTALL,一定要仔细看开机后的提示。

因此第一次开机想要进入图形桌面就要输入以下命令

cd ~/home/nvidia/Nvidia-INSTALL
sudo ./install.sh
sudo reboot

二、进入桌面模式

这个时候就该换源啦,这里mv是把官方源复制一份以免后面出问题有的补救。

首先按下 ctrl+alt+T 打开terminal。输入以下命令

mv /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources.list

由于TX2默认为16.04系统,因此这里使用的是阿里云的ubuntu 16.04 arm64源。里面有教程(记得看清一定要是arm64源,由于TX2是arm架构,一定不能搞错。)

https://developer.aliyun.com/mirror/ubuntu-ports?spm=a2c6h.13651104.0.0.63194763QgIAEL


三、更新系统

这个时候换完源了,系统也提醒你可以更新系统了(建议不要更新,本人就是更新系统进而掉进更大的坑了,这里建议直接刷机,使用英伟达官方SDK MANAGER直接刷机,因为英伟达很多库不开源只能通过刷机进行,这个后面讲)。当然你要是想更新可以按照桌面提醒直接更新系统,也可以在命令行输入一下命令更新。

sudo apt-get update
sudo apt-get upgrade
sudo do-release-upgrade

更新的时候系统会让你做选项,基本都是Y或者N,Y就是yes,N是default,看提示按!

更新完系统你可能会碰到一个巨大无比的坑,这个坑卡了我整整两天,nvidia fxxk you!

这个时候你会发现你startx进不了图形桌面模式,一直提醒undefined symbol:drmGetEntry

这是再告诉你动态库符号未定义,告诉你在/usr/lib/xorg/Xorg

在终端输入

ldd -r /usr/lib/xorg/Xorg

 可以列出xorg所需动态链接库。

 这个时候你会发现好家伙,这么未定义。这个时候不用去重新装什么libdrm、libdrm2,英伟达官方问答在隐秘的角落回答过这个问题。

解决方法链接如下 

https://gist.github.com/Nodraak/80544e6f8ab047817768b5eb449069d0

原因如下 

 这个消息提示程序或库(X)正在尝试在共享库(libdrm.so或libdrm.so.2)中查找符号(函数或变量),但实际上该符号位于不同版本的库中(libdrm.so.2.4.0)。

解决方法:

sudo rm /usr/lib/aarch64-linux-gnu/libdrm.so.2 ; sudo cp /usr/lib/aarch64-linux-gnu/libdrm.so.2.4.0 /usr/lib/aarch64-linux-gnu/libdrm.so.2
sudo reboot

重启后你会惊喜的发现你终于能进到图形桌面啦!但是系统可能还是有各种各样的问题,由于TX2使用的是英伟达魔改版ubuntu,因此一些库不太适配,尽量还是去刷机吧。


四、刷机

网上以及英伟达官方刷机的教程太多了,这里不进行赘述了。但是有一点,也是必须强调的一点!!!!!

英伟达官网SKD MANAGER下载处提示可以用于ubuntu 22.04 20.04 18.04及以上,但是!但是!但是!

TMD nvidia只对18.04做了jetpack,所以刷机用的Host主机一定要装一个18.04的ubuntu系统,本人就是从22.04装到20.04一直到18.04!!真的太痛苦了!


五、clash-meta安装

这里给一个官方链接和一个其他人安装教程

https://github.com/MetaCubeX/Clash.Meta#proxies-configuration

https://ourss.cn/2030

这里需要注意的一点就是在官方教程中,Clash-Meta.service文件其中一行是下图这么写的

但是实际上你的sleep文件大概率不在usr/bin下,所以建议你使用

which sleep

 or

whereis sleep

看好你的sleep文件在哪。很可能在 /bin 目录下,直接 vim 改一下就行。



好了!目前就到这里吧,后面再看着写吧。

物联沃分享整理
物联沃-IOTWORD物联网 » NVIDIA Jetson TX2踩坑解决记录与经验分享

发表评论