刷写镜像
官方地址(镜像):
JetPack SDK
博主用的是目前的最新款(JetPack 4.4)
刷写工具:
Etcher
顺带提一句, tf卡建议内存>=32G, 64G为佳
…32g的编译个opencv都不够, 看来最少要用64g的了…
开启风扇
啊,这步之前默认你已经按照引导创建了自己的账户
然后就需要开启风扇了
终端输入如下语句:
cd /etc
sudo touch rc.local
sudo chmod u+x rc.local
sudo gedit rc.local #gedit是编辑器,可以根据个人爱好更换,通常的编辑器有nano,gedit,vim
在编辑器中输入:
#!/bin/bash
sleep 10
sudo /usr/bin/jetson_clocks
sudo sh -c 'echo 255 > /sys/devices/pwm-fan/target_pwm'
上面的255就是风扇的PWM,可以设置的范围是0~255。设置为0关闭风扇,设置255风扇速度最大。
设置完成后保存并退出, 重启nano
sudo reboot
其他操作查看原链接 :
Jetson Nano 风扇调速
update
经博主尝试,更换其他镜像源(如中科大源)可能导致在 install 时出现无法定位软件包等问题,
所以还是老老实实用自带的源好了…(当然install某些国内源有的软件时可以换过去…毕竟速度属实…)
换的话推荐清华源(一定要注意处理器是aarch64架构的Ubuntu 18.04.2 LTS系统类型的,要使用与之匹配的源)
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
//建议先换国内源update&upgrade
更新的话直接
sudo apt-get update
sudo apt-get upgrade
如果用的时候觉得nano自动熄屏很烦(未设置默认5min)可以通过右上角系统设置中的 Birghtness&Lock 将熄屏设为 Never
另外如果需要中文输入法可以
sudo apt-get install ibus-pinyin
reboot
然后在右上角选择pinyin
远程连接设置(选)
这里属实恶心…由于hdmi线适配性不好又没有合适的显示器…旧显示器1s闪一次…博主眼睛已瞎, 故而先走此步骤…
买完带供电的HDMI转VGA线后已解决(实际就开始时候供下电即可, 后面可以拔掉)
win10 远程连接(xrdp)
终端输入:
sudo apt-get install xrdp vnc4server xbase-clients
然后
win+r 输入 mstsc 回车 打开远程桌面链接
至于ip地址…emmm 网段扫描+穷举法 简单粗暴
网段扫描工具 (提取码: a61a)
输入用户名及密码
打开一看…emmm…喜闻乐见, 闪退了
搜了下解决方案,如下:
终端输入:
sudo apt-get install xfce4
echo xfce4-session > ~/.xsession
touch .session
sudo vim /etc/xrdp/startwm.sh
然后在最后两行(test -x /etc/x11/xsession …)上
加上
xfce4-session
然后 restart 一下
sudo service xrdp restart
这次就不会闪退了
但是又会发现两个问题…
(1). 屏幕刷新速率奇慢无比(fps<1可还行…)
对此我改了下屏幕分辨率和调制解调器
(2).终端无法打开(或者说远程终端即使可以打开也没有显示)
这里我提供一种较为简单的解决方案——安装xfce4-terminal
sudo apt-get install xfce4-terminal
然后通过运行程序中搜索xfce4-terminal 回车进行打开
参考链接:
JetsonNano xrdp 远程桌面无法打开 终端Terminal
解决JETSONNANO XRDP 远程桌面无法打开终端TERMINAL 问题
VNC
打开终端界面,输入以下指令编辑
/usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml 文件
sudo vim /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml
在<schema id='org.gnome.Vino' path='/org/gnome/desktop/remote-access/'>
(应该是第二行)下面插入如下程序段:
<key name='enabled' type='b'>
<summary>Enable remote access to the desktop</summary>
<description>
If true, allows remote access to the desktop via the RFB
protocol. Users on remote machines may then connect to the
desktop using a VNC viewer.
</description>
<default>false</default>
</key>
保存并退出
接着glib-compile-schemas指令将chemas编译一下
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
编译完成之后,点开屏幕右上角的齿轮图标,选择System Settings, 然后点击Desktop Sharing, 安装下面的截图设置参数。注意密码最多支持8位
设置好了之后,关掉窗口,点开左上角的搜索图标(第一个图标),搜索startup applications, 并点开
打开之后,点击ADD, 然后新建一个程序。 Name 设置为Vino, Command设置为/usr/lib/vino/vino-server . Comment设置为VNC Server。设置好之后保存即可。
终端输入以下指令来关闭VNC连接加密
gsettings set org.gnome.Vino require-encryption false
gsettings set org.gnome.Vino prompt-enabled false
完成后reboot一下
sudo reboot
如下, 即可连接
参考连接: Jetson Nano 系列教程2:登录Jetson Nano
补上VNC Viewer 下载链接:
https://www.realvnc.com/en/connect/download/viewer/
问题依旧很明显, 延迟极高,…
说起来还不如ssh来的舒服…不过奈何博主要需要图形界面做目标检测之类的…故而不做考虑…
mdzz…开始就配置个系统我要啥图形界面, ssh能降低显示吃的GPU资源还能避免电流不够的风险…主要是还没什么延迟…
ssh
查看用户名
whoami
查看ip地址:
ifconfig
连接:
ssh username@ip
Swap交换空间增加(选)
Jetson Nano 内存为4G,显存与内存共用机制。可以使交换空间增加4G,解决一些耗尽内存的程序出错。
依次输入以下命令,并使其永久生效。
sudo fallocate -l 4G /var/swapfile
sudo chmod 600 /var/swapfile
sudo mkswap /var/swapfile
sudo swapon /var/swapfile
sudo bash -c 'echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab'
可以用free -h
查看
使用jtop查看CPU及GPU资源及温度及show library(选)
更新
sudo pip3 install --upgrade pip
下载
sudo -H pip3 install jetson-stats
使用时sudo jtop
即可
图为ssh时cmd的显示
将CUDA添加到 .bashrc 文件
原因:
nvcc -V
报错: bash: nvcc: command not found
解决:
首先vim
cd ~
vim .bashrc
将后面3行添加到结尾位置
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_ROOT=/usr/local/cuda
然后source一下
source .bashrc
更新python3及安装依赖库
更新python3并安装pip3
sudo apt-get install python3-pip python3-dev
更新pip3(从豆瓣源更新)
用原来的源更新肯能会导致连接超时(一页红字警告…)
python3 -m pip install --upgrade pip -i https://pypi.douban.com/simple
接着修改一个pip3文件的小bug
sudo vim /usr/bin/pip3
将原来的
from pip import main
if __name__ == '__main__':
sys.exit(main())
改为
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
为Python3安装OpenCV(warning: 此方法虽然可以正常编译,但是可能会导致无法将编译好的opencv链接到物理环境中)
实际所用链接: 在Jetson Nano 上配置open4.1.0(亲测成功):
换源注意nano的架构(详见上文update)
首先更新
sudo apt-get update
sudo apt-get upgrade
接着安装依赖
sudo apt-get install build-essential python3 python3-dev python3-pip python3-pandas python3-opencv python3-h5py libhdf5-serial-dev hdf5-tools nano ntp
下一步就是安装CV了
构建OpenCV的第一步是在Jetson Nano上定义交换空间。Jetson Nano具有4GB RAM。这不足以从源代码构建OpenCV。因此,我们需要在Nano上定义交换空间以防止内存崩溃
pip3 install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple
python3 -m virtualenv -p python3 env
echo "source env/bin/activate" >> ~/.bashrc
source ~/.bashrc
接着
//编译OpenCV建议先增加文件交换空间…毕竟就那么大…
# Turn off swap
sudo swapoff /var/swapfile
# Allocates 4G of additional swap space at /var/swapfile
sudo fallocate -l 4G /var/swapfile
# Permissions
sudo chmod 600 /var/swapfile
# Make swap space
sudo mkswap /var/swapfile
# Turn on swap
sudo swapon /var/swapfile
# Automount swap space on reboot
sudo bash -c 'echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab'
# Reboot
sudo reboot
然后安装opencv依赖项,用aptitude来进行操作:
没有aptitude就下一个
sudo apt-get install aptitude
继续
# Update
sudo apt-get update
sudo apt-get upgrade
# Pre-requisites
sudo aptitude install build-essential cmake unzip pkg-config
sudo aptitude install libjpeg-dev libpng-dev libtiff-dev
sudo aptitude install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo aptitude install libxvidcore-dev libx264-dev
#下面这个会告诉你有冲突项,你第一次选择n,第二次之后选择y即可
sudo aptitude install libgtk-3-dev
sudo aptitude install libatlas-base-dev gfortran
sudo aptitude install python3-dev
创建一个虚拟环境
# Create a directory for opencv
mkdir -p projects/cv2
cd projects/cv2
接着从GitHub上下载并解压然后改个名字
# Download sources
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.1.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.1.0.zip
楼主本人在这里遇到了些问题——wget后unzip报错形如下图(图片来自网络):
楼主找了很多资料大多数都是说用jar或者下载7zip解压, 本人试了很多次都是各种报错(比如7zip那个下载下来make时缺东西之类的…)
后来楼主换了种思路…用curl下载…
先下载curl
真正的问题在于下载的文件不完整…故而无法用unzip解压…
所以下面这个curl大家酌情使用即可…
sudo apt-get install curl
然后
curl -L https://github.com/opencv/opencv/archive/4.1.0.zip?raw=true > opencv.zip
curl -L https://github.com/opencv/opencv_contrib/archive/4.1.0.zip?raw=true > opencv_contrib.zip
再unzip就行了
多次尝试后感觉还是wget靠谱些(顺带提一下, opencv4.1大概87.5MB, contrib大概是60多MB, 不到这个大小的应该都是没下全的,unzip报错也很正常…)
可以引入wget断线重连及多次重复机制(contrib同理)
wget -t 0 -c opencv.zip https://github.com/opencv/opencv/archive/4.1.0.zip
趁着月初不限速博主把这俩下载好放到网盘了, 用者自取
链接:opencv-4.1.0
提取码:cdn0
链接:opencv_contrib-4.1.0
提取码:qo9h
下载完成后解压及改名
# Unzip
unzip opencv.zip
unzip opencv_contrib.zip
# Rename
mv opencv-4.1.0 opencv
mv opencv_contrib-4.1.0 opencv_contrib
进入虚拟环境
source ~/env/bin/activate
下载Numpy(具体命令推荐跳到下面tensorflow安装中找)
创建工作文件夹(如果还在刚才的projects/cv2中就直接cd opencv 就行)
cd projects/cv2/opencv
接着
mkdir build
cd build
cmake
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/projects/cv2/opencv_contrib/modules \
-D PYTHON_EXECUTABLE=~/env/bin/python \
-D BUILD_EXAMPLES=ON ..
上传一些可能缺少的文件(原则上可以先make -j8 make -j1 然后看缺什么再传)
下载链接: https://files.cnblogs.com/files/ikic/boostdesc_bgm.i,vgg_generated_48.i%E7%AD%89.rar
通过xftp4上传到: opencv_contrib/modules/xfeatures2d/src/
上传方式见链接: 怎样快速使用Xftp上传下载文件
靠谱点,咱还是make -j8
make -j1
吧,虽然慢,但是胜在稳的一批…
过程中可能会出现报错: fatal error: features2d/test/test_detectors_regression.impl.hpp: 没有那个文件或目录
解决方法:
将 opencv/modules/features2d/test/
下的文件
test_descriptors_invariance.impl.hpp
test_descriptors_regression.impl.hpp
test_detectors_invariance.impl.hpp
test_detectors_regression.impl.hpp
test_invariance_utils.hpp
copy到opencv_contrib/modules/xfeatures2d/test/
下
并将opencv_contrib/modules/xfeatures2d/test/test_features2d.cpp
文件中的
#include "features2d/test/test_detectors_regression.impl.hpp"
#include "features2d/test/test_descriptors_regression.impl.hpp"
改为
#include "test_detectors_regression.impl.hpp"
#include "test_descriptors_regression.impl.hpp"
将opencv_contrib/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp
中的
#include "features2d/test/test_detectors_invariance.impl.hpp"
#include "features2d/test/test_descriptors_invariance.impl.hpp"
改为
#include "test_detectors_invariance.impl.hpp"
#include "test_descriptors_invariance.impl.hpp"
修改后继续make -j1
(然后以此类推,哪里报错就修改那里的文件的头include,哪个文件缺失就从opencv那移过来)
完成后
sudo make install
sudo ldconfig
再将构建的OpenCV库链接到虚拟环境virtualenv
# Go to the folder where OpenCV's native library is built
cd /usr/local/lib/python3.6/site-packages/cv2/python-3.6
ls
# Rename(xxx是可替代的,看ls之后的结果来进行下一步修改)
mv cv2.cpython-36m-xxx-linux-gnu.so cv2.so
# Go to your virtual environments site-packages folder
cd ~/env/lib/python3.6/site-packages/
# Symlink the native library
ln -s /usr/local/lib/python3.6/site-packages/cv2/python-3.6/cv2.so cv2.so
这样就完成了
参考:
https://www.cnblogs.com/ikic/p/12601450.html
https://blog.csdn.net/qq_41664447/article/details/100204518
https://www.cnblogs.com/findumars/p/8244997.html
https://www.jianshu.com/p/c943d6c1daa6
https://blog.csdn.net/u012939880/article/details/105864932
安装tensorflow-gpu
pip下载及更新
sudo apt install install -y python3-pip
python3 -m pip install --upgrade pip -i https://pypi.douban.com/simple
接着安装一些库及依赖
(numpy scipy pandas matplotlib sklearn)
sudo apt install python3-numpy python3-scipy python3-pandas python3-matplotlib python3-sklearn libhdf5-serial-dev hdf5-tools
安装tensorflow-gpu并加入环境变量
sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow==1.15.2+nv20.6
PS: 如果下载超时问题很严重可以加timeout
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=10000 库名
或者可以直接从网站上下载.whl文件再
pip3 install *.whl
网站链接:
https://developer.nvidia.com/embedded/downloads#?search=tensorflow
趁着月初不限速(莫得wifi…)博主下了一个, 链接如下:
tensorflow-1.15.2+nv20.6-cp36-cp36m-linux_aarch64.whl
(没c币的可以直接在楼下留言邮箱, 楼主发网盘链接)
另外就是博主下载完whl文件,再用pip3 install tensorflow-1.15.2+nv20.6-cp36-cp36m-linux_aarch64.whl
时系统会去安装一堆依赖(好多包都需要对应版本,比如numpy…还得重新下一下,属实无语.)…如果没有更换pip源的话经常会因为Read timed out导致下载失败…故而建议换成国内源进行下载
-i https://pypi.tuna.tsinghua.edu.cn/simple
参考: https://blog.csdn.net/qq_36663518/article/details/107460605
这里博主建议用第一个清华源(原因同上, 且这个也是博主用的源)
总之就是哪个依赖下载超时了就换国内源下载, 没有对应版本的就下载对应版本
done…
泪流满面啊(另外强烈建议用个好点的网…)…
import后也可以通过
hello = tf.constant('hello tensorflow')
sess = tf.Session()
来查看tensorflow-gpu是否安装成功
DONE…
如果要install keras的话
pip install keras==2.3.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
即可