【Jetson-Nano】1.基础安装环境配置

2023-11-07

本篇文章会介绍jetson nano系统的基础安装,安装后可以根据需求进行后续操作。


所写内容全部原创,经过实测,参考请添加引用说明。


先让大家看看长啥样,各位观众!!!

1、外观

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
简简单单来个6视图。

2、Jetson Nano的规格

在这里插入图片描述
建议从某东或某宝购买时带个Micro usb电源和64G的 SD卡,供电稳定,存储够用。

3、Jetson Noao 激活

一、在你启动NVIDIA Jetson Nano前,你需要做三件事:

  1. 一个 micro-SD card (最小16GB)
  2. 一个 5V 2.5A MicroUSB 电源
  3. 网线

二、下载 并flash .img 文件到你的micro-SD 卡里

  1. 1、 官方提供了三种方式format,分别用于windows,MAC,linux系统,我用的是windows。
    这个图是我从参考内容中取的,写博客时忘截了

  2. 2、下载的文件是
    在这里插入图片描述

  3. 3、解压前有5G(解压后10多个G,所以推荐64G卡), 系统是Ubuntu18.04LTS,就用官方推荐的Etcher来烧进去。
    我是买了官方的SD卡的,所以这个卡是做好的,直接可用。但还是格式化后走了一遍(不怕累)

  4. 4、将SD卡放到nano卡槽中,连接好鼠标、键盘、网线和显示器就可以上电了。

这是我们的图
上电后,一路安装,会有ubuntu的一些设置,比如时区,键盘,用户名啥的,系统我选中国,会有中文输入法(下载很久,等不及了直接跳过,所以拼音不能用)。
5. 完成后的效果
在这里插入图片描述

4、 安装系统包和prerequisites

包括四个方面的内容
4.1. 增加交换空间大小
4.2. ssh远程连jetson nano
4.3. 安装系统所需的包,配置python环境
4.4. 安装jetson inference engine

4.1增加交换空间大小

这一步是必须的,显存个内存是共享受的,物理内存只有4G,所以个人感觉加上好一些。Swap交换空间是在硬盘上,当物理内存RAM用完时,会开始使用。交换空间可以采用专用交换分区或交换文件的形式。在大多数情况下,不存在交换分区,因此唯一的选择是创建交换文件。创建教程参考1参考2该链接,将添加swap file到ubuntu 18.04系统上。

  • first,检查当前系统的效换空间
sudo swapon --show

在这里插入图片描述
检查内存

free -h

在这里插入图片描述
内存有4G,交换空间2G.

  • second,增加2G交换空间
    a. 创那用于swap的文件
sudo fallocate -l 2G /swapfile

如果fallocate没有安装,将得到fallocate failed:Operation not supported的报错信息。可以用以下命令创建:

sudo dd if=/dev/zero of=/swapfile bs=2048 count=1048576

b. 所有用户都可以读写swap file,设置正确的权限:

sudo chmod 666 /swapfile

c. 设置交换空间

sudo mkswap /swapfile

d. 激活交换空间

sudo swapon /swapfile
#为了使这个激活永久有效
sudo vi /etc/fstab
#粘贴 /swapfile swap swap defaults 0 0

在这里插入图片描述
e. 验证增加空间是否有效

sudo swapon --show
sudo free -h

swap 在这里插入图片描述

4.2 ssh远程连接nano并设置最大功率

4.2.1 远程连接nano

有显示器,但还是要用ssh ,有两个好处

  1. 可以降低因为显示而吃的GPU资源
  2. 电流不够的风险可以降低

在这里插入图片描述
查看用户名使用命令:

whoami

查看ip地址用:

ifconfig

连接时还可以打开cmd,输入:

ssh username@ip

会要输入密码的

4.2.2 切换高低功率

有两种供电方式,10W和5W。

#查看当前是那个模式
sudo nvpmodel -q

在这里插入图片描述

#将当前模式切换到5W模式,将会自动关掉两个cpu,只使用cpu1,2
sudo nvpmodel -m 1

