Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)

Jetson Xavier NX具体开发(Ubuntu18.04系统)

  • 一、设置ssd固态硬盘作为启动盘
  • 二、 安装cuda(售后另外发的)
  • 三、更新程序数据库(一定要先更新,不然很多报错)
  • 四、 设置为中文
  • 五、安装防火墙管理插件(便于管理端口)(可以不用)
  • 六、安装远程桌面
    • 1.vnc是什么
    • 2.rdp是什么
    • 3.nomachine远程桌面
  • 七、安装jtop
  • 八、安装拼音输入法
    • 1.安装前的准备
    • 2.配置Fcitx
    • 3.安装谷歌拼音输入法(Google Pinyin)
  • 九、安装archiconda
  • 十、安装vscode编译器
  • 十一、 typora下载
  • 十二、模型迁移(以行人重识别为例)
    • 1. 导入项目(xshell等工具)
    • 2. 打开vscode,打开文件夹,选择项目后,点击确定
    • 3. 新创建终端,使用conda创建新环境(注意如果是jetson上的话,python只能安装3.6版本的)
    • 4. vscoda切换python编译器
    • 5. 安装项目需求环境,通常在requirements.txt文件
    • 6. 安装torchvision
    • 7. nvcc not fount(添加cuda进环境里面改)原文链接
  • 十三、Jetson安装mysql
    • 1.系统
    • 2.安装配置mysql
      • 安装
      • 配置用户
      • 然后登录
      • 修改配置文件,实现远程访问
      • mysql其他常用命令:
      • 配置内网穿透
      • 测试
  • 十四、总结

同系列链接:

Jetson开发实战记录(一):Jetson家族的基本介绍
Jetson开发实战记录(二):Jetson Xavier NX版本区别以及烧录系统
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)

一、设置ssd固态硬盘作为启动盘

来自SSD的读取速度是SD卡的7倍。因此,从SSD启动肯定会提高jetson NX的性能。Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第1张图片

  • 格式化ssd
    安装您的和SSD并启动,然后打开菜单并进行搜索。disk
    Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第2张图片
    启动磁盘应用程序,您将看到此。
    Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第3张图片
    Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第4张图片
    Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第5张图片
    点击左下角的+号,添加16G的交换区
    Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第6张图片
    选择主分区的大小。建议16 GB交换文件。
    Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第7张图片
    给卷起个名字。然后单击Create
    Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第8张图片
    现在,您已成功创建卷。但它还没有安装。让我们使用外壳命令安装它。幸运的是,杰森哈克已经将这些命令集成到外壳脚本中。让我们运行它,
  • 将根源从SD卡复制到SSD
    首先,复制该项目。
 git clone https://github.com/jetsonhacks/rootOnNVMe.git
 cd rootOnNVMe

然后将根源文件复制到您的SSD

  ./copy-rootfs-ssd.sh
  • 启用从 SSD 启动
    运行并重新启动以使服务生效。
 ./setup-service.sh
  • 重启
sudo reboot

二、 安装cuda(售后另外发的)

由于国产套件的核心模组是自带16G emmc闪存,刷机时只能刷入最基础系统,
需要扩展固态硬盘设置SSD启动后再执行命令安装CUDA等环境的包。
请参考第5个视频(观看到第5分钟后开始执行的是CUDA组件安装指导)操作指令如下:

  • 第一步:把文件夹内附带的脚本文件解压并复制到jetson nx系统内根目录下。
  • 第二步:终端执行更新sudo apt-get update
  • 第三步:给权限运行脚本sudo chmod -R 777 bootFromExternalStorage
  • 第四步:进入目录cd bootFromExternalStorage
  • 第五步:运行脚本 ./install_jetson_default_packages.sh

三、更新程序数据库(一定要先更新,不然很多报错)

  • 更新系统软件源的命令。
 apt-get update
  • 更新升级所有软件的命令。
 apt-get upgrade

四、 设置为中文

  • 在应用程序里找到settings并打开
  • 找到按钮Region&Language
  • 点击Manage Install Languages
  • 选择Install/Remove Languages
  • 在语言列表中找到Chinese(simplified),并打上勾,点击Apply.
    在弹出对话框中,然后输入管理员密码即可。
  • 安装过程,略过。
  • 这里注意,安装完成后,还要把”简体中文“拉到”英文“上面
  • 在语言和格式中,分别选择汉语和中国。
  • 重新启动ubuntu

