ちなみ
VirtualBox + Mac は後述のflash.shが何回やっても成功しなかった
flash.sh の中身を見ていると、途中でUSBが切断するタイミングがあり、そのタイミングでロストする
https://qiita.com/notitle420/items/786e1293e6a776338c55
この記事の特徴
- docker 使っている
- chroot が失敗する問題対応
SDK Manager のdocker image をDL してload
公式:
https://docs.nvidia.com/sdk-manager/docker-containers/index.html
sudo docker load -i ./sdkmanager-1.4.1.7402_docker.tar.gz
sudo docker tag sdkmanager:1.4.1.7402 sdkmanager:latest
DLとインストール
docker に入る
sudo docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb/ --name JetPack_NX_Devkit --entrypoint /bin/bash sdkmanager
以下全部コンテナの中
chroot が失敗する
2021/03/21現在フルでインストールをすると
nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/nv_tegra/nv-apply-debs.sh
の
if [ "${#pre_deb_list[@]}" -ne 0 ]; then
LC_ALL=C PYTHONHASHSEED=0 chroot . dpkg -i --path-include="/usr/share/doc/*" "${pre_deb_list[@]}" # ここ
fi
で落ちる。原因は binfmtsの設定が無く aarch64のバイナリが動かせる設定になっていないため
mata strings mo nakute otiru
sudo apt update
sudo apt install vim binfmt-support binutils
sudo vim /usr/share/binfmts/qemu-aarch64
内容は下記の通り
package qemu-user-static
interpreter /usr/bin/qemu-aarch64-static
flags: OC
offset 0
magic \x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00
mask \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
binfmt-support.
sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc/
sudo update-binfmts --enable qemu-aarch64
これで有効化し
enableになったらOK
update-binfmts --display qemu-aarch64
qemu-aarch64 (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-aarch64-static
detector =
イメージ作成
sdkmanager --cli install --logintype devzone --product Jetson --target P2888-0001 --targetos Linux --version 4.5.1 --license accept --staylogin true --datacollection enable
To initiate login process open https://static-login.nvidia.com/service/default/pin?user_code=45610295 in a browser (can be done on a different machine) and login with your NVIDIA Developer account. SDK Manager will start once done.
Login user code: 45610295. (valid for: 10 minutes).
? SDK Manager is waiting for you to complete login.
1) Generate a new login user code
2) Cancel login
Answer:
- --version: インストールバージョン 2021/03/13 の最新は 4.5.1
- --target: Jetson の型番に合わせて変更 AGX Axevia は P2888-0001
- --exitonfinish 公式のマニュアルにはこちらがついているがエラー時も終了して使いづらいのでオプションを付けないほうが良い
Jetson SDK
Jetson SDK Component
両方チェックしてDLする
最後にInstall の確認が出るがNoを選択
Authenticating with NVIDIA server...
Login succeeded.
Loading user information...
User information loaded successfully.
Loading server data...
Server data loaded successfully.
Session initialized...
Installation of this software is under the terms and conditions of the license agreements located in /opt/nvidia/sdkmanager/Eula/
===== INSTALLATION COMPLETED SUCCESSFULLY. =====
- Drivers for Jetson: Installed
- File System and OS: Installed
- Device Mode Host Setup in Flash: Skipped
- Flash Jetson AGX Xavier 16GB/32GB: Skipped
- Device Mode Host Setup in Target SDK: Skipped
- DateTime Target Setup: Skipped
- CUDA Toolkit for L4T: Skipped
- cuDNN on Target: Skipped
- TensorRT on Target: Skipped
- OpenCV on Target: Skipped
- VisionWorks on Target: Skipped
- VPI on Target: Skipped
- NVIDIA Container Runtime with Docker integration (Beta): Skipped
- Multimedia API: Skipped
- NVIDIA Nsight Systems: Skipped
===== Installation completed successfully - Total 15 components =====
===== 2 succeeded, 0 failed, 0 up-to-date, 13 skipped =====
書き込み
cd nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/
sudo ./flash.sh jetson-xavier mmcblk0p1
リカバリーモードじゃなくて通常起動しているこんなエラーがでる
###############################################################################
# L4T BSP Information:
# R32 , REVISION: 5.1
###############################################################################
Error: probing the target board failed.
Make sure the target board is connected through
USB port and is in recovery mode.
書き込みはむちゃくちゃ時間がかかるので、放置中にスリープしないように注意する
Ubuntu のスリープ禁止は 設定→電源→自動サスペンド をオフにする