两种模式,0 是高功率10w,1是低功率5w,默认状态是高功率。安装时,切换到最大功率,因为安装时会用到许多外设,耗电量大,在执行完功率状态切换后往往还要加一行:

sudo nvpmodel -m 0
sudo jetson_clocks

jetson_clocks将会使cpu频率固定。另外nano有两种供电方式,一种是5V 2.5A(10W)的microUSB供电;但如果你要有很多外设在(键盘、鼠标、wifi、显示器)在使用,最好用5V 4A(20W)的供电方式,来保证nano的正常工作。

4.2.3 更新系统并移除无用软件

移除LibreOffice会为系统省很多空间,这个软件对做深度学习和计算机视觉算法也没有太多用

sudo apt-get purge libreoffice*
sudo apt-get clean

接着,更新系统,首选,更换国内安装源:

  1. 备份原先source.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

2.修改source.list

sudo vim  /etc/apt/sources.list

将以下内容替换原内容

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
  1. 更新软件列表
sudo apt-get update 

可能会有如下问题:
E: The repository ‘https://repo.download.nvidia.com/jetson/common r32 Release’ does not have a Release file
在这里插入图片描述
原因多半是因为设置代理或网络不好,建议更换网络,并执行如下代码:

sudo add-apt-repository universe

再进行更新。
或者选择不安全的处理方式(不推荐):

sudo mv /etc/apt/sources.list.d/nvidia-l4t-apt-source.list ~

这个源与nvidia官方更新有关,如果报错多半与网络有关,换成网速好可上外网的基本就可以解决
4. 如果有软件需要更新,执行以下代码:

sudo apt-get upgrade

但初次烧录的系统都比较新,没必要更新。

4.3 安装系统所需的包

本节将配置系统所需的包,先配置cuda的环境变量, 填加PATH到.bashrc,具体路径,看自己cuda版本,在路径/usr/local下。
具体写适合自己的:

vi ~/.bashrc
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_ROOT=/usr/local/cuda
source ~/.bashrc

然后用命令查看cuda版本:

nvcc -V

在这里插入图片描述

4.3.1配置系统级的安装包

sudo apt-get install build-essential make cmake cmake-curses-gui
sudo apt-get install git g++ pkg-config curl  zip zlib1g-dev libopenblas-base libopenmpi-dev 
sudo apt-get install libatlas-base-dev gfortran libcanberra-gtk-module libcanberra-gtk3-module
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev
sudo apt-get install nano locate screen

联网成功,网速顺利的话,将花费几分钟。
接着安装scipy的依赖和系统级别的cython:

sudo apt-get install libfreetype6-dev 
sudo apt-get install protobuf-compiler libprotobuf-dev openssl
sudo apt-get install libssl-dev libcurl4-openssl-dev
sudo apt-get install cython3

如果要装TensorFlow Object Detection (TFOD) API ,还要装xml的工具:

sudo apt-get install libxml2-dev libxslt1-dev

接着安装opencv的系统级依赖,一些编解码的库:

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libxvidcore-dev libavresample-dev
sudo apt-get install libtiff-dev libjpeg-dev libpng-dev

4.3.2 配置python环境

先安装pip,python的包管理工具:

sudo apt-get install -y python3-dev python3-testresources python3-setuptools 
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
rm get-pip.py

下文中将使用pip来安装python的一些包,对于一些网络不好的情况,建议先改变pip的安装源到国内:

#如清华的源
https://pypi.tuna.tsinghua.edu.cn/simple
#豆瓣源
https://pypi.doubanio.com/simple
#临时改源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
#持久的设为默认源
pip -U install pip 
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
#如果您到 pip 默认源的网络连接较差,临时使用镜像站来升级 pip
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U

我们将使用python的虚拟环境,来保证你使用的环境互相独立,使用体验与全局python环境 一样。

使用virtualenvvirtualenvwrapper安装命令:

sudo pip install virtualenv virtualenvwrapper

安装完之后,需要更新.bashrc

vim ~/.bashrc

在文件底部输入

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs #指定所有的需拟环境的安装位置
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 #指定解释器
source /usr/local/bin/virtualenvwrapper.sh#进行激活生效

保存并退出,使用source 重新载入

