Ubuntu16.04上使用Jetpack3.3对TX2进行刷机

本文主要分为三个部分

  1. Jetson TX2刷机流程
  2. Jetson TX2刷机后USB无法使用
  3. Jetson TX2上caffe安装配置
  4. Jetson TX2系统镜像与恢复

TX2刷机流程

刷机前准备

  1. 带有ubuntu16.04系统的电脑(用作主机)。主机的剩余空间应大于100G。
  2. 下载JetPack3.3
    下载地址:https://developer.nvidia.com/embedded/jetpack
    需要注册NVIDIA账号, 登陆下载。
  3. 如果下载文件出问题,可以考虑换源
    修改Ubuntu系统自带的软件源步骤如下:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  • 将Ubuntu原有的源替换为国内的源(清华,中科大,阿里云等多尝试)
sudo gedit /etc/apt/sources.list
  • 使更改生效
sudo apt-get update

JetPack3.3的安装

  1. 进入下载的JetPack包的文件夹,修改其权限
chmod +x ./JetPack-L4T-3.3-linux-x64_b39.run
  1. 安装JetPack3.3
./JetPack-L4T-3.3-linux-x64_b39.run

出现下图, 点击Next。


1.png
  1. 出现以下页面之后, 确定安装路径和下载路径,默认即可


    2.png
  2. Next, 选择Jetson TX2,Next。


    3.png
4.png
  1. 选择 “ full ”选项,然后继续点击 Next出现如下的页面


    5.png
  2. 全部选择接受,继续点击Next,出现如下的页面


    6.png
  3. 下载完毕,继续点击 Next出现如下的界面


    7.png
  4. 继续点击 Next 出现如下的界面


    8.png
  5. 选择上图所示, 此时用一根网线将TX2和主机连入同一个路由器,并在主机上ping一下看能否ping通
ifconfig #在TX2上查看TX2IP
ping TX2的IP # 在主机上ping
  1. 一直Next


    9.png

    10.png
  2. 此时,将TX2断电,并将TX2开发板的 microUSB 和主机相连,然后再将TX2上电开机,紧接着按下TX2的RECOVERY按键不松手,接着按下RESET按键并松手3秒后再松开RECOVERY按键。一定要按顺序来。
  3. 重开一个终端,输入命令:lsusb,看是否出现有 “NVIDIA Corp”,如出现则说明已成功进入Recovery模式。
  4. 当成功进入Recovery模式后, 我们便在如下的界面终端中按入 Enter 进行后面的操作


    11.png
  5. 在13操作执行完以后便开始进行刷机,这期间就是等待
    如果在等待的过程中遇到下面的坑,主机一直搜索TX2的IP地址,无法进行下去。但是此时你主机和TX2却是能相互ping通的。
    12.png

    解决方案参考TX2超详细,超实用刷机教程(亲测有效,所有步骤都是博主亲自实践过)
    先别选 2 选项,在TX2的系统上,我们进入 home 文件下发现有 “ report_ip_ to_host.sh ”,我们在终端用权限打开该文件,并在文件里面写上主机的 IP 地址。然后在TX2的终端执行如下的命令,主机端执行 Retry 即可解决上诉问题,接着执行剩余的刷机工作。
  6. 紧接着在执行过程中又会跳出如下的问题,显示不能在TX2上安装cuda,此时进入TX2根据提示用sudo apt-get install进行安装, 缺什么装什么, 安装好了之后多按几下Enter
sudo apt-get install cuda-toolkit-9-0 libgomp1 libfreeimage-dev libopenmpi-dev openmpi-bin
13.png
  1. 当出现以下界面说明已刷机成功


    14.png
  2. 关闭终端,不要移除已下载的文件,以后刷机直接用,点击 finish 完成退出。

Jetson TX2刷机后USB无法使用

参考Jetson TX2刷机后USB无法使用 解决方案
在非公版TX2刷机后可能出现无法使用USB的问题,这是由于官方的底板上采用INA3221芯片做了电源监控电路,只有确保5V电源达到要求的情况下才会使能USB口。而新做的板子上将上述电路省略了,所以导致了USB口无法使用。解决办法就是要给TX2更新设备树。

安装Jetpack3.3

下载链接

下载设备树文件并安装

将设备树下载并解压后放到

Jetpack3.3安装路径/64_TX2/Linux_for_Tegra/kernel/dtb/

确保新的设备树的名字是tegra186-quill-p3310-1000-c03-00-base.dtb或者tegra186-quill-p3310-1000-a00-00-base.dtb。

设备树烧写到TX2中

用USB线连接TX2上, 给TX2板上电,按电源键,之后按住REC键,同时按下RST键,放开RST键后过3秒再放REC键。则TX2进入Recovery模式。在终端中进入下面的路径

