Armadilloフォーラム

SDカードへのデータ保存

manamana

2025年7月25日 17時00分

==========
製品型番:
Debian/ABOSバージョン:Debian 5.10.237-1 / ABOS 5.10.236-2:at #3-Alpine
カーネルバージョン:5.10.237-1
3G/LTE モジュール情報 (Debianのみ):
その他:
==========

pythonでSDカードに対して定期的にデータを保存したいのですが
1. 自動マウント
G3Lの場合には/etc/fstabにマウント情報を記述していましたがA9Eでコンテナベースの場合、どのようにすればよろしいでしょうか
2. マウントしたSDカードに対して、コンテナ内のソフトから書き込み、読み出しは可能でしょうか

よろしくお願いいたします。

コンテナ

コメント

> アットマークテクノの下山です。
>
> どちらも可能です
> 以下のブログを参考に行ってみてください
> https://armadillo.atmark-techno.com/howto/autofs
>
> よろしくお願いします

下山様
回答ありがとうございます

ブログには2パターンあり、どちらも試してみたのですが、途中で躓いてます
「ABOS上でコマンド実行する」場合ではabos-ctrlコマンドがありませんでした。
「ABOSDEからAtmark Container Projectを使う」場合ですがメニューから[Atmark Container New Project]を選択して、
container_setup/alpine/Dockerfileの末尾に以下を追記するではフォルダのcontainer_setupが存在しませんでした。

開発用ホストPCがスタンドアロン環境であることの弊害でしょうか
よろしくお願いいたします。

at_shota.shimoyama

2025年7月28日 16時21分

> 「ABOS上でコマンド実行する」場合ではabos-ctrlコマンドがありませんでした。

abos-ctrlコマンドが無いのは変ですね…
以下のコマンドでABOSのバージョンを確認していただいてもいいでしょうか?

armadillo:~# cat /etc/atmark-release

> 「ABOSDEからAtmark Container Projectを使う」場合ですがメニューから[Atmark Container New Project]を選択して、
> container_setup/alpine/Dockerfileの末尾に以下を追記するではフォルダのcontainer_setupが存在しませんでした。

[Atmark Container New Project]を選択すると↓のリンクでインターネット上からファイルを取得するので、スタンドアロン環境であることが影響している可能性はあります
https://download.atmark-techno.com/armadillo-iot-g4/example/atmark-cont…

ファイルを添付しましたので、ATDE側でtar -zxvf atmark-container-latest.tar.gzで解凍した上で展開したフォルダをVSCodeから開くとcontainer_setupのディレクトリが見えるはずかと思います

よろしくお願いします

ファイル ファイルの説明
atmark-container-latest.tar.gz

> > 「ABOS上でコマンド実行する」場合ではabos-ctrlコマンドがありませんでした。
>
> abos-ctrlコマンドが無いのは変ですね…
> 以下のコマンドでABOSのバージョンを確認していただいてもいいでしょうか?
>

> armadillo:~# cat /etc/atmark-release
> 

>

ありがとうございます

バージョンは 3.21.3-at.9
でした。

よろしくお願いいたします。

at_shota.shimoyama

2025年7月28日 17時39分

ありがとうございます
では、以下のコマンドでabos-ctrlコマンドが存在するかご確認いただけますでしょうか?

armadillo:~# which abos-ctrl

> ありがとうございます
> では、以下のコマンドでabos-ctrlコマンドが存在するかご確認いただけますでしょうか?
>
>

> armadillo:~# which abos-ctrl
> 

which abos-ctrlコマンドで確認しましたが存在していませんでした。
スタンドアロン環境なのが影響していないでしょうか

度々ご迷惑おかけし申し訳ございません
よろしくお願いいたします。

at_shota.shimoyama

2025年7月30日 11時30分

何かの間違いでabos-ctrlを削除してしまったか、abos-ctrlコマンドがあるabos-baseパッケージを消してしまったのかもしれませんね

以下のコマンドで文字列にabosを含むインストール済みapkパッケージ一覧が出力されます(正常な場合の出力も載せています)
こちらの結果を添付いただけますでしょうか?