source ~/.bashrc

更多virtualenv使用的基本命令可以阅读本文
接着创建python的虚拟环境,

mkvirtualenv nano #创建一个名字叫nano的虚拟环境

在这里插入图片描述
创建后直接进入了。

一些virtualenvwrapper的常用命令:

#创建一个环境
mkvirtualenv name #在~/.virtualenvs下安装name的需拟环境
#激活工作环境
workon name
#workon后不加任何东西可以列出所有虚拟环境
#退出当前虚拟环境
deactivate
#删除虚拟环境,需先退出
rmvirtualenv name
#列出所有虚拟环境
lsvirtualenv
#复制虚拟环境
cpvirtualenv sourece_name dest_name

4.3.3 系统工具jtop和nvidia-smi的结合

Jetson Nano中有个工具jtop, 可以同时查看CPU和GPU资源以及温度,另外就是可以把你当前的library展示出来.

#注意要退出虚拟环境,在系统中执行
sudo -H pip install jetson-stats
sudo jtop

在这里插入图片描述
选1、ALL的内容
在这里插入图片描述
2、GPU的内容
在这里插入图片描述
3、CTRL的内容
在这里插入图片描述
4、INFO的内容
通过本内容可以查看当前系统jetpack版本,安装有那些软件以及对应的版本。
在这里插入图片描述
按q退出。
下图为低功耗下的图:
在这里插入图片描述
本文图片为jetpack4.2.1内容,随着jetpack版本的升级,页面会发生改变,如下为jetpack4.4的部分内容,可以看到有6部分内容,这里不一一列举:
在这里插入图片描述

引用

文中所有链接部分都是引用参考内容及出处,一并致谢,些处不再过多罗列.如有侵权,请联系本人.

[1] https://www.pyimagesearch.com/2019/05/06/getting-started-with-the-nvidia-jetson-nano/
[2] https://medium.com/@jackycsie/jetson-nano-9d89cbf2fc18
[3] https://chtseng.wordpress.com/2019/05/01/nvida-jetson-nano-%E5%88%9D%E9%AB%94%E9%A9%97%EF%BC%9A%E5%AE%89%E8%A3%9D%E8%88%87%E6%B8%AC%E8%A9%A6/
[4] https://www.dlology.com/blog/how-to-run-keras-model-on-jetson-nano/
[5] https://thenewstack.io/tutorial-configure-nvidia-jetson-nano-as-an-ai-testbed/
[6] https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/17963979
[7] https://www.pyimagesearch.com/2020/03/25/how-to-configure-your-nvidia-jetson-nano-for-computer-vision-and-deep-learning/
[8] https://jkjung-avt.github.io/jetpack-4.4/

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

