Armadilloフォーラム

Armadillo-810 gstreamerのクロスコンパイル及びバージョンアップについて

takahashi_ya_81

2020年6月23日 16時11分

いつもお世話になっております。
高橋と申します。

Armadillo-810にて、gstreamerのバージョンアップを検討しています。
ATDEでのクロスコンパイルの調査を行っていますが、エラーが発生していまして、
解決方法をご教示いただきたく投稿させていただきました。
経緯は以下の通りです。

■経緯
・H.264ストリームの動画データの取得をgstreamerから行おうとしたところ、エラーが発生した。
・試験的に、Debian環境にてセルフコンパイルを行い、gstreamerのバージョンを1.0.8から1.6.2にしたところ、動画データの取得を行うことができた。
・バージョンアップしたgstreamerをROMイメージに組み込むため、クロスコンパイルの調査を行っている。

下記URLに記載されていた通りの手順で、Debian環境でのセルフコンパイルでの動作確認はできました。
現状は、クロスコンパイルで組込んでの動作確認を行いたいと考えています。
バージョンは下記URLの最後の投稿で記載されている1.6.2にしたいと考えています。

https://armadillo.atmark-techno.com/comment/3805

上記URLのページと同様に手順を進め、gst-plugins-base-1.6.2のビルドを実行したところ、
同様のエラーが発生しています。
以下、実行の結果です。

■実行した./configure(※インストール先ディレクトリをgst1.6.4としています。)

./configure --prefix=/home/atmark/gst1.6.4/ --host=arm-linux-gnueabihf --disable-introspection 
CC=arm-linux-gnueabihf-gcc GST_CFLAGS=/home/atmark/gst1.6.4/include/gstreamer-1.0/ 
GST_LIBS=/home/atmark/gst1.6.4/lib GST_NET_CFLAGS=/home/atmark/gst1.6.4/include/gstreamer-1.0/ 
GST_NET_LIBS=/home/atmark/gst1.6.4/lib GST_BASE_CFLAGS=/home/atmark/gst1.6.4/include/gstreamer-1.0/ 
GST_BASE_LIBS=/home/atmark/gst1.6.4/lib GST_CONTROLLER_CFLAGS=/home/atmark/gst1.6.4/include/gstreamer-1.0/ 
GST_CONTROLLER_LIBS=/home/atmark/gst1.6.4/lib

■実行したmake
make --debug

■実行結果(一部省略しています。)

make[4]: ディレクトリ `/home/atmark/proj/gst-test-build/gstreamer-1.6.2/gst-plugins-base-1.6.2/gst-libs/gst/tag' に入ります
  CC       libgsttag_1.0_la-gstvorbistag.lo
gstvorbistag.c:39:30: fatal error: gst/gsttagsetter.h: No such file or directory
compilation terminated.
make[4]: *** [libgsttag_1.0_la-gstvorbistag.lo] エラー 1
make[4]: ディレクトリ `/home/atmark/proj/gst-test-build/gstreamer-1.6.2/gst-plugins-base-1.6.2/gst-libs/gst/tag' から出ます
make[3]: *** [tag] エラー 2
make[3]: ディレクトリ `/home/atmark/proj/gst-test-build/gstreamer-1.6.2/gst-plugins-base-1.6.2/gst-libs/gst' から出ます
make[2]: *** [all-recursive] エラー 1
make[2]: ディレクトリ `/home/atmark/proj/gst-test-build/gstreamer-1.6.2/gst-plugins-base-1.6.2/gst-libs' から出ます
make[1]: *** [all-recursive] エラー 1
make[1]: ディレクトリ `/home/atmark/proj/gst-test-build/gstreamer-1.6.2/gst-plugins-base-1.6.2' から出ます
make: *** [all] エラー 2

PKG_CONFIG_LIBDIR等の調査も行っておりますが、
現状、解決方法が分からず、投稿させていただいた次第です。

大変恐縮ですが、ATDEにてクロスコンパイルを行い、
ROMイメージに組込む方法について情報がございましたら、
ご教示いただけますと幸いです。

何卒、よろしくお願い致します。

コメント

at_makoto.sato

2020年6月23日 18時55分

佐藤です。

./configure する際に

GST_CFLAGS=/home/atmark/gst1.6.4/include/gstreamer-1.0/

といったように設定している箇所を

GST_CFLAGS=-I/home/atmark/gst1.6.4/include/gstreamer-1.0/

としてみるとどうでしょうか。

takahashi_ya_81

2020年6月24日 9時14分

佐藤様

いつもお世話になっております。
高橋です。

ご回答いただき、ありがとうございます。
お教えいただいた変更を実行しましたところ、以下のようなエラーメッセージが出力されました。
(※開発対象ファイルの整理のため、ビルド対象のソースコードの保存先を変更しています。パスが一部異なるのはこのためです。申し訳ありません。)

make[4]: ディレクトリ `/home/atmark/proj/gst-test-build/gst-plugins-base-1.6.2/gst-libs/gst/tag' に入ります
  CC       libgsttag_1.0_la-gstvorbistag.lo