armadillo:~# apk info | grep abos
abos-base
abos-base-catatonit
abos-web
abos-web-openrc

もしその中にabos-baseが無ければ、以下のコマンドでインストールを試みてください

armadillo:~# apk update
armadillo:~# persist_file -a add abos-base

ちなみに、スタンドアロン環境はおそらく関係ないのではないかと思います

よろしくお願いします

> ちなみに、スタンドアロン環境はおそらく関係ないのではないかと思います
>
> よろしくお願いします

申し訳ございません、ATDEで確認しておりました。
ABOSで確認するとabos-ctrlは問題なく実行できました。
お手数おかけしました。

>
> 申し訳ございません、ATDEで確認しておりました。
> ABOSで確認するとabos-ctrlは問題なく実行できました。
> お手数おかけしました。

ブログでの例ではどちらもalpineを使用しておりますが、SDカードでのautofs機能を使う場合、
debianではなくalpine必須なのでしょうか

引き続きよろしくお願いいたします。

at_shota.shimoyama

2025年7月30日 15時38分

> ブログでの例ではどちらもalpineを使用しておりますが、SDカードでのautofs機能を使う場合、
> debianではなくalpine必須なのでしょうか

いいえ、必須ではありません

まず、アプリケーションコンテナの方についてはdebianでもalpineでもディストリビューションに制限はありません
そして、autofsコンテナの方についても試してはいませんがdebianでもautofsは使用できるはずです

ただ、alpineの方がコンテナイメージのサイズがかなり小さく(bullseye-slimが 80 MBなのに対してalpineが9 MB)、
わざわざdebianにする必要性がないためalpineを使用した例を載せています

アプリケーションコンテナ側からしても、autofsコンテナとのやり取りはディレクトリ上でのファイルの受け渡ししかないため、
autofsコンテナがdebianでもalpineでも何か差があるということはありません

別のフォーラムで最初は1つのコンテナ上で開発した方がいいということを述べた手前申し上げにくいのですが、
このautofsについては、大きなセキュリティリスクを避けるためにブログどおりautofsコンテナとして機能を分離しておくことを推奨いたします

よろしくお願いします

ご説明ありがとうございます。

「ABOSDEからAtmark Container Projectを使う」場合ですが確認すると、そもそもプロジェクトフォルダが
存在していませんでした。
再度、メニューから[Atmark Container New Project]を選択して
プロジェクトの作成でプロジェクト名を入力してenter実行すると以下のエラーが表示されます。

download error:FetchError: requests to https://download.atmark-techno.com/armadillo-iot-g4/example/python-app/… failed,reason:getaddrinfo
ENOTFOUND download.atmark-techno.com

なぜサンプルをダウンロードするのでしょうか(デフォルトの動作でしょうか?)
例えば、フォルダを自力で作成し、その下に以前ダウンロードしたpython-projectをコピーするとかで可能でしょうか?

よろしくお願いいたします。

>
> ご説明ありがとうございます。
>
> 「ABOSDEからAtmark Container Projectを使う」場合ですが確認すると、そもそもプロジェクトフォルダが
> 存在していませんでした。
> 再度、メニューから[Atmark Container New Project]を選択して
> プロジェクトの作成でプロジェクト名を入力してenter実行すると以下のエラーが表示されます。
>
> download error:FetchError: requests to https://download.atmark-techno.com/armadillo-iot-g4/example/python-app/… failed,reason:getaddrinfo
> ENOTFOUND download.atmark-techno.com
>
> なぜサンプルをダウンロードするのでしょうか(デフォルトの動作でしょうか?)
> 例えば、フォルダを自力で作成し、その下に以前ダウンロードしたpython-projectをコピーするとかで可能でしょうか?
>
> よろしくお願いいたします。
>

関係あるかわかりませんが、以前作成した動作確認済のpython-project(LED点灯のサンプル)を実行したところ以下のエラーとなってしまいました。
ssh:connect to host 192.168.223.100 port 22:No route to host
192.168.223.100はBASEOSのアドレスになります。