【Jetson-Nano】1.基础安装环境配置 的相关文章

  • Java Remote Debug

    Java Remote Debug 简介 如果是本地调试 那么在IDE工具 比如Eclipse 的帮助下 是非常容易的 但是如果想对部署在测试 生产环境中的程序进行调试时 你会怎么办呢 在这种情况下 源码已经被编译为中间代码 因此本地调试肯
  • windeployqt.exe的使用与避坑(windows平台)

    1 介绍 windeployqt exe是Qt自带的工具 用于创建应用程序发布包 简单来说 这个工具可以自动地将某程序依赖的库 资源拷贝到其所在目录 防止程序在其他电脑上运行报找不到库的错误 这里贴上官方文档 https doc qt io
  • 零死角玩转stm32-高级篇之FatFs

    零死角玩转stm32 高级篇之FatFs Rev R0 09 2013年08月05日 教程 评论数 1 被围观 1 579 2 FatFs Rev R0 09 2 1 实验描述及工程文件清单 实验描述 MicroSD卡文件系统 FATFS
  • 前端精度丢失处理

    前端操作数据时 如果数据超出一定范围会出现精度丢失的问题 这是因为 在传输过程中 数据类型被转换成Number Number的精度范围在2 53之间 即 9007199254740991 9007199254740991 超出范围就会造成精
  • visual studio code搭建Java环境 - 一步一个脚印详细教程

    visual studio code搭建Java环境 一 软件安装 二 添加环境变量 三 vscode配置 1 软件本身设置 2 编译环境配置 后记 一 软件安装 visual studio code下载链接 https azure mic
  • java 根据 SVN changeLog 文件 生成增量升级包

    近日在做项目的时候 遇到了个问题 因为本地环境与生产环境 不一致 所以修改之后的代码不能整体打包 放到生产环境 而是只能以增量包的形式升级 手动打包 费时费力 而且容易出错 于是参照网上一些博客开发了一个增量包打包工具 好闲言少叙 上代码
  • 面试了这么多场,“ 进程间的通信 ” 真是从不缺席,小伙伴们赶快重视起来!!

    进程间通信 1 管道 2 消息队列 3 共享内存 4 信号量 5 信号 6 Socket 套接字 每个进程的用户地址空间都是独立的 一般而言是不能互相访问的 但内核空间是每个进程都共享的 所以进程之间要通信必须通过内核 在内核中开辟一块缓冲
  • logback日志配置实例

    在pom xml文件中引入依赖
  • 数据分析学习总结笔记07:方差分析

    数据分析学习总结笔记07 方差分析 1 方差分析概述 1 1 方差分析简介 1 2 方差分析基本思想和原理 1 3 方差分析的基本假设 2 单因素方差分析 One way ANOVA 2 1 单因素方差分析概念 2 2 单因素方差分析的原理
  • 西门子PLC的S7协议报文解析说明

    我们以S7的1500系列来查看握手和读取 写入 字Word或者位Bit 命令报文 以下报文不做说明时都是十六进制字节 西门子PLC需要连接成功后发送两次握手命令方可进行读写通信 西门子PLC的S7协议的头由四个字节组成 第一个字节数固定为0
  • C#实现全盘扫描,找到符合要求的文件,并把路径写入到TXT中

    好久没更新文章了 来水一篇 最近领导安排了个任务 让把服务器上符合要求的文件的路径找出来 windos自带的搜索功能太慢了 everything不想下载 想着自己实现一个 实现完成发现速度也不是很慢 实现思路 1 先把电脑中的所有驱动器名称
  • 【Linux】socket 编程基础

    文章目录 网络间的通信 socket 是什么 1 socket 套接字 2 套接字描述符 3 基本的 socket 接口函数 3 1 头文件 3 2 socket 函数 3 3 bind 函数 struct sockaddr 主机序列与网络
  • [亲测可用]springBoot调用对方webService接口的几种方法示例

    目录 前言 一 需要用到的maven 二 如何调用webservice接口 调用方法一 调用方法二 myEclipse生成的例子 idea生成的例子 前言 平常我们开发调用接口一般会用到几种数据格式 比如有restful的 这个是目前最流行
  • QT5在首次连接MYSQL时候找不到头文件问题

    我碰到的问题是这样的 在我之前写好 没有报错 的QT程序内添加MYSQL 但是报错 error C1083 无法打开包括文件 QSqlDatabase No such file or directory 在网上查找后发现没有添加对应的模块
  • pandas行列转换的4大技巧

    公众号 尤而小屋作者 Peter编辑 Peter 大家好 我是Peter 本文介绍的是Pandas中4个行列转换的方法 包含 melt 转置T或者transpose wide to long explode 爆炸函数 最后回答一个读者朋友问
  • C-switch case之如何巧妙判断范围区域

    当判断整数时 示例 判断整数范围 include
  • WebGL笔记 (侧重理论基础向)

    要把Cesium three js 这些玩明白还是要有WebGL的知识的 不然只是官方demo的ctrl cv侠 本笔记参考的教程 2022年WebGL入门教程 完结 哔哩哔哩 bilibili 一 初级 二维 1 1 坐标系 WebGL的
  • 操作臂的运动学

    操作臂的运动学 文章目录 操作臂的运动学 2 1 连杆的描述 2 2 操作臂的运动学 2 2 1 连杆变换 2 2 2例子 PUMA560连杆参数 参考文献 2 1 连杆的描述 机器人中每个连杆都可以用四个运行学参数来描述 其中两个描述连杆

随机推荐