In file included from /home/atmark/gst1.6.4/include/gstreamer-1.0/gst/gstbin.h:27:0,
                 from /home/atmark/gst1.6.4/include/gstreamer-1.0/gst/gst.h:35,
                 from /home/atmark/gst1.6.4/include/gstreamer-1.0/gst/gsttagsetter.h:25,
                 from gstvorbistag.c:39:
/home/atmark/gst1.6.4/include/gstreamer-1.0/gst/gstelement.h:55:27: fatal error: gst/gstconfig.h: No such file or directory
compilation terminated.
make[4]: *** [libgsttag_1.0_la-gstvorbistag.lo] エラー 1
make[4]: ディレクトリ `/home/atmark/proj/gst-test-build/gst-plugins-base-1.6.2/gst-libs/gst/tag' から出ます
make[3]: *** [tag] エラー 2
make[3]: ディレクトリ `/home/atmark/proj/gst-test-build/gst-plugins-base-1.6.2/gst-libs/gst' から出ます
make[2]: *** [all-recursive] エラー 1
make[2]: ディレクトリ `/home/atmark/proj/gst-test-build/gst-plugins-base-1.6.2/gst-libs' から出ます
make[1]: *** [all-recursive] エラー 1
make[1]: ディレクトリ `/home/atmark/proj/gst-test-build/gst-plugins-base-1.6.2' から出ます
make: *** [all] エラー 2

引き続き、調査を継続致します。
情報がございましたら、ご教示いただけますと幸いです。

恐縮ですが、何卒、よろしくお願い致します。

at_makoto.sato

2020年6月24日 9時32分

佐藤です。

/home/atmark/gst1.6.4/include/gstreamer-1.0/gst/gstelement.h:55:27: fatal error: gst/gstconfig.h: No such file or directory

gst/gstconfig.h は gst1.6.4/lib/gstreamer-1.0/include/
以下にあるようなので、以下のようにするとよいかもしれません。

GST_CFLAGS="-I/home/atmark/gst1.6.4/include/gstreamer-1.0/ -I/home/atmark/gst1.6.4/lib/gstreamer-1.0/include"

また、make時に V=1 を付けると、make中に実行されるコマンドのログが表示されるので、調査に役立つかと思います。

make V=1

takahashi_ya_81

2020年6月24日 17時21分

佐藤様

いつもお世話になっております。
高橋です。

ご回答いただき、ありがとうございます。
お教えいただいた変更を実行しましたところ、貼付しましたLog_1.txtにあるエラーメッセージが出力されました。

参照できないヘッダファイルがあるようでしたので、試験的に参照先をGST_CFLAGSに追記しましたが、
途中でエラーとなりました。(追加したのは、pangocairo.h、cairo.hです。)
表示された内容は貼付したLog_2.txtになります。

引き続き、pkg-configの設定等も含めて、調査を継続しております。
何かお気づきの点等ございましたら、お教えいただけますと、幸いです。

恐縮ですが、何卒、よろしくお願い致します。

ファイル ファイルの説明
Log_1.txt
Log_2.txt

at_makoto.sato

2020年6月24日 18時17分

佐藤です。

configureの際の GST_LIBS なども、

GST_LIBS=/home/atmark/gst1.6.4/lib

ではなく、

GST_LIBS="-L/home/atmark/gst1.6.4/lib -lgstcontroller-1.0" 

のようにするとよいかもしれません。

takahashi_ya_81

2020年6月25日 9時44分

佐藤様

いつもお世話になっております。
高橋です。

ご回答いただき、ありがとうございます。

お教えいただいた情報を参考にさせていただき、./configureのオプションを変更しまして、ビルドエラーは解消されました。
(ビルドエラー時に表示される参照エラー等を1つずつ確認し、解消されるように変更しました。)

使用しました./configureは以下の通りです。

