Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

目次


はじめに


ここではiPRO Camera SDKを利用してコンテナアプリを開発する環境を構築する手順を説明します。また、このチュートリアルではSDKのインストールディレクトリを${SDK_DIR}として記載します。

このチュートリアルはSDK ver.2.10以降のみ対応しています。SDK ver.2.10未満では利用できませんのでご注意ください。また、SDK ver.2.10以降のContainer AdamAppはSoCがambaCV5Xアプリのみ開発可能です。ご利用されるカメラのSoCについてはこちらを確認ください。

また、SoCがambaCV2Xのアプリを開発される場合はこちらから開発環境を構築ください。

開発で推奨する開発環境


サポート対象となる推奨環境は以下となります。

  • 開発用OS :Linux (64bit)

  • ディストリビューション :Ubuntu 20.04以降

開発環境構築手順


開発者ライセンスの取得

下記より開発者ライセンスを申請し、取得しておいてください。

お問い合わせ・SDKダウンロード - Development Partner Portal (i-pro.com)

Docker環境の準備

開発PCにDocker Engineをインストールします。出典:Docker Engine インストール(Ubuntu 向け) | Docker ドキュメント (matsuand.github.io)

Windows環境で開発したい場合、本ドキュメントでは推奨外となりますが、Docker Desktop for WIndowsやWSLを利用する方法があります。それらの方法をご利用になる場合はそれぞれのドキュメントをご参照ください。

ここでの手順は下記環境にて実施しています。

OS: Ubuntu 22.04.2 LTS (Jammy Jellyfish)

Docker Engineのバージョン: 23.0.1

プロキシ経由でインターネットに接続されている環境の場合、プロキシサーバーの設定を実施しておいてください。

 

Dockerをインストールする前に、古いバージョンのアンインストールを行います。

sudo apt-get remove docker docker-engine docker.io containerd runc

アンインストールしてよい環境かどうか、事前に確認してください。

 

Dockerをインストールできるようにするためのアプリをインストールします。

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release

 

Dockerの公式GPG鍵を追加します。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

ここでcurlの証明書エラーが出た場合、ca-certificatesが最新ではない、または正しくインストールできていない可能性があります。

sudo apt-get install --reinstall ca-certificates

でca-certificatesを再インストールして直るか、ご確認ください。

 

Dockerの安定版リポジトリをセットアップします。

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

Dockerエンジンをインストールします。

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

 

dockerコマンドはデフォルトではroot権限が必要なので、ユーザー権限でも実行できるように、dockerグループにユーザーを追加します。

sudo gpasswd -a $(whoami) docker

 

docker daemonの再起動 またはうまく行かない場合はPC再起動してください。

sudo systemctl restart docker

 

docker.sockにグループでの書き込み権限を付与します。

sudo chgrp docker /var/run/docker.sock

  

Dockerが使えるかどうかのテストを行います。

docker run --rm hello-world

 

以下のように表示されればインストール成功です。

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:ffb13da98453e0f04d33a6eee5bb8e46ee50d08ebe17735fc0779d0349e889e9
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

 

成功しなかった場合、下記で成功するか確認してください。

sudo docker run --rm hello-world

ここでPCを再起動します。(必ず再起動を実施してください。)

 Windows上にWSL + Docker Engineをインストールする場合、Visual Studio Codeで Remote Development 拡張機能パック をインストールする必要があります。詳細は WSL で VS Code の使用を開始する を参照してください。

qemuインストール

コンテナ版追加アプリを作成するために、開発環境にインストールする必要のある、qemuのインストール方法を記載します。

PCを再起動すると、build可能なアーキテクチャにlinux/arm64が表示されなくなる場合があります。その際は、再度同じ手順でqemuをインストールしてください。

 

qemuのインストール

sudo apt update
sudo apt-get install qemu binfmt-support qemu-user-static # Install the qemu packages
sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # This step will execute the registering scripts

 

docker buildxの準備

  • experimental 機能や BuildKit を使うため、環境変数を追加設定 & 反映 します。

  • 設定ファイルを開きます。

    vi ~/.bashrc
  • 以下を末尾に追加

    export DOCKER_CLI_EXPERIMENTAL=enabled
    export DOCKER_BUILDKIT=1

    保存します。

  • buildxが使えるようになっているか確認します。

    docker --help | grep buildx

    出力例

      buildx*     Docker Buildx (Docker Inc., v0.10.5)

     

  • 現在build可能なアーキテクチャを確認します。

    docker buildx ls

    出力例

    NAME/NODE DRIVER/ENDPOINT STATUS  BUILDKIT                              PLATFORMS
    default * docker
      default default         running v0.11.7-0.20230525183624-798ad6b0ce9f linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/amd64/v4, linux/386, linux/arm64, linux/riscv64, linux/ppc64, linux/ppc64le, linux/s390x, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6

    この出力の中に linux/arm64 があれば成功です。

