2010年8月3日火曜日

エンディアン,嘘つかない.

プロジェクト PSP 引退 の続き.

fon ルータで動く,シリアル⇔TCP/IP データ転送プログラムをさくっと書いて,動かしてみた.このときビルドした MIPS のクロスコンパイル環境が残っていたので,さくっとコンパイル.Fonera+ も WNDR-3300 も MIPS だから,これでコンパイルしたら動くはず.

で実行してみたら,
root@OpenWrt:~# ./seri_eth_fon
./seri_eth_fon: ./seri_eth_fon: 1: Syntax error: "(" unexpected
…なんか実行ファイル (バイナリ) がシェルスクリプトと解釈されてるんですが (汗
こういうときはたいていファイルが壊れているか,CPU アーキテクチャが間違ってるかのどちらか.

んーと思って,参考にした stone の Makefile ( Fonera+ 用のビルドコマンドが記述されている ) をよく眺めてみたら,CPU アーキテクチャが
Fonera: mips
WNDR-3300: mipsel
「節子! それ mips やない! mipsel や!」

…いや,mips と mipsel って何かちがうのん? と思ってクグッてみたら,なんとエンディアンの違いだそうな.( MIPS はビック・リトルどっちでも設定できるが,OS が起動した時点でどっちかに定められる? らしい )

あー,クロスコンパイル環境からビルドしないとだめなのね crz

0 件のコメント:

コメントを投稿