>
> 関係あるかわかりませんが、以前作成した動作確認済のpython-project(LED点灯のサンプル)を実行したところ以下のエラーとなってしまいました。
> ssh:connect to host 192.168.223.100 port 22:No route to host
> 192.168.223.100はBASEOSのアドレスになります。
>

連投失礼します。
さらに確認しましたところ、以下の状況となっています
1. 開発PCからBASEOSにはtelnet 接続できました。
2. ATDEからVS-codeでMONITORのSCANしましたがBASEOSは見つかりませんでした。
3. ATDEから192.168.223.100に対してpingアンサーありませんでした。

以上です

at_shota.shimoyama

2025年7月31日 10時24分

> 「ABOSDEからAtmark Container Projectを使う」場合ですが確認すると、そもそもプロジェクトフォルダが
> 存在していませんでした。
> 再度、メニューから[Atmark Container New Project]を選択して
> プロジェクトの作成でプロジェクト名を入力してenter実行すると以下のエラーが表示されます。
> download error:FetchError: requests to https://download.atmark-techno.com/armadillo-iot-g4/example/python-app/… failed,reason:getaddrinfo
> ENOTFOUND download.atmark-techno.com

これもPythonのプロジェクト同様、プロジェクトを作成する際に https://download.atmark-techno.com/armadillo-iot-g4/example/atmark-cont… というテンプレートを自動的にダウンロード&展開するようになっています(ABOSDE自体の中にはプロジェクトを作る元となるこのテンプレートが存在しません)
インターネットに接続していない状況ではダウンロードができないので、手動でテンプレートを配置する必要があります

2025年7月28日 16時21分に投稿したコメントにそのテンプレート(atmark-container-latest.tar.gz)を添付しておりますので、ATDE側でtar -zxvf atmark-container-latest.tar.gzで解凍した上で展開したフォルダをVSCodeから開いてください。

また、ATDE側からArmadilloと疎通できないということですが、ArmadilloとATDEにはそれぞれ固定IPアドレス(Armadilloは192.168.223.100)を割り当てており、Armadilloと開発PCはLANケーブルで直接接続しているという状況でお間違いないでしょうか?

>
> また、ATDE側からArmadilloと疎通できないということですが、ArmadilloとATDEにはそれぞれ固定IPアドレス(Armadilloは192.168.223.100)を割り当てて
>おり、Armadilloと開発PCはLANケーブルで直接接続しているという状況でお間違いないでしょうか?

LANケーブルで直接接続していまして固定IPアドレスを割り当てています。(ATDEは192.168.223.10)

回答ありがとうございます、ブログの続きですが
2-5.autofsコンテナの設定ファイルをABOS上に配置する設定で、container_setup/config/alpine.descファイルが存在してなく
一個上のディレクトリにありましたのでこれを編集しました。
2-6 autofsコンテナを配置するSWUイメージの作成ですが、「COMMAND PROJECT COMMAND」に
[Generate alpine container setup swu]メニューが存在していません。
Scanning Armadillo on the networkでABOSが見つからないのが原因でしょうか?
以前、作成したプロジェクト(ArmadilloにSWUイメージを配置できてます)でも同様にABOSが見つかりませんでした。

よろしくお願いいたします。

at_shota.shimoyama

2025年8月1日 13時38分

> LANケーブルで直接接続していまして固定IPアドレスを割り当てています。(ATDEは192.168.223.10)

「Scanning Armadillo on the network」はプロジェクトとは別の機能なので、どのプロジェクトであっても、ArmadilloにSWUイメージをインストールしたかどうかはArmadilloが表示されないことと関係はありません
ですので、プロジェクトというよりかはPC・ATDE・Armadilloのネットワークの問題になります

以前はPythonのプロジェクトでApp run on Armadilloがうまくできていたかと思いますが、いつからかMONITORのSCANにArmadilloが現れなくなったということでお間違いないでしょうか?
MONITORのSCANでArmadilloが表示されていたときと、開発PC・ATDE・Armadilloのネットワーク設定などを変えたりしていないでしょうか?