五、安装防火墙管理插件(便于管理端口)(可以不用)

  • 指令:sudo apt-get install ufw
  • 使用ufw管理防火墙
  • 启用指令:sudo ufw enable
  • 关闭指令:sudo ufw disable
  • 状态指令:sudo ufw status
  • 允许外部访问3306端口:sudo ufw allow 3306
  • 禁止外部访问8010端口:sudo ufw delete allow 8010
  • 允许此IP访问所有的本机端口: sudo ufw allow from 192.168.1.1
  • 禁止外部访问smtp服务:sudo ufw deny smtp

六、安装远程桌面

1.vnc是什么

Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第9张图片

所谓的 VNC(Virtual Network Computing )是一种图形化的桌面共享系统,它使用远程帧缓冲协议 (RFB) 来远程控制另一台计算机。它将键盘和鼠标事件从一台计算机传输到另一台计算机,通过网络向另一个方向转发图形屏幕更新。

VNC 的优点很多,很多场景下都能看到VNC。例如,访问树莓派的桌面,对 headless 服务器的管理等等。但是,对于云上实例的远程图形化的访问VNC却不是好的选择。考虑到我们的使用场景是通过互联网来访问云上的主机,这就引出了否定 VNC 最主要的原因– 安全性。

默认情况下,RFB并不是一个安全的协议。虽然这个协议下密码不以明文方式发送,但如果能从网络中嗅出加密密钥和已编码的密码,还是有可能破解成功的。因此,建议密码至少有8个字符。另一方面,VNC的一些版本也有8个字符的限制; 如果发送的密码超过8个字符,则删除多余的字符,并将截断的字符串与密码进行比较。

在VNC生态系统中,”Big Four” 指的是LibVNC、UltraVNC、Tight VNC和TurboVNC 这四家提供VNC 产品的厂商。2019年,Kaspersky Lab 的研究人员对这四家公司进行了审计,以了解它们的安全性。他们的发现是令人失望的。总的来说,研究人员发现这四个程序的客户端和服务器部分共有37个严重缺陷。其中22个在 UltraVNC,另外10个在 LibVNC, 4个在 TightVNC,还有一个在 TurboVNC,但这是一个严重的漏洞,它会让攻击者在服务器端远程执行代码。

2.rdp是什么

Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第10张图片

有过 Windows 使用经验的人对于远程桌面(Remote Desktop Protocol ,RDP)一定不会陌生。RDP 是由微软公司开发的一种专有协议,它为用户提供了通过网络连接到另一台计算机的图形界面。在使用上,用户需要使用 RDP 客户端软件,而在远程另一台计算机则需要运行 RDP 服务器软件。

微软的Windows、Linux、macOS、iOS、Android等操作系统都有客户端。Windows操作系统内置RDP服务器;Linux与 macOS 可以安装一个 RDP 服务器。缺省配置下,服务器监听 TCP 端口 3389 和 UDP 端口 3389。

微软目前把他们的官方RDP客户端软件称为Remote Desktop Connection,以前叫做 “Terminal Services client”

与VNC 相比,RDP的安全性有很大的提升。主要的安全特性包括了:

  • 128位加密,使用RC4加密算法(版本6加入)
  • 提供了对TLS的支持(版本2加入)

此外,正如前面提到的VNC协议是基于像素的。尽管这带来了极大的灵活性,可以显示任何类型的桌面,但它的效率往往不如那些更好地理解底层图形布局(例 如: X11)或桌面(例如:RDP )的解决方案。这些协议以更简单的形式(例如:打开窗口)发送图形原语或高级命令,而 VNC 的 RFB 协议尽管支持压缩但只能是发送原始像素数据。

如何使用RDP?
在 Windows 环境下使用RDP是再简单不过的事情。虽然微软公司没有为 Linux 提供 RDP 的软件,但是我们可以使用开源的xRDP,这是RDP协议在Linux平台 的实现。

