Jetson (Nano) 烧写系统及配置cuda、cudnn环境

英伟达Jetson Nano是一款形状、外接口类似于树莓派的嵌入式主板,搭载了四核Cortex-A57处理器,GPU则是拥有128个NVIDIA CUDA核心的NVIDIA Maxwell架构显卡,内存为4GB的LPDDR4,存储则为16GB eMMC 5.1,支持4K 60Hz视频解码。

一、准备安装

    1. 电源线(必备)

         Jetson Nano中电源线,具体的参数是5V⎓2A的MicroUSB电源线和5v-4A的大功率输入电源线(需要跳线短接)。我自己的树莓派搭载了5V⎓4A的电源线。

     2. SD卡 (必备)

        Jetson Nano要求最低配置16G的SD卡,但是整个系统刷完SD卡就被用了大概13G,后期还要安装TensorFlow等一些机器学习框架,还有可能要安装样本数据,所以16G的卡是不够用的,我觉得最低32G,而我自己用的是128G卡。

   3.无线网卡 (选配)

       Jetson Nano搭载了千兆以太网卡,当然也支持有线网络,我这里连的wifi,所以插了个无线网卡。

二、刷系统

Jetson Nano直接把镜像写入SD文件即可。

    下载镜像

英伟达jetpack镜像下载官方地址

https://developer.nvidia.com/zh-cn/embedded/jetpack

NVIDIA JetPack SDK 是构建 AI 应用的全面解决方案。JetPack SDK 支持所有 Jetson 模块和开发者套件。

JetPack SDK 包含适用于 Linux 操作系统的最新 Linux 驱动包 (L4T) 以及用于深度学习、计算机视觉、加速计算和多媒体的 CUDA-X 加速库与 API。

它还包含用于主机和开发者套件的示例、文档和开发者工具,并支持更高级别的 SDK,例如用于直播视频分析的 DeepStream 以及用于机器人的 Isaac。

JetPack 4.4 是最新的正式版,支持所有 Jetson 模块。

主要特性包括对 Jetson Xavier NX 以及 CUDA、TensorRT 和 cuDNN 的新正式版本的支持。

2 . 格式化SD卡    

使用SD Card Formatter格式化SD卡,这个工具哪都有,百度一下下载一个吧

3. 使用Etcher写入镜像,大概30分钟,镜像写入完毕。

根据我玩树莓派的经验,一开始用Win32 Diskimg写入镜像,结果开不了机。后来用Etcher则一切正常,给出Etcher的下载地址

https://www.balena.io/etcher/

4. 烧写完成后,将SD卡插入Jetson Nano,开机

三、配置环境

1.时间设置

# 换成你当前的时间即可
sudo date -s "2020/01/01 8:00:59"

2.中文输入法

# 安装ibus-pinyin
sudo apt-get install ibus-pinyin

系统设置
在系统设置下,双击"language support";

点击“install / remove language…”,选择简体中文,输入密码,此时系统会进行更新,大约几分钟,安装过程如下;

重启电脑

在系统设置下 Text Entry  里添加拼音,再重新启动即可

3.修改环境变量

Jetson Nano利用官方镜像进行安装后,系统已经安装好了JetPack,cuda,cudaa,OpenCV等组件,需要修改下环境变量才可以使用。

利用gedit打开 ~ 路径下.bashrc文件:

sudo gedit ~./bashrc

文件的最后添加以下三行:

export PATH=/usr/local/cuda-10.2/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.2

重新执行.bashrc文件,直接生效;

source ~./bashrc

输入nvcc -V命令进行测试,如果显示如下信息,证明修改正确。

nvcc -V

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_21:14:42_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89

4.更改国内镜像源(可选)

在路径/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

至此,完成系统更改源的操作,接下来就是配置整个系统的过程了。

5. 安装python依赖

因为Jetson Nano中已经安装了Python3.6版本,安装pip时会提示缺少setuptools工具,建议下载setuptools和pip的安装包直接安装

sudo apt-get install python3-pip python3-dev

安装后pip是9.01版本,需要把它升级到最新版,升级后pip版本为最新版本。

python3 -m pip install --upgrade pip  #升级pip

pip3 -V

5.1. 安装那些机器学习包

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.2. 安装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 

5.3. 安装Keras

既然有了TensorFlow,那就把Keras也安装上

sudo pip3 install keras

安装完成后,进入python3,检查一下安装成果,import keras时,下方提示using TensorFlow backend,就证明Keras安装成功并使用TensorFlow作为backend。

6. SSH远程连接nano

目前网上看到的资料都是将nano作为单独的电脑,进行远程连接来使用,在Ubuntu Host电脑上安装NVIDIA SDK Manager可以用来进行刷系统、安装相关软件的操作,下载地址:

https://developer.nvidia.com/embedded/jetpack

连接前提

  1. Nano必须先通过MicroSD卡成功启动进入Ubuntu界面
  2. 采用Micro USB链接Nano到Ubuntu Host
  3. Nano连接网线到外网,且与Ubuntu Host机器在同一局域网内

另外可通过SSH远程连接(如何与SOON平台连接还需补充)

jetson nano已经默认开启了openssh-server服务。可以通过xshell直接连

7. jetson inference介绍

NVIDIA提供了套教程,教程里包含了开发指南、TensorRT示例代码,甚至包括ImageNet和DetectNet示例在内的预先训练的网络模型,这个可以自行探索

https://github.com/dusty-nv/jetson-inference

使用TensorRT和Jetson相关的深度学习库;
https://developer.nvidia.com/embedded/twodaystoademo

【JETSON-NANO】SD卡系统备份克隆:

1、连接SD卡到主机
将装好系统的SD卡通过读卡器连接主机。通过命令要看SD卡:
sudo fdisk -l
会有很多内容,可以在插入SD卡前后分别执行该命令,这样通过对比不同之处就可以找到/dev/sdc是这个SD卡,看到的有数字的是这个卡的各个分区。
2、对SD卡模型进行备份
我们使用的是dd命令,关于dd命令的详细说明参看另外一份博客,使用过程中要小心,避免原文件损坏。要说明的是,系统备份直接使用dd命令原SD卡存储多大,备份的文件就会有多大,所以要进行压缩备份;另外,对备份文件的恢复等其它操作要在同一台Host上进行操作。
备份命令为:
sudo dd if=/dev/sdc conv=sync,noerror bs=16M | gzip -c > ~/nano.img.gz

bs:bs是写入和读取速度,在我电脑上16M最大可以达到60MB/s左右的速度,可以根据自己的情况扩大,减小没必要。
3、等待30分钟
4、插入一张新的格式化好的sd 卡,复制系统
sudo gzip -dc /home/username/nano.img.gz | sudo dd of=/dev/sdc

相关推荐
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:白松林 返回首页