文章目录
- 1、外观
- 2、Jetson Nano的规格
- 3、Jetson Noao 激活
- 4、 安装系统包和prerequisites
- 4.1增加交换空间大小
- 4.2 ssh远程连接nano并设置最大功率
- 4.2.1 远程连接nano
- 4.2.2 切换高低功率
- 4.2.3 更新系统并移除无用软件
- 4.3 安装系统所需的包
- 4.3.1配置系统级的安装包
- 4.3.2 配置python环境
- 4.3.3 系统工具jtop和nvidia-smi的结合
- 引用
本篇文章会介绍jetson nano系统的基础安装,安装后可以根据需求进行后续操作。
所写内容全部原创,经过实测,参考请添加引用说明。
先让大家看看长啥样,各位观众!!!
1、外观
简简单单来个6视图。
2、Jetson Nano的规格
建议从某东或某宝购买时带个Micro usb电源和64G的 SD卡,供电稳定,存储够用。
3、Jetson Noao 激活
一、在你启动NVIDIA Jetson Nano前,你需要做三件事:
- 一个 micro-SD card (最小16GB)
- 一个 5V 2.5A MicroUSB 电源
- 网线
二、下载 并flash .img 文件到你的micro-SD 卡里
- 1、 官方提供了三种方式format,分别用于windows,MAC,linux系统,我用的是windows。
- 2、下载的文件是
- 3、解压前有5G(解压后10多个G,所以推荐64G卡), 系统是Ubuntu18.04LTS,就用官方推荐的Etcher来烧进去。
我是买了官方的SD卡的,所以这个卡是做好的,直接可用。但还是格式化后走了一遍(不怕累) - 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
4.2 ssh远程连接nano并设置最大功率
4.2.1 远程连接nano
有显示器,但还是要用ssh ,有两个好处
- 可以降低因为显示而吃的GPU资源
- 电流不够的风险可以降低
查看用户名使用命令:
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
接着,更新系统,首选,更换国内安装源:
- 备份原先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
- 更新软件列表
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环境 一样。
使用virtualenv和virtualenvwrapper安装命令:
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/