xRDP是一个开源的远程桌面协议服务器,它用来实现Linux接受来自 Windows、Mac 或者 Linux 远程桌面客户端或的连接。这意味着你不需要在我们所使用的 Windows 或 macOS 机器上安装额外的第三方应用程序。

Linux 安装 xRDP的方法如下。这里我以 Ubuntu 20.04 为例 –

  • 安装Gnome
    GNOME是一个Linux 操作系统下的桌面环境,完全由免费和开源软件组成。缺省情况下在EC2上安装的Linux 操作系统都不包含Gnome,需要额外安装。Ubuntu 缺省的桌面窗口管理器就是Gnome,用以下命令安装。
  $ sudo apt update 
  $ sudo apt install ubuntu-desktop

除了Gnome 以外,我们还可以选择 LXDE、Xface 等等。相比之下,LXDE 是轻量级的窗口管理器,Xface 则具备类似 Windows 界面的风格。如果不在乎额外增加的大约 5GB 的磁盘存储的开销,我还是推荐使用Gnome。原因在于这与我们本地使用的 Ubuntu 具有一致性的体验。

  • 安装 xRDP
 $ sudo apt install -y xrdp

安装完成后,xRDP服务将自动启动。可以通过这个命令来检查其状态:

  $ sudo systemctl status xrdp

输出结果如下:
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第11张图片

  • 接下来,要为Linux的用户(ubuntu)设置登录密码
 $ sudo passwd ubuntu 
 $ sudo adduser ubuntu ssl-cert

出于安全的理由务必使其符合密码安全的策略。第二条命令是将 用户ubuntu 加入到 ssl-cert 用户组中。这是因为默认情况下,xRDP 使用的是自签发的证书,这个证书保存在 /etc/ssl/private/ssl-cert-snakeoil目录下。证书的密钥文件只能由 “ssl-cert” 用户组的成员读取。

  • 登录
    Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第12张图片
    在这里,username 输入ubuntu,password 输入刚刚修改过的用户密码。成功登录之后熟悉的Ubuntu 桌面就会立刻出现在眼前。
    Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第13张图片
    按照我的体验,网络延迟在35ms以内xRDP 的与本地Linux 桌面的操作体验几乎没有差别。实测之下,通过我所使用的100M联通宽带访问AWS 中国(北京)区域的EC2 实例,网络延迟大约在5ms左右。
    Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第14张图片
    单以鼠标、键盘的使用体验而论,本地桌面与远程桌面的差别已经微乎其微了,我终于可以放心的将许多工作移到云端。无论是通过我的笔记本电脑、iPad 甚至是一台树莓派都能够让我接入顺利的接入远程桌面。如此一来,开发在云端岂不是再简单不过的事情了。

3.nomachine远程桌面

NoMachine是一款不错的远程桌面控制软件,该工具简单,易用,尤其是在低带宽、慢速率的网络环境下工作性能良好,允许用户从另一台计算机访问和控制远程的Windows,Linux PC或Mac电脑,实现工作或娱乐等操作。
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第15张图片
软件下载地址:下载官网

进入之后,会自动检测当前主机的版本,选择download下载最新版。注意NX开发板要选择对应的NoMachine for ARM版

由于某些原因,可能会下载很慢,还会出现中断,特贴出我辛苦下载下来版本
win10版链接
NX开发板对应的版本
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第16张图片
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第17张图片

七、安装jtop

相关组件安装

  1. 一般的架构(x86、amd64)下都是使用
nvidia-smi
  1. arm架构下
    使用Jetson Xavier NX的时候需要查看cpu 电源,gpu的使用 频率和调度等情况,简单的top 命令已经不能满足需求了,有一款软件 jetson-stats ,它相当于主机端使用nvidia-smi来查看显卡使用情况一样,可以完成NX板卡上述资源消耗的使用情况。
    在pip配置好的情况下,直接在终端pip3安装
pip3 install jetson-stats
#第一种报错,就第二种安装方式
sudo -H pip3 install jetson-stats

安装好后输入

jtop

查看NX开发套件的各项资源使用情况,按 q 结束退出
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第18张图片

八、安装拼音输入法

1.安装前的准备

在Ubuntu18.04下,谷歌拼音输入法是基于Fcitx输入法的。因此,我们需要首先安装Fcitx。一般来说,Ubuntu最新版中都默认安装了Fcitx,但是为了确保一下,我们可以在系统终端中运行如下命令:

