私のケースにおけるEABIとOABI

 よくわからないがABIとはCPUチップであるARM独特のデータの形式を決める規格の事のようで、EABIとOABIとてはデータの形式が違うようである。ここに解説があるが私には理解できなかった。

 LS−GLはEABIのようであるが、Debianのインストール時はOABIのようである。

 このところEABIとOABIの違いに起因するトラブルが幾つか発生したので概要を以下に記す。

   
LS−GLにDebianをインストール時LS−Gl用のカーネルを使用したがコンパイル時にmake oldconfigとしたためかOABIでインストール
無線LANのドライバー組込み時チップにZD1211bを使ったWLI-U2-KG54Lとチップにrt73を使ったGW-US54Min2のドライバを組み込んだが問題なく稼働
iptablesに必要なモジュール組込みのためのカーネル再構築無線LANが動かなくなり再コンパイルするとZD1211bは動いたがrt73は動かず。動いたzd1211bも大量データ転送するとハングアップするなどの不具合が発生
カーネルの
Kernel Features  --->
[*] Use the ARM EABI to
 compile the kernel

を有効にして再構築 
約1.5時間を要する。
このEABI化したカーネルで無線LANのドライバーを再コンパイルすると、どちらのドライバーも正常動作する。
また、転送速度も早くなる。
 しかし、iptables がバージョンが違うといって不動作となる。
iptables-1.3.8.tar.bz2を貰ってきてMakefileの先頭行に
CC = gcc -mabi=aapcs-linux
を記入してコンパイル
# make  
# make install
iptablesが正常に動作する。
無線LANも異常無し。

 ということで、現在は順調に稼働している。しかし、組み込んでいるソフトの中にOABI対応のものがあるとこの問題が再発する可能性は潜んでいる。

 良く分らない出来事であった。しかし、この問題のおかげでLS−GLでかなりの事をやられているページを発見することが出来たのは幸いであった。試してみることが増えそうである。
Hiroaki’s blog 

ホームページトップ  LinkStationトップ