Armadilloフォーラム

Armadillo-IoT G2→G3への移行について

y.hiroishi

2021年8月18日 8時56分

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

件名の件、Armadillo-IoT G2の販売終了に伴って、Armadillo-IoT G3への移行を検討しております。
その際、開発環境等ソフトウェアが変わりますが、現在G2で使用しているプログラム等をそのまま移行することは可能でしょうか。
移行の際の注意点等あれば教えて頂きたいです。

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

コメント

at_koseki

2021年8月18日 12時39分

古関です。

まずはじめに、G2のルートファイルシステムはAtmark Dist(ucLinux-distベース)でしたが
G3ではDebianに変わっています。

G3でAtmark Distを動かすことも技術的に可能ですが、標準的にサポートしていません。

G2の環境で作成したプログラムをG3のDebianベース環境に移行させるうえで
以下に思いつくポイントを記載いたします。

----------------------------------
■ プログラムがC言語の場合は再ビルド
G2で使用しているプログラムがC言語でビルドしたバイナリであれば、
G3のビルド環境で再ビルドが必要になります。

G2のCPUはFPU非サポートでコンパイル環境がarmelですが、
G3はFPUサポートでコンパイル環境等諸々がarmhfであるためです。

G3をサポートしているATDEやPCでarm-linux-gnueabihf-gcc/g++を使ってビルドし直すか、
G3自身でネイティブコンパイルしなおしてください。

また、プログラムで使用しているライブラリによっては
バージョンの違いによって互換性が保てないかもしれません。
関数を変えたり、ライブラリ自体を別のものに置き換えないといけないかもしれません。

例えばATDE7側にarmhfパッケージがない時は
libssl-devなら以下のようにするとインストールできます。

# sudo apt-get update
# sudo apt-get install libssl-dev:armhf

まずは何とかビルドを通して、
動かしながら環境差分の部分を潰していくのが楽かもしれません。

■ プログラムがスクリプト系の場合の合わせ込み
プログラムがスクリプト系の言語であれば
shellならあまり変更しなくても運が良ければそのまま動くかもしれません。
rubyやperlを使っていれば同様に互換性で合わせこみが必要になるかもしれません。

■ デバイスファイル等のパスの合わせ込み
/dev/ttymxc*等のデバイスファイルパスが変わっている可能性があります。
プログラム内で直にアクセスしている場合、G3環境に合わせて変更が必要になります。

■ コマンド(パッケージ類の)合わせ込み
プログラム内でコマンドをcallしてれば、差分があるかもしれません。
例えば、ネットワーク設定系は、G2がifupdownでしたがG3の標準はNetworkManager(nmcli)に変わっています。

ただ、Atmark Distで提供されていたパッケージの大半は、
apt-get installでインストールできると思います。

■ アプリケーションの起動方法変更
G2はSysVinit(init.d)でしたが、G3ではsystemdに変わっています。
systemdのUnitファイルに書き換えるか、
systemdにsysvinit コンパチモードがあるようなので、そちらを使うのも良いかもしれません。

rc.localに起動アプリを記載していれば、G2と同様な手順で動くと思います。