sudo apt install fcitx

2.配置Fcitx

系统终端中输入命令:

im-config

注:im-config是Input Method Configuration的缩写。
运行如下命令之后,就会开启 Input Method Configuration 窗口。
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第19张图片
在出现的窗口中,选择Yes,如下图所示:
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第20张图片
在出来的这个窗口中,必须选中Fcitx,然后选择Yes,如下图所示:
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第21张图片

选中Fcitx后出来这个窗口就选择OK,如下图所示:
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第22张图片

点击OK后就关闭窗口,重新启动电脑让所做的配置生效,当然你也可以在系统终端中运行:sudo reboot 命令重启电脑。

3.安装谷歌拼音输入法(Google Pinyin)

在Ubuntu18.04系统中安装谷歌拼音输入法(Google Pinyin)非常简单,只需要下面这个命令:

sudo apt install fcitx-googlepinyin
   reboot

在出来的选项中输入y即可安装。
安装后运行如下命令配置谷歌拼音输入法:

fcitx-config-gtk3

然后依次进行如下操作: Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第23张图片
配置fcitx
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第24张图片
如果又拼音直接保存就行,如果没有,则选择左下角的+号搜索添加。
如果想重新设置切换快捷键,直接点击“全局配置” Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第25张图片

如果出现输入法没有候选框,则输入以下两个命令

killall fcitx-qimpanel 
sudo apt-get remove fcitx-ui-qimpanel 

到这里,在Ubuntu18.04系统中安装谷歌拼音输入法(Google Pinyin)全部完成了。
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第26张图片

九、安装archiconda

为什么还需要 Anaconda?有以下3个原因:

  1. Anaconda 附带了一大批常用数据科学包,它附带了 conda、Python 和 150 多个科学包及其依赖项。因此你可以立即开始处理数据。
  2. 管理包
    Anaconda 是在 conda(一个包管理器和环境管理器)上发展出来的。
    在数据分析中,你会用到很多第三方的包,而conda(包管理器)可以很好的帮助你在计算机上安装和管理这些包,包括安装、卸载和更新包。
  3. 管理环境
    为什么需要管理环境呢?
    比如你在A项目中用了 Python 2,而新的项目B老大要求使用Python 3,而同时安装两个Python版本可能会造成许多混乱和错误。这时候 conda就可以帮助你为不同的项目建立不同的运行环境。

还有很多项目使用的包版本不同,比如不同的pandas版本,不可能同时安装两个 Numpy 版本,你要做的应该是,为每个 Numpy 版本创建一个环境,然后项目的对应环境中工作。这时候conda就可以帮你做到。

但是Anacona目前不支持aarch64架构,因而无法直接安装。好在github上有Archiconda这个项目,可以看作是arm版的Anaconda
下载地址
链接
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第27张图片
启动脚本
(xxx为版本号)

   chmod a+x Archiconda-xxx.sh
   ./Archiconda-xxx.sh

然后一路回车
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第28张图片
安装成功

reboot

Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第29张图片

conda添加清华源

将以上配置文件写在~/.condarc中
   vim ~/.condarc
   
   channels:
     - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
     - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
     - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
     - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
   ssl_verify: true

十、安装vscode编译器

进入进入官网点击直接下载
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第30张图片
下载成功后,双击.deb文件
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第31张图片

十一、 typora下载

官方地址
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第32张图片
点击下载.deb文件包,双击安装
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第33张图片
设置md文件默认打开方式为typora
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第34张图片
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第35张图片
双击打开,成功
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第36张图片

十二、模型迁移(以行人重识别为例)

1. 导入项目(xshell等工具)

在这里插入图片描述

2. 打开vscode,打开文件夹,选择项目后,点击确定

Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第37张图片

3. 新创建终端,使用conda创建新环境(注意如果是jetson上的话,python只能安装3.6版本的)

Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第38张图片
在这里插入图片描述

4. vscoda切换python编译器

Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第39张图片
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第40张图片
通常在以下路径(刚刚安装的ReID环境),找到python后,双击确定
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第41张图片
切换成功
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第42张图片

