目的
NVIDIA Jetson NanoでIntel RealSenseをソースビルド(Native Backend)する。
RealSenseのSDK(librealsense)でNative
Backendを使うには、カーネルにパッチを当てたうえでソースビルドが必要。
しかし、librealsenseのJetson用のパッチはJetPack
4.3用のため、JetPack4.5ではパッチがエラーとなってしまう。
このため、パッチをJetPack 4.5に対応してビルドする。
注意事項
2021.2.21時点
- 公式のリポジトリ(librealsense)が対応した場合、この内容は古くなってしまうため、必ず最新情報を確認すること。
- パッチの内容について誤りがある可能性があること(公式の対応でないため)。
リファレンス
リポジトリ
librealsenseをforkしたリポジトリを用意した。
- ブランチはjetson_l4t-r32.5-4.9
- 変更はこのコミットを参照
手順
カーネルのパッチ適用&ビルド
JetPack 4.5を書き込んだJetson Nanoを用意する。
あとは公式の「Building from Source using Native Backend」と同じ手順で問題ない。
途中でCloneしたカーネルソースのtag
を求められるので「tegra-l4t-r32.5」を入力する。
$ sudo apt update $ sudo apt upgrade $ git clone -b jetson_l4t-r32.5-4.9 https://github.com/NobuoTsukamoto/librealsense.git $ cd librealsense $ ./scripts/patch-realsense-ubuntu-L4T.sh ~~~~~~~~~~ Create the sandbox - NVidia L4T source tree(s) Downloading default kernel/kernel-4.9 source... Cloning into '/home/jetson/librealsense/Tegra/sources/kernel/kernel-4.9'... remote: Enumerating objects: 5207472, done. remote: Counting objects: 100% (5207472/5207472), done. remote: Compressing objects: 100% (833434/833434), done. remote: Total 5207472 (delta 4367040), reused 5173766 (delta 4333423) Receiving objects: 100% (5207472/5207472), 943.55 MiB | 1.03 MiB/s, done. Resolving deltas: 100% (4367040/4367040), done. The default kernel/kernel-4.9 source is downloaded in: /home/jetson/librealsense/Tegra/sources/kernel/kernel-4.9 Please enter a tag to sync /home/jetson/librealsense/Tegra/sources/kernel/kernel-4.9 source to (enter nothing to skip):
ここで、「tegra-l4t-r32.5」入力してEner。あとはビルドが終わるのを待つ。
~~~~~~~~~~
Copying the patched modules to (~/)
~/librealsense
Move the modified modules into the modules tree
Insert the modified kernel modules
Replacing uvcvideo -
Applying the patched module ... succeeded
Replacing hid_sensor_accel_3d -
Applying the patched module ... succeeded
Replacing hid_sensor_gyro_3d -
Applying the patched module ... succeeded
Replacing hid_sensor_trigger -
Applying the patched module ... succeeded
Replacing hid_sensor_iio_common -
Module hid_sensor_iio_common is used by hid_sensor_trigger
Unloading dependency hid_sensor_trigger
Module is resident, unloading ... succeeded.
Applying the patched module ... succeeded Reloading dependent kernel module hid_sensor_trigger ... succeeded.
Script has completed. Please consult the installation guide for further instruction.
librealsenseのビルド
あとはlibrealsenseのビルドを行う。
念のため再起動してcloneしたlibrealsenseディレクトリに移動。
$ mkdir build && cd build
$ export PATH=${PATH}:/usr/local/cuda/bin
$ cmake \
-DBUILD_WITH_CUDA=ON \
-DBUILD_WITH_OPENMP=ON \
-DBUILD_PYTHON_BINDINGS=ON \
-DCMAKE_BUILD_TYPE=Release \
..
$ make -j$(($(nproc)-1))
$ sudo make install
Pythonラッパーを使う場合は、/usr/lib/python3/dist-packages/pyrealsense2/にパスを通しておく。
$ export PYTHONPATH=$PYTHONPATH:/usr/lib/python3/dist-packages/pyrealsense2/
確認
realsense-viewerを起動してFrame Metadataが正しそうなことを確認する。
Jetson Nano (JetPack 4.5)でRealSense v2.41.0ソースビルドできたー
— nb.o (@Nextremer_nb_o) February 14, 2021
カーネルビルドするとき、patchが結構マージされているのでつくりなおした...
CUDA有効でビルドしたけど、realsense-viewerで確認できるのか?3Dにすると、GPUの使用率が上がるからあってるのかな? pic.twitter.com/DRcjwEHwQM
できたー!
0 件のコメント:
コメントを投稿