…/64_TX2/Linux_for_Tegra

在此路径下执行

sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk0p1

等一会出现successful后, USB口就可以正常工作。

Jetson TX2上caffe安装配置

安装caffe依赖

touch dependency.sh
gedit dependency.sh
./dependency.sh #需要先赋予读写权限

将以下内容复制到dependency.sh中

# general dependency
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
# BLAS dependency
sudo apt-get install libatlas-base-dev
# python dependency
sudo apt-get install python
sudo apt-get install python-dev
# python dependency etc.
sudo apt-get install python-numpy
sudo apt-get install ipython
sudo apt-get install ipython-notebook
sudo apt-get install python-sklearn
sudo apt-get install python-skimage
sudo apt-get install python-protobuf
# google dependency
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

从git上下载caffe源码

sudo apt-get install git
git clone https://github.com/BVLC/caffe.git

根据配置需要修改配置文件。

在开始编译之前,需要进入caffe目录修改’Makefile.config’和’Makefile’两个配置文件。

  1. 备份Makefile.config文件
sudo cp  Makefile.config Makefile.config.example
  1. 修改Makefile.config文件
1.使用CuDNN(取消USE_CUDNN := 1前的‘#’)
2.使用OpenCV v3(取消OPENCV_VERSION := 3前的‘#’)
3.由于使用的是CUDA9版本,按要求修改了代码(删除了CUDA_ARCH变量的前两行,具体可看配置文件里该变量的前几行)。
4.使用python接口(取消WITH_PYTHON_LAYER := 1变量前的’#’)
5.修改python路径如下:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
  1. 修改Makefile文件:
将:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
将:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_

编译源码

make -j4 #进入caffe安装目录
make pycaffe
sudo gedit ~/.bashrc
#添加
export PYTHONPATH=~/caffe/python:$PYTHONPATH
# 使环境变量生效
source ~/.bashrc

Jetson TX2 系统备份与恢复

参考tx2系统备份与恢复
Ubuntu16.04 主机进入已经刷过TX2的,安装Jetpack3.3的文件夹中

制作系统镜像(包含TX2上所有文件)

1. cd ~/64_TX2/Linux_for_Tegra
2. 用刷机原装NVIDIA USB线连上TX2,并进入recovery模式(通电[必须先拔电],一直按住recovery键,不要松开recovery键,再按一下reset键, 3秒后松开)
3. 终端下lsusb #查看是否出现Nvidia Corp
执行以下命令从TX2下载镜像
4. sudo ./flash.sh -r -k APP -G my_backup.img jetson-tx2 mmcblk0p1
大概要花30分钟左右完成镜像下载。
生成的备份文件my_backup.img 在~/64_TX2/Linux_for_Tegra/目录下
以下步骤非必须
5. 分配权限,并压缩保存:(这步可要可不要)
sudo chmod 744 my_backup.img  
tar -zcvf my_backup.img.zip my_backup.img  
6. 备份后也可以挂载到ubuntu下进行相应编辑,可以查看系统镜像文件有没有正确生成
sudo mount -o loop my_backup.img  /mnt/ 

系统镜像恢复

1. cd ~/64_TX2/Linux_for_Tegra #进入主机的JetPack安装目录下Linux_for_Tegra_64目录
2. sudo cp my_backup.img system.img #复制my_backup.img为system.img
3. cd ~/64_TX2/Linux_for_Tegra/bootloader
   cp system.img system_bak.img.bak
#进入主机的JetPack安装目录下bootloader目录,删除或者备份原来的system.img ,这里选择备份
4. mv ../system.img ./ #移动生成的新镜像文件到bootloader目录
5. 连上TX2,并进入recovery模式(通电[必须先拔电],一直按住recovery键3秒,不要松开recovery键,再按一下reset键)
6. lsusb    #检查是否出现0955:7140 Nvidia Corp
7. cd ../
# 退出到上一层目录,使用flash.sh开始烧录
# 此时在~/64_TX2/Linux_for_Tegra/目录下执行下述命令
sudo ./flash.sh -r  jetson-tx2 mmcblk0p1

等代完成即可。
镜像恢复以后, 重新进入恢复模式, 重新刷一下USB。

# 记得更新dtb文件
cd …/64_TX2/Linux_for_Tegra
sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk0p1

参考

TX2超详细,超实用刷机教程(亲测有效,所有步骤都是博主亲自实践过)
Jetson TX2 刷机教程(JetPack3.3版本)
tx2系统备份与恢复
Jetson TX2刷机后USB无法使用 解决方案
Jetson TX2学习笔记(二):caffe安装配置

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容