5. 安装项目需求环境,通常在requirements.txt文件

Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第43张图片
在终端输入

conda activate ReID
pip install -r requirements.txt#这里torch和torchvision可以先不装

在这里插入图片描述
python包安装中
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第44张图片
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第45张图片

安装成功,关闭重启

特别注意torch的版本一定要和cuda版本对应,如果出错,建议直接去官网下载,找到适合自己的版本(找到适合自己的版本(英伟达torch官网))
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第46张图片

  • 本人失败,可参考试试:解决方法链接
  • 本人成功:(亲测成功)NVIDIA Jetson NX 安装Miniconda以及Pytorch1.7

先安装依赖:

sudo apt-get install libopenblas-base libopenmpi-dev

安装Pythorch (需要在安装文件当前目录运行命令)

pip install torch-1.7.0-cp36-cp36m-linux_aarch64.whl

安装完成导包测试

python
import torch
#如果上面的依赖没有安装这里会报错
#OSError: libmpi_cxx.so.20: cannot open shared object file: No such file or directory

可以在包目录这个网站右上角搜索libmpi_cxx.so.20手动下载需要的依赖包
需要的依赖包有:

 libhwloc5_1.11.9-1_arm64.deb   (先安装)
       
libopenmpi2_2.1.1-8_arm64.deb
       
libopenblas-base_0.2.20+ds-4_arm64.deb

安装依赖参考链接

依赖安装完成后有可能还会遇到一个错误

 import torch 
#Illegal instruction (core dumped)(非法指令(核心转移))

在环境变量最后面加入

sudo vim ~./bashrc
export OPENBLAS_CORETYPE=ARMV8
source ~/.bashrc

最后测试一下

python
import torch
print(torch.cuda.is_available())  #测试cuda是否能用
True  #返回Ture说明cuda能用

6. 安装torchvision

torchvision库简介(翻译)
torchvision是独立于pytorch的关于图像操作的一些方便工具库。
torchvision的详细介绍在:https://pypi.org/project/torchvision/
torchvision主要包括一下几个包:

  • vision.datasets : 几个常用视觉数据集,可以下载和加载,这里主要的高级用法就是可以看源码如何自己写自己的Dataset的子类
  • vision.models : 流行的模型,例如 AlexNet, VGG, ResNet 和 Densenet 以及 与训练好的参数。
  • vision.transforms : 常用的图像操作,例如:随机切割,旋转,数据类型转换,图像到tensor ,numpy 数组到tensor , tensor 到 图像等。
  • vision.utils : 用于把形似 (3 x H x W) 的张量保存到硬盘中,给一个mini-batch的图像可以产生一个图像格网。

本人在torch官网上找不到arms适配的vision包,直接进行pip安装的话直接报错,所以选择whl安装torchvision

  • 本人失败,仅供参考的地址链接。做下记录
    whl地址(torch官方)
  • 成功方法
    jetson nano之(4):pytorch安装和torchvision
    vision说明地址:https://github.com/pytorch/vision
    因为我安装的是1.7.0的pytorch,对应 torchvision 版本是0.8.1,所以安装如下:
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
pip3 install torchvision==0.8.1  #我用这条没有安装成功

手动去这个地址下载代码包:https://github.com/pytorch/vision/archive/v0.8.1.zip(也可以直接进入https://github.com/pytorch/vision中找到其他的版本)
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第47张图片
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第48张图片

找到合适的版本下载
Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)_第49张图片

下载解压后,进入文件夹

 export BUILD_VERSION=0.8.1 #这里可以将地址写入~/.bashrc中
 sudo python3 setup.py install #这里如果是conda的下的虚拟环境,sudo可能会提示错误,所以可以去掉sudo
 #测试是否安装成功
 import torchvision
 print(torchvision.__version__)
  • 如果报错fatal error: libavcodec/avcodec.h: No such file or directory
    在Jetson Xavier NX上安装torchvision编译报错:fatal error: libavcodec/avcodec.h: No such file or directory
    网上给出的方法很多都是说由于ffmpeg版本导致的问题,但是我又不想去搞这个ffmpeg,不想把问题复杂化!然后在官网看到一条解决方式,在编译之前,对setup.py文件进行一些修改,把:
    if has ffmpeg 改为if False即可

