准备工作:写入系统镜像
准备microSD卡(32G以上),
- 官网下载系统镜像(Ubuntu 18.04LTS);
https://developer.nvidia.com/embedded/dlc/jetson-nano-dev-kit-sd-card-image
(2)下载镜像制作工具Etcher;
(3)傻瓜式操作,选择插入的microSD卡,然后点击“Flash!”,直到制作完成。
Note:SD卡烧录好后插入板中,需要连接键盘鼠标、hdmi接口显示器,网线;通电后系统自动启动,进行系统的初始配置,出现卡顿的话断电重启即可
可以使用USB或者DC电源供电
- USB充电器需要2A以上;
- 使用DC电源时需要将J48两个触点短接
相关内容可以到官网下载
https://developer.nvidia.com/embedded/downloads
1.修改环境变量
Jetson Nano利用官方镜像进行安装后,系统已经安装好了JetPack,cuda,cudaa,OpenCV等组件,需要修改下环境变量才可以使用。
利用gedit打开 ~ 路径下.bashrc文件:
sudo gedit ~./bashrc
文件的最后添加以下三行:
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0
重新执行.bashrc文件,直接生效;
source ~./bashrc
输入nvcc -V命令进行测试,如果显示如下信息,证明修改正确。
nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sun_Sep_30_21:09:22_CDT_2018
Cuda compilation tools, release 10.0, V10.0.166
2.更改国内镜像源
在路径/etc/apt/下有source.list文件,
(1)对该文件进行复制备份;
sudo cp sources.list sources.list.bak
(2)使用vim或者gedit等工具对source.list文件进行编辑;
直接清空source.list文件内容,根据个人喜好选择下述中科大或者清华的arm64源,粘进文件,保存。(Note:ARM源和一般源不同,需要将地址中的ubuntu改为ubuntu-ports)
中科大
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
清华
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
(3)更新
sudo apt-get update
'''如有需要,执行下述命令对文件进行升级'''
sudo apt-get upgrade
至此,完成系统更改源的操作,接下来就是配置整个系统的过程了。
3. 安装pip
因为Jetson Nano中已经安装了Python3.6版本,安装pip时会提示缺少setuptools工具,建议下载setuptools和pip的安装包直接安装
sudo apt-get install python3-pip python3-dev
安装后pip是9.01版本,需要把它升级到最新版,升级后pip版本为19.0.3。
python3 -m pip install --upgrade pip #升级pip
这里面升级后会有一个小Bug,需要手动改一下(未验证,先保留)
sudo vim /usr/bin/pip3 #打开pip3文件
将原来的
from pip import main
if __name__ == '__main__':
sys.exit(main())
改成
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
修改结束后保存。运行pip3 -V成功后显示
pip3 -V
pip 19.0.3 from /home/beckhans/.local/lib/python3.6/site-packages/pip (python 3.6)
4. 安装那些机器学习包
sudo apt-get install python3-scipy
sudo apt-get install python3-pandas
sudo apt-get install python3-sklearn
这里面没有numpy和matplotlib,安装其它包时,这两个也会被自动安装。
出现numpy错误
>>> import tensorflow as tf
RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb
ImportError: numpy.core.multiarray failed to import
ImportError: numpy.core.umath failed to import
ImportError: numpy.core.umath failed to import
2019-05-02 10:29:02.103748: F tensorflow/python/lib/core/bfloat16.cc:675] Check failed: PyBfloat16_Type.tp_base != nullptr
Aborted (core dumped)
解决方法如下,numpy版本不匹配;(python3.6.8版本对应numpy1.16.1)
pip3 install -U numpy==1.16.1--user
5. 安装TensorFlow GPU版
(1)确认CUDA已经被正常安装
nvcc -V
如果能看到CUDA版本号,即为正确安装
(2)安装所需要的包
sudo apt-get install python3-pip libhdf5-serial-dev hdf5-tools
(3)安装TensorFlow GPU版本
pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu==1.13.1+nv19.3 --user
百度网盘链接:https://pan.baidu.com/s/17Iq4XXfSR4CDDiQS6NAlOA 提取码:2fy3 (更改源后下载速度飞快,不用单独下载)
6. 安装Keras
既然有了TensorFlow,那就把Keras也安装上
sudo pip3 install keras
安装完成后,进入python3,检查一下安装成果,import keras时,下方提示using TensorFlow backend,就证明Keras安装成功并使用TensorFlow作为backend。
7. SSH远程连接nano
目前网上看到的资料都是将nano作为单独的电脑,进行远程连接来使用,在Ubuntu Host电脑上安装NVIDIA SDK Manager可以用来进行刷系统、安装相关软件的操作,下载地址:
https://developer.nvidia.com/embedded/jetpack
连接前提:
- Nano必须先通过MicroSD卡成功启动进入Ubuntu界面
- 采用Micro USB链接Nano到Ubuntu Host
- Nano连接网线到外网,且与Ubuntu Host机器在同一局域网内
另外可通过SSH远程连接(如何与SOON平台连接还需补充)
jetson nano已经默认开启了openssh-server服务。可以通过xshell直接连
8. jetson inference介绍
NVIDIA提供了套教程,教程里包含了开发指南、TensorRT示例代码,甚至包括ImageNet和DetectNet示例在内的预先训练的网络模型,这个可以自行探索
https://github.com/dusty-nv/jetson-inference
使用TensorRT和Jetson相关的深度学习库;
https://developer.nvidia.com/embedded/twodaystoademo