[Armadillo:07810] Re: 開発環境とコンパイルエラーについて

Takenoshita Koyo email@hidden
2012年 1月 17日 (火) 18:34:03 JST


竹之下です。

(2012年01月17日 17:07), SAITOH akinori wrote:
> 齊藤と申します.
> お世話になります
> 
> 数年前に買ったarmadillo-220の開発環境にしてた
> 古いdebianマシが壊れたので環境を
> イチから作り直そうとしています.
> 
> 新しいdebian(2.6.32 32bit版)に新たにダウンロードしてきた
> atmark-distとlinuxカーネルを展開しました.
> クロス環境は新たにダウンロードしてきた物は
> 依存関係エラーが出てインストールできなかったので,
> CDROMの/cross-dev/deb/*deb を入れました.
> 
> それでmakeしてみると
> extensions/libipt_SECMARK.C:13:40: linux/netfilter/xt_SECMARK.h: No such
> file pr directory
> というエラーで止まりました.
> 
> 調べてみると,ダウンロードしてきたソースの中には
> xt_SECMARK.hは存在せず,
> 母艦であるdebian(i386)の/usr/include/linux/netfilter/xt_SECMARK.h
> は存在します.
ヘッダファイルが足りない、ということなので、クロスライブラリパッケージ
が足りないのかな、と推測します。

dpkg -S <ファイル名>コマンドで、そのファイルを含むパッケージ名を調べる
ことができます。

$ dpkg -S /usr/include/linux/netfilter/xt_SECMARK.h
linux-libc-dev: /usr/include/linux/netfilter/xt_SECMARK.h

linux-libc-devのクロス版はインストールされていますか?
dpkg -lコマンドで、インストール済みのパッケージを確認してみてください。

$ dpkg -l | grep libc-dev
ii  libc-dev-bin                           2.11.2-10                                 Embedded GNU C Library: Development binaries
ii  libc-dev-bin-armel-cross               2.11.2-10                                 Embedded GNU C Library: Development binaries (for cross-compiling)
ii  libc-dev-bin-powerpc-cross             2.11.2-10                                 Embedded GNU C Library: Development binaries (for cross-compiling)
ii  linux-libc-dev                         2.6.32-39squeeze1                         Linux support headers for userspace development
ii  linux-libc-dev-arm-cross               2.6.26-21                                 Linux support headers for userspace development (for cross-compiling)
ii  linux-libc-dev-armel-cross             2.6.32-30                                 Linux support headers for userspace development (for cross-compiling)
ii  linux-libc-dev-powerpc-cross           2.6.32-30                                 Linux support headers for userspace development (for cross-compiling)

linux-libc-dev-arm-crossがインストールされていれば、
/usr/arm-linux-gnu/include/linux/netfilter/xt_SECMARK.h
が存在するはずです。

> 
> 古いクロス開発環境(20061010バージョンのCDROMに入っていた物)と
> あたらしい atmark-dostやカーネルを組み合わせた
> のがわるかったか?と想像しますが,どう解決したらいいのやらわかり
> ません.
基本的には、新しいDebianには新しいtoolchainを使うのが良いと思います。

素のDebianに、ツールチェインをインストールするのであれば、
emdebianのツールチェインがお手軽です。(ATDEv4にインストールされている
ものも、ほぼemdebianのままです。)

/etc/apt/sources.list.d/emdebian.sources.listを下記のように作成し、

$ cat /etc/apt/sources.list.d/emdebian.sources.list
deb http://www.emdebian.org/debian/ squeeze main


$ apt-get update
$ apt-get install arm-linux-gnueabi-gcc

でツールチェインをインストールできます。

が、以前も書いたように、この方法だとArmadillo-200シリーズ用の
linux-2.6.12.3-a9がビルドできません。

Debian lennyであれば、ARM OABI用のツールチェインもインストールできますので、
そちらをインストールするのも、一つの手だと思います。

> 
> 
> 助言をいただけたら幸いです.
> 
> 




armadillo メーリングリストの案内