開発環境構築のチェック

環境構築ができたかどうかのチェックを行います。 ※結果は一例ですので、環境によって異なります。

  • Docker Engineがインストール済みであること

    $ docker --version
    Docker version 23.0.1, build cb74dfc

    インストール出来ていない場合はDocker Engineをインストールしてください。

  • Dockerデーモンが起動中であること
    【systemdを使用している場合】

    $ systemctl status docker
    ● docker.service - Docker Application Container Engine
         Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
         Active: active (running) since Wed 2023-06-28 08:41:48 JST; 5h 6min ago
    TriggeredBy: ● docker.socket
           Docs: https://docs.docker.com
       Main PID: 1051 (dockerd)
          Tasks: 24
         Memory: 199.9M
            CPU: 5.471s
         CGroup: /system.slice/docker.service
                 └─1051 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    
         (以下略)

    Activeが inactive (dead) になっている場合は、systemctl start docker コマンドでサービスを起動してください。

    【SysVinitを使用している場合】

    $ sudo /etc/init.d/docker status
    * Docker is running

    not running と表示される場合は sudo /etc/init.d/docker start コマンドでサービスを起動してください。

  • docker buildxがインストールされていること

    $ docker --help | grep buildx
      buildx*     Docker Buildx (Docker Inc., v0.10.5)

    何も表示されていない場合は、 Docker Buildx に従って個別にインストールしてください。

  • qemuがインストールされ、Arm64ビットアプリがクロスビルド可能になっていること
    以下のリストの中に linux/arm64 があることを確認してください。

    $ docker buildx ls
    default * docker
      default default         running v0.11.7-0.20230525183624-798ad6b0ce9f linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/amd64/v4, linux/arm64, linux/riscv64, linux/ppc64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6

    linux/arm64 がない場合は、qemuをインストールしてください。

カメラファームウェアの更新

下記より最新のカメラファームウェアをダウンロードし、更新してください。

ダウンロード一覧 (i-pro.com)

Docker拡張モジュールのインストール

下記よりDocker拡張モジュールをダウンロードし、インストールしてください。旧バージョンがインストールされている場合はアップデートされます。

i-PRO Docker®拡張モジュール | i-PRO Products

下記の赤枠画面よりインストールしてください。緑枠のように表示されれば成功です。

20240830-153300.png

旧バージョンDocker拡張モジュールでクラウド対応をONにしている場合はOFFにする必要があります。

以下のURLでカメラ(IPアドレスが192.168.0.10の場合)にアクセスします。

http://192.168.0.10/admin/setup_ca_software.html

クラウド対応が「On」になっている場合は「Off」に変更して「設定」を押します。

20240510-172901.png

Azureログイン

★吉村さん確認、ID/passはどのように提供するか?★

SDK ver.2.01以前からSDK ver.2.10以降への開発環境移行手順


★以降手順記載する。★

ビルド手順


開発者ライセンスの利用

既に開発者ライセンス(development.key)を申請し取得していると思いますので、SDK/confフォルダに配置しておいてください。

サンプルアプリのビルド

ここでは例としてサンプルアプリをビルドする手順を実施します。

${SDK_DIR}に移動します。

cd ${SDK_DIR}

setup_env.shでContainerAdamApp専用のオプションを新たに追加します。

source setup_env.sh ambaCV5XCEX

その後、以下のシェルスクリプトでextファイルがビルドされます。

./ext_docker_build.sh [サンプルアプリのディレクトリ]

例えば、C版のskeleton_sample_appであれば下記のようにビルドします。(Python版も同様ですので省略します)

./ext_docker_build.sh src/adamapp/skeleton_sample_app

ビルドが成功すると、サンプルアプリのディレクトリ内に以下の二つのファイルが生成される。

  • [アプリ名]_[バージョン名].ext

  • [アプリ名]_[バージョン名].zip

アプリ名およびバージョン名はdocker_compose.yamlの上から一番最初に見つかった imageの値から取得しています。例えば image: “skeleton_sample_app:0.0.6” と記載してあれば、ファイル名はskeleton_sample_app_0.0.6.ext (zip)となります。

動作確認

カメラにインストールします(例:下記画像の緑枠からインストール可能)。作成した.extファイルを選択してインストールしてください。
アプリ画面を開きます(下記画像の赤枠ボタン)。

Image-20240830-155500.jpg

下記画像のような、文字列が表示されていれば成功です。

Image-20240830-155501.jpg

  • No labels