最近从老师那里搞到了一个Jason nano开发板,本来里面有一个系统,然而断电导致系统文件损坏,使得系统无法正常启动,无限重启,我从各个网站看到的教程都不太行,只能把sd卡拔下来,重刷一遍系统,把里面的深度学习环境配置一下,中间遇到了很多坑,写个blog记录一下~
烧写镜像系统
参考网站:玩转Jetson Nano(一)烧写系统
Jetson nano开发板是基于arm64架构,其源文件,镜像等文件与其他略有所不同,请大家注意!首先,需要烧写系统,需要的材料:
- 电源线
- SD卡,最低需要32G,但是越大越好,谁不喜欢大的呢?
- Jetson nano开发板
- 无线网卡或者网线,个人推荐使用无线网卡,方便使用,但是无线网卡一般开发板不带,需要自己安装。
- 鼠标、键盘
- HDMI线,显示器
安装系统大致需要上面那些东西,材料准备好就可以烧录系统了。
下载镜像文件
英伟达官方地址:https://developer.nvidia.com/embedded/dlc/jetson-nano-dev-kit-sd-card-image
这个包大小大概在6G大小,下载时需要耐心等待~
格式化SD卡
使用SD Card Formatter格式化SD卡,这个工具哪都有,百度一下下载一个,为方便使用,我把我下载的压缩包链接放上来吧
链接:https://pan.baidu.com/s/1SJWX9rpTmrZ4vrpDURtH0A 提取码:x9dk
傻瓜式操作,选择快速格式化,点击格式化即可
烧写镜像
Jetson nano推荐使用Etcher写入镜像,大概40分钟,但是具体时间还要看各自的CPU,静静等待镜像写入完毕即可,该软件的官方下载地址:https://www.balena.io/etcher/
我的云盘链接:https://pan.baidu.com/s/10pZZxllhLqPACCUErsl6ag 提取码:h4h2
选择镜像,烧写系统,等待~
启动Jetson nano开发板
将SD卡插入Jetson Nano,开机,完成一些设置,时区,语言,输入法什么的,就不截图了,看见下图,大功告成
这样开发板的基本环境就配置的差不多了,下面来介绍一下如何对系统进行配置
安装无线网卡
我推荐我购买的这款无线网卡,下面是我购买时的链接,封面有如何安装无线网卡的教程,安装好之后,开机有提示,无线网卡已安装,点击设置即可
查看无线网IP地址1
ifconfig
点击链接
设置中文页面
Jetson nano开发板自带中文环境(英文大佬可以忽略这一条),需要简单配置一下,这边有一个小坑,需要注意。打开设置,如图所示的按钮
点击语言支持,会出现如下界面,不用检查更新语言支持,取消就行了
在菜单和窗口的语言选项栏中,将汉语(中国)鼠标左键选中往上面拖,拖到第一个
reboot一下,即可完成中文界面的设置,比较简单
设置中文输入法
Jetson nano开发板并不带有中文输入法,需要自己安装。值得注意的一点是,Jetson Nano 是arm64结构,不是amd64结构,所以安装的软件需要适配arm64。我们比较常见的输入法有搜狗输入法、谷歌输入法,其中搜狗输入法不支持arm64架构,所以这里推荐使用谷歌输入法。
我们使用fcitx插件来支持中文输入法1
sudo apt-get install fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin-y
上述代码会将fcitx插件以及相关的中文输入法的包一并下载下来,安装完成后,点击在设置里面点击语言支持,选择fcitx选项,如图所示
这里面需要注意一点,由于fcitx的兼容性问题,可能会导致输入中文时不显示候选框,这时需要删除掉多余的插件!1
sudo apt remove fcitx-module-kimpanel
这一点非常重要,最后在终端输入reboot,重启一下。重启之后,桌面右上角会出现一个小键盘,点击这个小键盘就可以设置输入法了
默认设置为英文输入,按’ctrl’+空格即可切换输入法
更换镜像源
NVIDIA官方提供的Linux镜像版本为Ubuntu 18.04 LTS,镜像默认的是Ubuntu官方源,在国内使用该源下载程序速度较慢,所以需要更换。
首先,备份原来的源文件,这一点非常重要,备份之后不要随意更改备份项1
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
然后,打开源的配置文件1
gedit /etc/apt/sources.list
删除原来的文件,添加一下以下内容(我使用的是ubuntu18.04,如果不是这个版本,可以在下面官网中选择合适的镜像源)1
2
3
4
5
6
7
8
9
10
11
12
13# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse
清华大学镜像源官网:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu-ports/
更新完毕后,更新镜像源1
sudo apt-get update
如果需要的话,可以更新软件1
sudo apt-get upgrade
这里注意一点,我在实际进行操作时,更新镜像源时,报了几个错误,但是目前来说没有太大的影响,所以暂时忽略这一点。
安装python3.6
安装官方的镜像系统时,内部自带了python2.7的环境,我们需要对其进行升级,升级到3.6版本,注意Jetson nano开发版最多支持python3.6
输入命令1
2
3sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6
此时还不能使用python3.6版本,因为默认使用的是python2.7,需要调整优先级1
2sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
如图所示:
pip换源
换源的目的是为了下载python包时,速度有极大提升
修改/创建文件~/.pip/pip.conf
,内容如下:1
2
3[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
配置tensorflow环境
在安装系统镜像的时候,默认安装了cuda,可以使用1
nvcc -V
查看CUDA的版本号(如果失败,尝试使用root权限登录试试)
如图所示,我所用的就是cuda10.2版本
接下来就是需要安装对应的依赖关系1
sudo apt-get install python3-pip libhdf5-serial-dev hdf5-tools
接下来就是安装TensorFlow GPU版本1
pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu==1.13.1+nv19.3 --user
这个安装比较慢,中间我大概花了有一个小时的时间,所以慢慢等待就行了
设置远程连接
这里推荐使用XShell实现SHH远程连接
- 可以记录账号密码,连接后自动登录
- 可以为不同的主机设置个性化描述
- 可以同时打开一个主机的多个终端
- 可以同时打开不同主机的多个终端
功能基本都简单易懂,就不再啰嗦了,直接百度找一个安装包就行了,其大致界面如下:
设置远程文件传输
远程文件传输推荐使用WinSCP图形化SHH工具,可以用于后续将模型文件从自己的电脑传输到Nano,非常方便。
WinSCP下载地址:https://www.onlinedown.net/soft/20088.htm
安装完成后,直接输入上一步得到的Nano的IP、主机用户名、密码即可访问Nano的文件系统。
其使用界面如下:
设置远程桌面控制
远程桌面控制推荐使用VNC远程控制,VNC的条件为:远程的ubuntu机器已经登录进入桌面,且已经开启vino-server,则在远程使用vnc-viewer可直接连接。因此,要做两件事:
- 在Nano上安装vino-server
- 在Nano上启动vino-server
打开Nano终端,依次执行
1
2sudo apt update
sudo apt install vino设置VINO登录选项
1
2gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false将网卡加入VINO服务
执行,查看网卡UUID1
nmcli connection show
将UUID拷贝粘贴到如下命令的单引号[‘your UUID’]之间,并执行1
2dconf write /org/gnome/settings-daemon/plugins/sharing/vino-server/enabled-connections "['your UUID']"
export DISPLAY=:0在windows上安装VNC软件
在自己电脑的windows系统中安装VNC viewer
下载地址:https://www.realvnc.com/en/connect/download/viewer/
当然,其他地方应该也可以下到绿色版。在Nano上启动vino-server
Nano上执行1
/usr/lib/vino/vino-server
本指令执行后,终端不关闭,在windows系统打开VNC viewer软件执行如下操作登录Nano:
第一次连接会弹出警告信息,点击[continue],如果出现你的nano说明连接成功了添加开机启动vino-server
我们希望每次Nano上电开机后,自动启动vino-server,只需要将上述命令加入开启启动选项,这样就彻底接键盘显示器的麻烦了。下面快来设置吧!
在终端输入命令:打开Startup Applications应用,添加如下开机启动内容1
sudo gnome-session-properties
- 名称:StartVinoServer
- 指令:/usr/lib/vino/vino-server
重启Nano,无需再次设置,直接就可以连接远程桌面控制
实际测试,该种方法延迟较高,不是非常好用
安装vscode
安装命令如下:1
2wget --content-disposition https://packagecloud.io/headmelted/codebuilds/packages/debian/stretch/code-oss_1.45.0-1586135971_arm64.deb/download.deb
sudo dpkg -i code-oss_1.45.0-1586135971_arm64.deb
但是实际测试过程中,该种方法下载速度特别慢,因此我把我下载的包放在我的云盘上,需要自取
链接:https://pan.baidu.com/s/16-qsyBzOw2kvcgY3FTNkKQ 提取码:xwgo
利用文件传输winscp将该包传输到nano上,打开对应文件目录,执行1
sudo dpkg -i code-oss_1.45.0-1586135971_arm64.deb
或者,可以利用Ubuntu上面自带的文件浏览器,打开到文件所在的位置,点击鼠标右键安装
但是,安装完毕后,还是不能直接使用,因为我们需要指定vscode的工作目录,因此我在我的家目录创建了一个vscode文件夹1
mkdir /home/bobo/vscode
打开vscode,在终端输入1
2# open vscode
alias vscode='code-oss . --user-data-dir=/home/bobo/vscode'
此时,这么长的语句不好记住,因此我们可以创建一个别名,这里我用的是root权限创建的别名
在终端输入1
2# open vscode
gedit ~/.bashrc
将alias vscode='code-oss . --user-data-dir=/home/bobo/vscode'
添加到该文件的末尾,并保存退出。
重启,再次打开终端,注意的一点,因为我用的是root权限,所以需要用root权限使用该命令1
vscode
显示如下界面:
说明别名设置成功,大致环境配置的就差不多了,以后还有什么缺的再补充!