Armadilloフォーラム

仮想環境を使用しない開発方法

pingtaro

2017年9月1日 10時28分

①vmware等の開発環境を使用せず、組込ソフト開発をする方法はありますか。
②ATDEを開発PCのOSとして、利用することはできますか。
③なぜATDEを仮想環境で動かす仕様になっているのでしょうか。

コメント

溝渕です。

> ①vmware等の開発環境を使用せず、組込ソフト開発をする方法はありますか。

クロスツールチェーン/ライブラリ等を用意し、作業用PCにインストールする
ことで開発できます。ただし、クロスツールチェーン/ライブラリのバージョ
ンがATDEにインストールされているものと異なる場合、期待通りの挙動をしな
い可能性もあります。

Armadillo-420で、Debian GNU/Linux のルートファイルシステムを構築し、ネ
イティブビルドを行う方法も考えられます。

> ②ATDEを開発PCのOSとして、利用することはできますか。

ATDEは、Debian GNU/Linuxにクロスツールチェーン/ライブラリのインストー
ルや各種設定を行ったVMware仮想イメージです。

開発PCにDebian GNU/LinuxをインストールしてカスタマイズすることでATDE相
当の機能となりますが、手順はサポートしていません。

> ③なぜATDEを仮想環境で動かす仕様になっているのでしょうか。

開発用PCの用意やツールのインストールなどといった開発環境を整える手間を
軽減することが主な目的です。

https://armadillo.atmark-techno.com/atde

以上です。

イットーソフトウェアの伊澤です。
質問の趣旨に合った回答かどうかは分かりませんが、蛇足ながら。

Armadillo-420の場合はGPIOの操作なども例えばC言語からAPIを叩くことなくコマンドでも可能です。
従って、スクリプト程度でよければセルフ開発も不可能ではありません。
# 実際、弊社で(デモ用ではありますが)セルフ開発したケースもあります。
但し、Armadilloの強みであるところのカーネルコンフィギュレーションを変更したり、
フラッシュイメージを変更したり、それなりの処理速度を活かそうとするならクロス開発は必須と考えます。
# 尚、Armadillo-420にはフルスペックのCコンパイラを存分に動かすだけのパフォーマンスはありません。

また、仮想環境で開発することは開発用PCを独自に用意するデメリットもなく、開発体制に柔軟性が得られます。
# プロジェクトごとに仮想環境のイメージを分けておけますし、他の拠点に移動も可能です。

ご参考までに。

> ①vmware等の開発環境を使用せず、組込ソフト開発をする方法はありますか。

例えば、どんなものを想定いていますか?

開発環境無しの場合は、すでに紹介されていますが簡単なことならできます。
仮想環境ではなくというのであれば、PC Linux でできます。

> ②ATDEを開発PCのOSとして、利用することはできますか。

ATDEはただの Debian なので、同じ環境を PC にインストールすれば可能です。
インストールされているパッケージの一覧は、 dpkg -l で取れますし、
http://download.atmark-techno.com/atde/ にもリストがあります。

VMware の ディスクイメージを HDD / SSD にコピーしても可能だと思います。
ハードウェア依存するカーネルや Xのドラーバーなどは、PC に合わせないと駄目ですけど。

> ③なぜATDEを仮想環境で動かす仕様になっているのでしょうか。

Linux カーネルのコンパイルは、他の OSではビルドするのが難しいのです。
しかし Linux以外の OS (Windows や MacOS) を常用している方が多いので
お客様の多くが使っている OS 上で動く仮想環境を提供しています。

また、Linux を常用していても複数の環境が欲しい人や、お客様からの
不具合報告のときに環境を揃えるのが楽という意味合いもあります。

なんてことを昔雑誌の記事に書いたな〜と思ったらありました↓
https://armadillo.atmark-techno.com/articles/sd-a500-embedded-course-ch2
の「開発環境の問題」です。

自分は、メインの開発環境はネイティブの Linux ですが、
複数の OS (Debian, Ubuntu, etc.) を 仮想環境やコンテナ環境で
持っています。開発案件一つに一つの環境を保存しておくと、
1年後でも動かないということなくて安心です。

ベースの OSが Linux ベースであれば、VMWare を使わず QEMU や
systemd-nspawn を使うこともできます。VMware のディスクイメージ (vmdk) を
QEMU のディスクイメージ (qcow2) に変換するには
https://armadillo.atmark-techno.com/howto/run-atde-vmdk-with-qemu
をごらんください。