> 2-5.autofsコンテナの設定ファイルをABOS上に配置する設定で、container_setup/config/alpine.descファイルが存在してなく
> 一個上のディレクトリにありましたのでこれを編集しました。
> 2-6 autofsコンテナを配置するSWUイメージの作成ですが、「COMMAND PROJECT COMMAND」に
> [Generate alpine container setup swu]メニューが存在していません。
> Scanning Armadillo on the networkでABOSが見つからないのが原因でしょうか?
> 以前、作成したプロジェクト(ArmadilloにSWUイメージを配置できてます)でも同様にABOSが見つかりませんでした。

すみません、もっと早めに言うべきだったのですが、「ABOSDE から Atmark Container Project を使う場合の手順」よりも「ABOS 上でコマンド実行する場合の手順」の方を推奨いたします。
「ABOSDE から Atmark Container Project を使う場合の手順」の方ではRUN apk add --no-cache autofsのステップをDockerfileに追加していますが、このステップではインターネット上からautofsをダウンロードしていますので、スタンドアロン環境ではこのステップをDockerfileに追加することはできません。
ですので結局swuを生成してArmadilloにインストールしたとしても、pythonのときと同様、Armadilloの操作でコンテナ内に入ってautofsをインストール⇒コンテナイメージにするという手間が必要ですので、それであれば初めから「ABOS 上でコマンド実行する場合の手順」を実施した方が簡単だと思います。

その上でですが、
container_setup/config/alpine.descが存在していない
⇒ すみません、これは誤植です。おっしゃるとおりcontainer_setup/alpine.descが正しいです

・「COMMAND PROJECT COMMAND」に[Generate alpine container setup swu]メニューが存在していません。
⇒ 「COMMON PROJECT COMMAND」ではなく、その下の「OPEND PROJECT」の「atmark-container」のところに無いでしょうか?

>
> すみません、もっと早めに言うべきだったのですが、「ABOSDE から Atmark Container Project を使う場合の手順」よりも「ABOS 上でコマンド実行する場合の手順」の方を推奨いたします。
> 「ABOSDE から Atmark Container Project を使う場合の手順」の方ではRUN apk add --no-cache autofsのステップをDockerfileに追加していますが、このステップではインターネット上からautofsをダウンロードしていますので、スタンドアロン環境ではこのステップをDockerfileに追加することはできません。
> ですので結局swuを生成してArmadilloにインストールしたとしても、pythonのときと同様、Armadilloの操作でコンテナ内に入ってautofsをインストール⇒コンテナイメージにするという手間が必要ですので、それであれば初めから「ABOS 上でコマンド実行する場合の手順」を実施した方が簡単だと思います。
>
> その上でですが、
> ・container_setup/config/alpine.descが存在していない
> ⇒ すみません、これは誤植です。おっしゃるとおりcontainer_setup/alpine.descが正しいです
>
> ・「COMMAND PROJECT COMMAND」に[Generate alpine container setup swu]メニューが存在していません。
> ⇒ 「COMMON PROJECT COMMAND」ではなく、その下の「OPEND PROJECT」の「atmark-container」のところに無いでしょうか?
>

ABOS 上でコマンド実行する場合の手順でもやろうとしてたのですが、アプリケーションコンテナを作成する必要があり中断しておりました。

>
> ABOS 上でコマンド実行する場合の手順でもやろうとしてたのですが、アプリケーションコンテナを作成する必要があり中断しておりました。
>

申し訳ございません
何れにしてもアプリケーションコンテナを作成する必要がありますね
A9Eの使い方がまだまだ理解できていないのですが、
1個のプロジェクトにautofsコンテナとアプリケーションコンテナを収納することは可能でしょうか?

> ・「COMMAND PROJECT COMMAND」に[Generate alpine container setup swu]メニューが存在していません。
> ⇒ 「COMMON PROJECT COMMAND」ではなく、その下の「OPEND PROJECT」の「atmark-container」のところに無いでしょうか?

「OPEN PROJECT」にも ありませんでした
また、ATDEのネットワーク設定はブリッジになっておりました。

よろしくお願いいたします。

at_shota.shimoyama

2025年8月1日 17時27分

