1
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Jetson Nano インストール中 (Yocto ver.)

Last updated at Posted at 2019-12-31

jetson nanoに、yoctoを導入するhow-toの記事がないので、書いてみました。

bitbakeするまで

sourceのダウンロード

この2つと、nvidia developperからbspをダウンロードします。
これがないと、bitbakeがエラーですすみません。

それぞれのフォルダにて、気になるバージョンに揃えること。たとえば、dunfellを利用するなら、dunfellに揃える。poky/meta-tegra/meta-armsそれぞれで実行。

$ git checkout -b dunfell origin/dunfell

TegraのBSPは、ここからダウンロード (R32.3.1) (ログインが必要かも)
https://developer.nvidia.com/l4t-3231-archive
もしくは、sdkmanagerを利用してダウンロード

環境設定

bblayer.conf

BBLAYERS ?= " \
  /home/ubuntu/xxx/yocto/poky/meta \
  /home/ubuntu/xxx/yocto/poky/meta-poky \
  /home/ubuntu/xxx/yocto/poky/meta-yocto-bsp \
  /home/ubuntu/xxx/yocto/poky/meta-arm/meta-arm-toolchain \
  /home/ubuntu/xxx/yocto/poky/meta-tegra \
  "

ここでは、poky指定のものに加えて、tegraとlinaroを追加しています。
linaroを追加したのは、ここの記事に基づいて、gcc7.xでビルドするためです。
https://github.com/madisongh/meta-tegra/wiki/Using-linaro-gcc7-for-CUDA-support

local.conf

最後に、以下を追記

MACHINE = "jetson-nano-devkit"
LICENSE_FLAGS_ACCEPTED = "commercial"
GCCVERSION = "7.%"
require contrib/conf/include/gcc-compat.conf
CUDA_VERSION = "10.0"
NVIDIA_DEVNET_MIRROR = "file:///home/ubuntu/xxx/nvidia/downloads"

CORE_IMAGE_EXTRA_INSTALL += " openssh "
PACKAGE_EXCLUDE += " packagegroup-core-ssh-dropbear " <-- core-image-satoにおいてdropbearとopensshとのconflictを回避するために必要

TEGRAFLASH_SDCARD_SIZE = "2G" 
IMAGE_OVERHEAD_FACTOR = "1.0"
IMAGE_CLASSES += " image_types_tegra "
IMAGE_FSTYPES = "tegraflash"

NVIDIA_DEVNET_MIRRORに、sdkmanagerを利用して、nvidiaからダウンロードした一式(debだらけ)があるフォルダを指定します。うちの環境は、nvidia/downloadsに落としたので、そこを指定しました。

解説

TEGRAFLASH_SDCARD_SIZE: デフォルトは、16Gです。大きくしたければ大きな数字、小さくしたければ、小さい数字を入れます。サイズが大きくなると、dd時間がかかるなど、弊害が出ます
IMAGE_ROOTFS_SIZE: 教科書には、ファイルサイズを司ると書かれていますが、TEGRAFLASH_SDCARD_SIZEが優先される模様。したがって、指定せず。
IMAGE_OVERHEAD_FACTOR: 空きスペースの指定。
MACHINE: meta-tegra/conf/machine 配下にある(machine名).confのmachine名を設定する。ここにあるファイル名と異なるとsanity checkでエラーではじかれる。

bitbake.conf

fmacro-prefix-mapがあると、ビルドが通らないので、削除。

poky/meta/conf/bitbake.conf
# GCC 7 doesn't support fmacro-prefix-map, results in "error: cannot compute suffix of object files: cannot compile"
# Change the value from bitbake.conf DEBUG_PREFIX_MAP to remove -fmacro-prefix-map
DEBUG_PREFIX_MAP = "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
                    -fdebug-prefix-map=${STAGING_DIR_HOST}= \
                    -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \

bitbake中

$ source poky/oe-init-build-env nano-build
$ bitbake core-image-minimal

教科書通り。sourceして、bitbakeです。

やり直しの手順

$ bitbake -c cleanall core-image-minimal
$ rm -Rf tmp/*
$ bitbake core-image-minimal

試してみよう!!

SD Cardへの展開

https://github.com/OE4T/meta-tegra/wiki/Flashing-the-Jetson-Dev-Kit
ここに本家のやり方がかかれています。そのままトレースします。

なお、tegraflash.tar.gzに一式詰め込まれているので、ビルドしたPCと書き込むPCは、別々でも大丈夫です。例えば、クラウドでビルドして、ローカルPCで焼く、ということが可能です。

必要ツールの展開

build dir -> tmp -> deploy -> images -> jetson-nano-devkit -> *-jetson-nano-devkit.tegraflash.tar.gz を解凍します。

$ mkdir ~/tegraflash
$ cd ~/tegraflash
$ tar -x -f $BUILDDIR/tmp/deploy/images/${MACHINE}/<image-type>-${MACHINE}.tegraflash.tar.gz

書き込みの実行

$ sudo ./dosdcard.sh /dev/<sdcard>

途中、以下のように聞かれるので、yes/noで答えましょう。

About to make an SDcard image on /dev/sdg. OK?

SD Cardへの展開 古い情報 (残しておきます)

いつものおまじないです。gzip形式が多い中、".sdcard"という拡張子のimageファイルです。細工せず、DDします。

$ sudo dd if=core-image-minimal-jetson-nano.sdcard of=/dev/sdx bs=4M conv=fsync status=progress

なお、デフォルトでは、17GBあるので、32Gのmicro SDカードが必要です。
上記の設定は、2Gにしたので、適当なサイズのSDカードでOKです。

起動

SD CardをJetson Nanoに装着し、起動。
ID: root, PW:なし

root@jetson-nano:~# cat /proc/version
Linux version 4.9.140-l4t-r32.2.1+g7467bde43b5d (oe-user@oe-host) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11) ) #1 SMP PREEMPT xxx Oct xx xx:xx:xx UTC 2019
root@jetson-nano:~# df
Filesystem     1K-blocks   Used Available Use% Mounted on
none             1782740      0   1782740   0% /dev
/dev/mmcblk0p1   1887056 166920   1601352  10% /
tmpfs            2025568    216   2025352   1% /run
tmpfs            2025568    156   2025412   1% /var/volatile

起動 part2

core-image-satoも作ったので、起動してみた。
なお、TEGRAFLASH_SDCARD_SIZE ?= "2G"では、起動せず。4Gにしても、92%の使用率でした。

起動画面
image.png

メニュー画面
image.png

おしまい

1
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?