./configure --prefix=/home/atmark/gst1.6.4/ --host=arm-linux-gnueabihf --disable-introspection CC=arm-linux-gnueabihf-gcc GST_CFLAGS="-I/home/atmark/gst1.6.4/include/gstreamer-1.0/ -I/home/atmark/gst1.6.4/lib/gstreamer-1.0/include -I/usr/arm-linux-gnueabihf/include/pango-1.0 -I/usr/arm-linux-gnueabihf/include/cairo" GST_LIBS="-L/home/atmark/gst1.6.4/lib -lgstcontroller-1.0 -lgstbase-1.0 -lgstcheck-1.0 -lgstnet-1.0 -lgstreamer-1.0 -L/usr/arm-linux-gnueabihf/lib -lX11 -lgobject-2.0 -lglib-2.0" GST_NET_CFLAGS="-I/home/atmark/gst1.6.4/include/gstreamer-1.0/ -I/home/atmark/gst1.6.4/lib/gstreamer-1.0/include -I/usr/arm-linux-gnueabihf/include/pango-1.0 -I/usr/arm-linux-gnueabihf/include/cairo" GST_NET_LIBS="-L/home/atmark/gst1.6.4/lib -lgstcontroller-1.0 -lgstbase-1.0 -lgstcheck-1.0 -lgstnet-1.0 -lgstreamer-1.0 -L/usr/arm-linux-gnueabihf/lib -lX11 -lgobject-2.0 -lglib-2.0" GST_BASE_CFLAGS="-I/home/atmark/gst1.6.4/include/gstreamer-1.0/ -I/home/atmark/gst1.6.4/lib/gstreamer-1.0/include -I/usr/arm-linux-gnueabihf/include/pango-1.0 -I/usr/arm-linux-gnueabihf/include/cairo" GST_BASE_LIBS="-L/home/atmark/gst1.6.4/lib -lgstcontroller-1.0 -lgstbase-1.0 -lgstcheck-1.0 -lgstnet-1.0 -lgstreamer-1.0 -L/usr/arm-linux-gnueabihf/lib -lX11 -lgobject-2.0 -lglib-2.0" GST_CONTROLLER_CFLAGS="-I/home/atmark/gst1.6.4/include/gstreamer-1.0/ -I/home/atmark/gst1.6.4/lib/gstreamer-1.0/include -I/usr/arm-linux-gnueabihf/include/pango-1.0 -I/usr/arm-linux-gnueabihf/include/cairo" GST_CONTROLLER_LIBS="-L/home/atmark/gst1.6.4/lib -lgstcontroller-1.0 -lgstbase-1.0 -lgstcheck-1.0 -lgstnet-1.0 -lgstreamer-1.0 -L/usr/arm-linux-gnueabihf/lib -lX11 -lgobject-2.0 -lglib-2.0"

引き続き、gstreamerの他のpluginのビルドの調査を行っております。

何卒、よろしくお願い致します。

takahashi_ya_81

2020年6月25日 11時47分

いつもお世話になっております。
高橋です。

コンパイル時のエラーについて再度、投稿させていただきます。

gst-plugins-good-1.6.2のコンパイルにて、貼付しました20200625_Log_1.txtにある
エラーメッセージが出力されました。

実行しました操作は以下の通りです。
■実行した操作
・gst-plugins-base-1.6.2と同様にソースコードをダウンロード後、解凍を実行。
・貼付しました20200625_Configure.txtにある./configureを実行後、make V=1を実行。

大変、恐縮ですが、何か解決のための情報がございましたら、お教えいただけますと、幸いです。

何卒、よろしくお願い致します。

ファイル ファイルの説明
20200625_Log_1.txt
20200625_Configure.txt

at_makoto.sato

2020年6月25日 16時32分

佐藤です。

./configure の際に、以下を指定するとどうでしょうか。
GUDEV_LIBS="/usr/arm-linux-gnueabihf/lib/libgudev-1.0.so.0"

takahashi_ya_81

2020年6月25日 18時52分

佐藤様

いつもお世話になっております。
高橋です。

ご回答いただき、ありがとうございます。

お教えいただいた情報を参考にさせていただき、エラーは解消されました。
その後、別のエラーが出力されましたが、参照先を./configureのオプションに含める等して、最終的にビルドできました。

使用しました./configureは貼付しました20200625_Configure_2.txtの通りです。

引き続き、ユーザランドに含めての動作確認も含め、調査を継続致します。

何卒、よろしくお願い致します。

ファイル ファイルの説明
20200625_Configure_2.txt