Jetson Nano + Cinder
以前の記事にて Jetson Nano 環境でopenFrameworks環境をビルドしてみたのですが、久しぶりにCinderを使う機会があり、そういえばLinux対応ってどういう状況なんだろう?と思ってしらべたところ…
バージョン表記が古いことはさておき、公式にJetson TK1 の文字が。Jetson系統が記載されているので、これはもしや行けるのでは…?
早速、セットアップを試してみました。
コンパイラのインストール周りでつまずく
基本的にはTK1向けに記載された手順に沿って作業をすすめていく。
実行環境はopenFrameworksを試した環境のままだ。
しかし、apt-get で g++ が見つからない様子…
とりあえず、一度この時点でmakeしておけばよかった。と思ったのは後の祭りで、g++の代わりにclangのインストールをすすめることにしたが、色々とうまく行かない…
一度、他のSDカードでまっさらな状態から試してみることに
改めてビルド手順
もう一度、TK1向けの手順を元に作業をすすめる。
JetsonNano向けSD Imageもバージョンが上がっているようで、今回は
jetson-nano-sd-r32.2-2019-07-16.zip を利用しました。(書き込み方法は過去記事を参照)
パッと見でもgccのバージョン等上がっていると思いますので、最新版を使ったほうが作業しやすいかと思います。
g++のインストール
最初から入っていたのでスルーしてOK。
念の為バージョンを確認するには以下コマンドを実行。
$ g++ --version
g++ (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 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.
cmakeのインストール
TK1向け手順ではソースからビルドしていたが、aptのcmakeでもバージョンが条件(CMake 3.0+)をみたしていたので、サクッとaptでインストールする
$ sudo apt install cmake
依存ライブラリー郡のインストール
$ sudo apt-get install libxcursor-dev \
libxrandr-dev \
libxinerama-dev \
libxi-dev \
libgl1-mesa-dev \
libgles2-mesa-dev \
zlib1g-dev \
libfontconfig1-dev \
libsndfile1 \
libsndfile1-dev \
libpulse-dev \
libasound2-dev \
libcurl4-gnutls-dev \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
gstreamer1.0-libav \
gstreamer1.0-alsa \
gstreamer1.0-pulseaudio \
libboost-filesystem-dev
libmpgはソースからビルドする必要があるようです。
$ cd ~/
$ wget https://www.mpg123.de/download/mpg123-1.24.0.tar.bz2
$ tar xvf mpg123-1.24.0.tar.bz2
$ cd mpg123-1.24.0
$ ./configure --prefix=/opt/local
$ make -j 4
$ sudo make install
Cinder本体のビルド
cinderのgitリポジトリにはサブモジュールが含まれるので、--recursiveオプションをつけることを忘れないよう気をつけます。
$ cd ~/
$ git clone --recursive https://github.com/cinder/Cinder.git
$ cd Cinder
$ mkdir build && cd build
$ cmake ..
$ make -j 4
以上でCinderを使う準備が整いました。
ためしにサンプルプロジェクトをビルドしてみます。
$ cd samples/BasicApp/proj/cmake
$ mkdir build && cd build
$ cmake ..
$ make
コンパイルが正常終了したら実行してみます。
$ ./Debug/BasicApp/BasicApp
ただの黒い画面が表示されれば完了です。
他のサンプルもビルドしてみましたが実行できました。
以下はGeometryプロジェクトの実行画面。
これくらいの画像処理であれば、GPUアクセラレーションが効いているので、グリグリ動かしてもスムーズに動きます。
ただ、Geometryプロジェクトでは以下のようなエラーが出ていました。
Ignoring xlib error: error code 3 request code 2
これについては、後日検証します。
他にも、アドオンは対応してないものも多く、たとえばQuickTimeBasicプロジェクトなど(今どきQuickTimeというのも考えものですが…)は動きませんでした。
openFrameworks (以下oF)と比べると、oFがシェルスクリプトベースでコンパイル対応させているのに対し、Cinderはcmakeでコンパイル出来て、C++の標準的なコードに近いとおもいます。
今後、OpenCVなどを使ったテストを予定しているので、それも公開できるタイミングで記事にしてみたいと思います。
今までの関連記事
この記事が気に入ったらサポートをしてみませんか?