[[Jetson TK1]]
|SoC|Tegra X1|
|CPU|Cortex A57 4 core|
|GPU|Maxwell 256 Core|
|Memory|4GB LPDDR4|
|Storage|16GB eMMC|
[[Arm]][[:Arm Cortex A57]]
*スペック [#laa356ca]
-CPU:Cortex-A57 (1.7GHz ¬e{forum-jetson-tx1-max-performance:[[Maximize TX1 performance - NVIDIA Developer Forums>https://devtalk.nvidia.com/default/topic/952478/jetson-tx1/maximize-tx1-performance/]], 2016-07-26投稿, 2016-10-27閲覧};)
-cpuinfo
$ cat /proc/cpuinfo
processor : 0
BogoMIPS : 38.40
Features : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x1
CPU part : 0xd07
CPU revision : 1
processor : 1
BogoMIPS : 38.40
Features : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x1
CPU part : 0xd07
CPU revision : 1
processor : 2
BogoMIPS : 38.40
Features : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x1
CPU part : 0xd07
CPU revision : 1
processor : 3
BogoMIPS : 38.40
Features : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x1
CPU part : 0xd07
CPU revision : 1
Hardware : jetson_tx1
Revision : 0000
Serial : 088403e800000000
-lscpu
$ lscpu
Architecture: aarch64
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 4
CPU max MHz: 1734.0000
CPU min MHz: 102.0000
Hypervisor vendor: (null)
Virtualization type: full
-cpufreq
$ cat /sys/bus/cpu/devices/cpu?/cpufreq/cpuinfo_max_freq
1734000
1734000
1734000
1734000
-kernel
$ uname -a
Linux tegra-ubuntu 3.10.96-tegra #1 SMP PREEMPT Wed Sep 28 17:51:08 PDT 2016 aarch64 aarch64 aarch64 GNU/Linux
-OS
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
-auxv
$ xxd -e -g8 /proc/self/auxv
00000000: 0000000000000021 0000007f9f81e000 !...............
00000010: 0000000000000010 00000000000000fb ................
00000020: 0000000000000006 0000000000001000 ................
00000030: 0000000000000011 0000000000000064 ........d.......
00000040: 0000000000000003 0000005563162040 ........@ .cU...
00000050: 0000000000000004 0000000000000038 ........8.......
00000060: 0000000000000005 0000000000000008 ................
00000070: 0000000000000007 0000007f9f7f4000 .........@......
00000080: 0000000000000008 0000000000000000 ................
00000090: 0000000000000009 00000055631643d8 .........C.cU...
000000a0: 000000000000000b 00000000000003e8 ................
000000b0: 000000000000000c 00000000000003e8 ................
000000c0: 000000000000000d 00000000000003e8 ................
000000d0: 000000000000000e 00000000000003e8 ................
000000e0: 0000000000000017 0000000000000000 ................
000000f0: 0000000000000019 0000007fcdb1c368 ........h.......
00000100: 000000000000001f 0000007fcdb1cfeb ................
00000110: 000000000000000f 0000007fcdb1c378 ........x.......
00000120: 0000000000000000 0000000000000000 ................
-deviceQuery
$ ./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "NVIDIA Tegra X1"
CUDA Driver Version / Runtime Version 8.0 / 8.0
CUDA Capability Major/Minor version number: 5.3
Total amount of global memory: 3994 MBytes (4188004352 bytes)
( 2) Multiprocessors, (128) CUDA Cores/MP: 256 CUDA Cores
GPU Max Clock rate: 72 MHz (0.07 GHz)
Memory Clock rate: 13 Mhz
Memory Bus Width: 64-bit
L2 Cache Size: 262144 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 32768
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 1 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: Yes
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 0 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = NVIDIA Tegra X1
Result = PASS
-gcc
$ gcc --version
gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-nvcc
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Fri_Jul_15_14:52:12_CDT_2016
Cuda compilation tools, release 8.0, V8.0.33
-ccache
--nvccに対応したバージョン3.6をパッケージでインストールする¬e{ccache-3-6-deb-package-page:[[3.6-1 : ccache : arm64 : Disco (19.04) : Ubuntu>https://launchpad.net/ubuntu/disco/arm64/ccache/3.6-1]], Version 3.6, 2019-07-28閲覧};
$ sudo dpkg -i ccache_3.6-1_arm64.deb
Selecting previously unselected package ccache.
(Reading database ... 132215 files and directories currently installed.)
Preparing to unpack ccache_3.6-1_arm64.deb ...
Unpacking ccache (3.6-1) ...
Setting up ccache (3.6-1) ...
Updating symlinks in /usr/lib/ccache ...
Processing triggers for doc-base (0.10.7) ...
Processing 1 added doc-base file...
Processing triggers for man-db (2.7.5-1) ...
$ ccache -V
ccache version 3.6
Copyright (C) 2002-2007 Andrew Tridgell
Copyright (C) 2009-2019 Joel Rosdahl
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 3 of the License, or (at your option) any later
version.
-cmake
--nvcc+ccacheに対応した3.10以降をインストールする。パッケージが存在しないのでソースコードからビルドする
$ cmake --version
cmake version 3.15.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
--ただし、libcurlを入れておかないと、https通信ができずOpenCVのビルドで諸所の問題が発生する
$ sudo apt install libcurl4-gnutls-dev
$ time ./bootstrap --system-curl && time make -j 4 && time sudo make install
-UART Debug console
--[[3.3V 115200 8N1>https://elinux.org/Jetson/TX1_Serial_Console]]¬e{jetson-tx1-serial-console:[[Jetson/TX1 Serial Console - eLinux.org>https://elinux.org/Jetson/TX1_Serial_Console]], 2019-07-08閲覧};
*Jetpack のインストール [#d8fbca50]
-[[JetPack for L4T | NVIDIA Developer>https://developer.nvidia.com/embedded/jetpack]]¬e{jetpack-download-official:[[JetPack for L4T | NVIDIA Developer>https://developer.nvidia.com/embedded/jetpack]], Jetpack 2.3, 2016-10-25閲覧}; からダウンロード
-2016年10月26日時点での最新版はJetpack 2.3
--CUDA 8.0 の正式リリース版が含まれる
-インストールには実機のLinux(Ubuntu)が必要
-[[JETSON TX1が来てやったこと(1日目) - Qiita>http://qiita.com/threecups/items/d0be58e133ca44f230c4]]¬e{jetson-tx1-day1-qiita:[[JETSON TX1が来てやったこと(1日目) - Qiita>http://qiita.com/threecups/items/d0be58e133ca44f230c4]], 2016-06-07投稿. 2016-06-07更新, 2016-10-25閲覧}; , [[JetPack for L4Tセットアップ 成功編 | CB1300SFのある生活>http://cb1300sf.info/archives/1235]]¬e{jetpack-for-l4t-success:[[JetPack for L4Tセットアップ 成功編 | CB1300SFのある生活>http://cb1300sf.info/archives/1235]], 2016-04-21公開, 2016-10-25閲覧}; 辺りを参考
-気長に待つ
-途中、OpenCV4Tegraのインストールにこけた、とWarningが出た(何で?)
-どうぜOpenCVはビルドするので、無視して先にすすめる
-Network構成を言われるが、多分ここはUSBで直接繋いでいるから必要ないはず。適当に同じルータにぶら下がっていると説明しておいた。
-参考資料: [[NVIDIA JetPack for L4T Documentation>http://docs.nvidia.com/jetpack-l4t/2_1/index.html#developertools/mobile/jetpack/jetpack_l4t/2.1/jetpack_l4t_install.htm]]¬e{nvidia-jetpack-for-l4t-nvidia-official:[[NVIDIA JetPack for L4T Documentation>http://docs.nvidia.com/jetpack-l4t/2_1/index.html#developertools/mobile/jetpack/jetpack_l4t/2.1/jetpack_l4t_install.htm]], 2016-10-25閲覧};
*Jetson TX1でctrlとcapsを入れ替える [#h8865271]
-[[Ubuntu 16.04 LTS 64bit インストール後設定 - tatanaideyoの備忘録��>http://tatanaideyo.hatenablog.com/entry/2016/05/11/223447]]¬e{swap-ctrl-caps-ubuntu-1604:[[Ubuntu 16.04 LTS 64bit インストール後設定 - tatanaideyoの備忘録��>http://tatanaideyo.hatenablog.com/entry/2016/05/11/223447]], 2016-05-11公開, 2016-10-25閲覧};
-gnome-tweak-toolを使う
$ sudo apt-get -y install gnome-tweak-tool
$ gnome-tweak-tool &
-これで出てきた画面のうち Typing -> Ctrl key position -> Caps Lock as Ctrl を選択
*gccとnvcc (Jetpackインストール後) [#k2f93083]
-gccは5.4.0、Jetpackインストール前は4.8.4
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/5/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.2'
--with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs
--enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5
--enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new
--enable-gnu-unique-object --disable-libquadmath --enable-plugin --with-system-zlib
--disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-arm64/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-arm64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-arm64 --with-arch-directory=aarch64
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-multiarch --enable-fix-cortex-a53-843419
--disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu
--target=aarch64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.2)
-nvccはJetpackとともにインストールされる
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Fri_Jul_15_14:52:12_CDT_2016
Cuda compilation tools, release 8.0, V8.0.33
*SDカードを追加 [#uead8d04]
-OpenCVビルド用の容量が足りなかったので、SDカードを挿して、GUIからext4にフォーマット
-/media/以下のディレクトリを ~/opencvからシンボリックリンクを張って作業容量にした