Armadilloフォーラム

Alpine Linuxルートファイルシステムビルドツール内のライブラリについて

jfurukawa

2024年3月4日 19時47分

Armadillo IoT G4で動作させる( Kinesis Video Streams プロデューサー SDK GStreamer プラグイン)のC++サンプルプログラムを
Alpine Linuxルートファイルシステムビルドツール(https://armadillo.atmark-techno.com/resources/software/armadillo-iot-g4…)を使用してビルドを行っておりますが作成したプログラムを実行するとsegmentation faultが発生する事象があります。

こちらの事象について、curlのバージョン違いによって引き起こされる可能性があるとのことで(https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cp…)
動作確認ができているATDEと同様の7.74.0を使用して、Armadillo上で動かすための環境を作れないでしょうか。

現在調査中のため、バージョン違いによる原因ではない可能性もございますが切り分けのためlibcurl 7.74を使っているツールがございましたらご提供いただければと考えております。

コメント

at_makoto.sato

2024年3月6日 9時29分

佐藤です。

> こちらの事象について、curlのバージョン違いによって引き起こされる可能性があるとのことで(https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cp…)
> 動作確認ができているATDEと同様の7.74.0を使用して、Armadillo上で動かすための環境を作れないでしょうか。

ATDE9と同じdebian(bullseye)のコンテナを作りその中でビルドしたものを、armadillo上のdebianコンテナ内で使用するのはどうでしょうか。
ATDE上で、以下の手順でdebianコンテナ内でビルドできます。

[ATDE]$ podman run -it --name=kinesis_build docker.io/arm64v8/debian:bullseye /bin/bash
root@900e5c8a4f87:/# cd
root@900e5c8a4f87:~# apt update && apt upgrade -y
root@900e5c8a4f87:~# apt install -y cmake m4 clang git libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools
root@900e5c8a4f87:~# git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
root@900e5c8a4f87:~# mkdir -p amazon-kinesis-video-streams-producer-sdk-cpp/build
root@900e5c8a4f87:~# cd amazon-kinesis-video-streams-producer-sdk-cpp/build
root@900e5c8a4f87:~# cmake .. -DBUILD_GSTREAMER_PLUGIN=ON -DCMAKE_INSTALL_PREFIX=./local
root@900e5c8a4f87:~# make
root@900e5c8a4f87:~# make install

ビルドが完了しましたら、以下のようにしてamazon-kinesis-video-streams-producer-sdk-cpp ディレクトリを丸ごとATDEの方にコピーできますので、
後はこれを、armadillo上のdebianコンテナにコピーすると良いかと思います。

[ATDE]$ podman cp kinesis_build:/root/amazon-kinesis-video-streams-producer-sdk-cpp .

jfurukawa

2024年3月8日 19時04分

> 佐藤です。
>
> > こちらの事象について、curlのバージョン違いによって引き起こされる可能性があるとのことで(https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cp…)
> > 動作確認ができているATDEと同様の7.74.0を使用して、Armadillo上で動かすための環境を作れないでしょうか。
>
> ATDE9と同じdebian(bullseye)のコンテナを作りその中でビルドしたものを、armadillo上のdebianコンテナ内で使用するのはどうでしょうか。
> ATDE上で、以下の手順でdebianコンテナ内でビルドできます。
>

> [ATDE]$ podman run -it --name=kinesis_build docker.io/arm64v8/debian:bullseye /bin/bash
> root@900e5c8a4f87:/# cd
> root@900e5c8a4f87:~# apt update && apt upgrade -y
> root@900e5c8a4f87:~# apt install -y cmake m4 clang git libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools
> root@900e5c8a4f87:~# git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
> root@900e5c8a4f87:~# mkdir -p amazon-kinesis-video-streams-producer-sdk-cpp/build
> root@900e5c8a4f87:~# cd amazon-kinesis-video-streams-producer-sdk-cpp/build
> root@900e5c8a4f87:~# cmake .. -DBUILD_GSTREAMER_PLUGIN=ON -DCMAKE_INSTALL_PREFIX=./local
> root@900e5c8a4f87:~# make
> root@900e5c8a4f87:~# make install
> 

> ビルドが完了しましたら、以下のようにしてamazon-kinesis-video-streams-producer-sdk-cpp ディレクトリを丸ごとATDEの方にコピーできますので、
> 後はこれを、armadillo上のdebianコンテナにコピーすると良いかと思います。
>

> [ATDE]$ podman cp kinesis_build:/root/amazon-kinesis-video-streams-producer-sdk-cpp .
> 

佐藤様
お世話になっております。ご返信が遅れまして申し訳ございません。
ご提案いただいたdebianイメージでビルド、debianコンテナ上での実行を試して問題が解消されたことを確認できました。

ご助言いただき大変ありがとうございました。