Debian/lenny では、玄箱PROのマイコンとの通信などに micro-evtd を利用しています。今回は micro-evtd の機能を試してみたので結果を紹介します。
■はじめに
Debian Lenny (armel アーキテクチャ)をインストールした状態では ALSA (Advanced Linux Sound Architecture, サウンド関連のデバイス・ドライバやユーティリティ) が期待通りに動作しません。これはカーネル(EABI)を、OABI との互換性を保つようにオプション(COMPAT_OABI)を指定すると起きることが知られています。
ところで、etch から lenny への移行で OABI のプログラムは必要なくなっているはずなので、問題のオプションを外したカーネルを作成してみました。
■etch から lenny に移行したい
前回は Lenny を新規インストールする方法を紹介しましたが、筆者を含め Etch から Lenny へ移行したいと思う方も多いのではないでしょうか。今回は移行の方法を紹介します。
■移行の前に考えること
Etch では ARM アーキテクチャは一つだけで OABI でした。Lenny からは OABI (arm) と EABI (armel) の二つがサポートされています。Debian で今後は EABI しかサポートしなくなる、パフォーマンスの面で EABI が有利と EABI に移行するのがよさそうです。
ところが、この二つは似ているようで、互換性が微妙にとりずらいという関係にあります*1。OABI のまま etch から lenny にするのはアップグレードなので問題は少ないのですが、EABIに移行するのはアップグレードというより、アーキテクチャの変更になります。そのため、上書きインストールして、バイナリやダイナミック・ライブラリを混在させるとインストール後に原因のわかりにくいトラブルが起きる可能性があります*2。
■二つの開発の方法
プログラムを実行するマシン(ターゲット)で開発することをセルフ開発と呼び、開発環境はセルフ開発環境と呼びます。開発用のマシンをターゲットのマシンとは別に用意する場合(とくにアーキテクチャが違うマシンの場合)には、クロス開発と呼び、開発環境をクロス開発環境と呼びます。それぞれで使用するコンパイラは、セルフ・コンパイラ、クロス・コンパイラと呼びます。
■メリットとデメリット
セルフ開発環境のメリットは、なんといってもコンパイルが終わったら、すぐに実行ができることです。またターゲットと開発マシンで同じ名前のヘッダがある場合などに混乱することもありません。クロス開発環境のメリットは、ターゲットが非力なときにも、開発には十分な能力のあるマシンを使うことができることです。