目的
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 件のコメント:
コメントを投稿