7. nvcc not fount(添加cuda进环境里面改)原文链接

原因是虽然已经安装了cuda但是没有将cuda添加到Linux环境下。

首先声明:通过修改.bashrc文件的方法来修改环境是永久有效但是仅针对当前用户,对于没有root权限的用户,这种方式是很有好的,

  1. 如果有root权限的可以直接输入命令,修改环境。
  sudo vim ~/.bashrc
  1. 对于没有root权限的人来说就只能选择以下的方式:通过修改./bashrc文件
    打开Linux终端,输入命令:
echo 'export PATH=/usr/local/cuda-10.0/bin/:$PATH'>>~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH'>>/.bashrc
source ~/.bashrc

注意以上的第一行和第二行命令中的 cuda-10.0 这里根据安装的cuda版本不同所对应的文件夹名称也不同。如果安装是cuda9.0请到usr文件下找到local文件夹看看你所安装cuda文件夹名是什么,那么上面的 cuda-10.0 内容就相应改成什么。

需要注意的是:上述的方式只针对当前用户,因此最后一个命令是用于跳转到当前用户的命令窗口执行。在对应的用户终端命令栏中输入vncc -V则可以看到NVIDIA版本信息。

十三、Jetson安装mysql

1.系统

Jetson nano 官方系统是ubuntu,是在ubuntu上修改的NVIDIA系统 ubuntu18.04 LTS,好像是是aarch架构,系统界面如下

2.安装配置mysql

安装

和直接在ubuntu上安装没有什么区别,直接使用apt-get install mysql-server 得到的是5.x版本,不是最新的8.x版本 使用 apt-get 安装完后 会生成一些默认的账户在 /etc/mysql/debian.cnf中 可以通过sudo cat /etc/mysql/debian.cnf查看

配置用户

登录应该是需要安装mysqsl-client,也是使用apt-get install mysql-client安装

然后登录

mysql -u username -p 

然后输入密码
新建用户,赋予权限

create user 'username'@'localhost' identified by 'password';
#username是你想创建的用户名
#localhost是表示它可以通过那个ip来访问,localhost表示本地 其余ip表示其他地址 %表示所有
#password是密码
grant all privileges on 数据库.* to username@ip地址 ;
#好像mysql的用户是通过 username+ip来区别,可以有连个username相同的用户,只要ip不一样。

修改配置文件,实现远程访问

cd /etc/mysql

//然后ls一下 我的有下面这些东西,配置文件在mysql.conf.d中
//conf.d      debian-start  my.cnf.fallback  mysql.conf.d
//debian.cnf  my.cnf        mysql.cnf

cd mysql.conf.d
vim mysqld.cnf
     //将地址127.0.0.1 改成0.0.0.0
service mysql restart

mysql其他常用命令:

sudo service mysql restart
sudo netstat -tap | grep mysql        #查看是否允许

配置内网穿透

我选择使用花生壳进行内网穿透,花生壳还是比较方便的。
应该是可以直接参考树莓派的官方教程https://service.oray.com/question/11639.html

dpkg -i phtunnel_5_0_rapi_aarch64.deb      #安装

可以通过以下命令来操作:

phddns           	#查看命令
phddns 	start		#打开
phddns status		#可以查看SN码

打开http://b.oray.com ,在登录页面中输入SN码与默认密码(admin)登录。
剩下的就看官方教程就好了https://service.oray.com/question/11639.html
建立的映射应该是tcp类型,绑定到3306端口
注意,需要先给你的Nano 配置IP与MAC绑定,因为你的路由器应该是使用动态分配IP,打开192.168.1.1即可进行绑定,不然每次都要重新 在管理界面绑定一次。

测试

可以先在内网测试一下能否脸上nano的mysql,使用ifconfig获得内网地址类似与192.168.1.101,然后在自己电脑上用workbench测试一下。
测试成功后绑定外网然后在外网试一下。

十四、总结

这里之后,基本的盒子部署已经完成了,后面就是一些项目的具体实施,比如我目前在学习的ReID模块,我也会将其写成博客进行学习。

你可能感兴趣的:(Jetson板子开发,arm,硬件工程,边缘计算)