> 1個のプロジェクトにautofsコンテナとアプリケーションコンテナを収納することは可能でしょうか?
すみません、残念ながらそれは不可能です(ABOSDEが複数のコンテナイメージを扱うようにはなっていないので…)

ただ、1つのコンテナにアプリケーションとautofsを一緒にしてしまう(アプリケーションコンテナ内にautofsをインストール&autofsの設定ファイルを置く)という意味なのであれば可能です
しかし、(ブログにも記載しておりますが)この場合は USB メモリや SD カードにアクセスするために、メインのアプリケーションを実行するコンテナに SYS_ADMIN 権限を与えることになってしまうため、セキュリティリスクを伴うことは注意してください

> 「OPEN PROJECT」にも ありませんでした
VS Codeからディレクトリを選択する際、「atmark-container」を選択しているでしょうか?
その下の「container_setup」を選択してしまうと、ABOSDEがプロジェクトとして認識できません
正しく「atmark-container」を選択してディレクトリを開けている場合、添付画像のようにEXPLORERのところで「ATMARK-CONTAINER」がトップで表示されるはずですので、そうなっているかご確認ください

> また、ATDEのネットワーク設定はブリッジになっておりました。

すみません、原因がぱっと思いつかないので、まずはpingの疎通から確認いただけますでしょうか?

以下のコマンドでホストOS(おそらくWindowsでしょうか?)からArmadilloに対してpingを行った場合と、ATDEからArmadilloに対してpingを行った場合の2通り試してみて、pingが通るかどうかを確認してみてください

ping 192.168.223.100
ファイル ファイルの説明
explorer.png

以前送っていただいたファイルを展開するところからやり直したところ、メニューにenerate alpine container setupが表示されました。
お手数おかけしました。
アドバイスいただいたように実行しましたがエラーとなりましたので、「ABOS 上でコマンド実行する場合の手順」を実施します。

・セキュリティリスクの件は了解しました。
・ホスト(Windows)からは疎通を確認できましたが、ATDEからは疎通しませんでした。

at_shota.shimoyama

2025年8月4日 10時07分

> ・ホスト(Windows)からは疎通を確認できましたが、ATDEからは疎通しませんでした。

・WindowsからATDE、ATDEからWindowsのpingの疎通はどうでしょうか?
(Windows側も固定IPアドレスを振っているかと思いますが、差し支えなければその値を教えていただけますでしょうか?)
・VirtualBoxのATDE9の設定で、有効にしているネットワークはアダプター1のみでしょうか?
 ・アダプター1の割り当ては「ブリッジアダプター」になっているかと思いますが、その下の「名前」に現れる一覧と、実際に設定している「名前」を教えてください

よろしくお願いします

使用しているATDEのクローンを作成しクローンにて確認しましたところ疎通し、イメージ転送も可能となりました。
原因不明ですが、操作に不慣れなため何かしら誤操作があったのかもわかりません

ご対応ありがとうございました。

>
> 使用しているATDEのクローンを作成しクローンにて確認しましたところ疎通し、イメージ転送も可能となりました。
> 原因不明ですが、操作に不慣れなため何かしら誤操作があったのかもわかりません
>
> ご対応ありがとうございました。
>

原因が判明しましたのでご連絡します
その後も不具合が再現したので調査したところ、イーサネットデバイスそのものの調子が悪いためでした。
無効にし有効にすると復旧しました。

お世話になっております。

ABOS上でコマンド実行する場合の手順ですが、
1-1から1-3まで実施し、1-4で「アプリケーションコンテナの設定変更」とあるのですが、このアプリケーションとは何を指してしるのでしょうか?
自前で用意する必要があるのでしたらサンプルを教えていただけたら助かります。

よろしくお願いいたします。

at_shota.shimoyama

2025年8月5日 10時05分

> 1-1から1-3まで実施し、1-4で「アプリケーションコンテナの設定変更」とあるのですが、このアプリケーションとは何を指してしるのでしょうか?

自動マウントを使用したいメインのアプリケーションを実行するコンテナを指しています
manamana様の状況では、Pythonプロジェクトのコンテナが該当するのではないかと思います

よろしくお願いします