[Armadillo:07204] Re: Armadillo-440でnetfilterのnat機能等を組込みたいのですがエラーがでます。

Takenoshita Koyo email@hidden
2011年 5月 11日 (水) 15:56:50 JST


Masakazu Itoh さんは書きました:
> 竹之下様。
> 
> お世話になっております。伊藤です。
> ご回答ありがとうございます。
> 
> 現状、iptabelsを組み込めていません。
> 
> 状況や試したことを以下に記述しますので、
> 引き続きご教示よろしくお願いいたします。
> 
> 
> 教えていただきました、
>> http://git.netfilter.org/cgi-bin/gitweb.cgi?p=iptables.git;a=commitdiff;h=
>> 40d54756cd8a2705e22b36f7aef03bb2c472a10b
> を参照させていただき、対象になるファイル
> libip6t_state.c
> libipt_DNAT.c
> libipt_MASQUERADE.c
> libipt_NETMAP.c
> libipt_REDIRECT.c
> libipt_SAME.c
> libipt_SNAT.c
> libipt_connbytes.c
> libipt_connrate.c
> libipt_conntrack.c
> libipt_state.c
> のインクルードファイルのパスを変更して
> みましたが、nf_nat.hがないというコンパイルエラーがでました。
こちらの修正も行わないといけないようですね。
http://git.netfilter.org/cgi-bin/gitweb.cgi?p=iptables.git;a=commitdiff;h=978e27e8f8c2e49d0528c6c4ae3a56627fbe8492

> 
> Armadillo-440用のカーネル(linux-2.6.26-at14.tar.gz)を見ると
> nf_nat.hは
>> #include <linux/netfilter/nf_nat.h>
> ではなく
> #include <net/netfilter/nf_nat.h>
> に配置されているようです。
> とりあえず、#include <net/netfilter/nf_nat.h>
> と記述してビルドをしてみましたが、
> 例えば、一例ですが以下のようなエラーがatmark-distの/user/iptable以下を
> 修整するたびに発生します。
> from extensions/libipt_MASQUERADE.c:11:
> /home/atmark/work/dist-work-latest/linux-2.6.26-at14/include/net/
> netfilter/nf_conntrack_tuple.h:157: 
> error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before 
> ‘__nf_ct_tuple_src_equal’
これは、netfilter/nf_conntrack_tuple.h内の

static inline bool __nf_ct_tuple_src_equal(const struct nf_conntrack_tuple *t1,

という行で発生しています。原因は、boolが定義されていないためです。

諸々の問題を解決するためのパッチを作成しました。(添付ファイル)

Atmark-Dist用とlinuxカーネル用に分かれています。以下のように適用してください。

[ATDE ~/]$ cd atmark-dist
[ATDE ~/atmark-dist]$ patch -p1 < ../atmark-dist-20110326-fix-iptables-build-error.patch
[ATDE ~/atmark-dist]$ cd linux-2.6.x
[ATDE ~/atmark-dist/linux-2.6.x]$ patch -p1 < ../../linux-2.6.26-at14-fix-iptables-build-error.patch


> 
> 
> それでnetfilterのサイト
> http://www.netfilter.org/projects/iptables/downloads.html
> からiptablesをダウンロードして確かめたところ、iptables1.4.3以降が
> Armadillo-440用のカーネル(linux-2.6.26-at14.tar.gz)で記述されている
> インクルードパスと一致しているようです。
> 
> atmark-dist/user/iptablesを、このiptables1.4.3以降におきかえることが
> linuxカーネルとiptableのバージョンをあわせるには適正かと思い
こちらの対応が本筋なのでしょうが、とりあえず上記の方法でご確認いただけますか?

> 
> iptable1.4.10を解凍して、atmark-dist/user/iptablesに置き換えて
> ./configureを実行してみましたが、それだけでは、
> やはり、atmark-dist環境にあったMakefileは作成されませんでした。
> 
> 上記のようなかたちでiptablesを置き換える際の適切な手段、方法をご教示いた
> だければ
> 幸いです。
> 
> 以上、よろしくお願いいたします。

-- 
Koyo Takenoshita
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: atmark-dist-20110326-fix-iptables-build-error.patch
型:         text/x-patch
サイズ:     20931 バイト
説明:       無し
URL:        <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20110511/fbdc0fb6/attachment.bin>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: linux-2.6.26-at14-fix-iptables-build-error.patch
型:         text/x-patch
サイズ:     742 バイト
説明:       無し
URL:        <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20110511/fbdc0fb6/attachment-0001.bin>


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