EABI環境でkernelの再構築

まずARMなLinkstationではKernelがEABIという形式でコンパイルされていることを理解しましょう。
興味がある人は「debian EABI」で検索すれば少ないですが情報は取得出来ると思います。

LinkstationのkernelはこのEABIでコンパイルされているので
通常のapt-get install iptablesでiptablesをインストールしてもエラーが出て動きません。

サイトを検索するとkernelコンパイル時にEABIをOFFにしてOABIでコンパイルしている方が殆どのようです。
しかしこれは初心者には大変危険な方法なのです。
xfsでフォーマットしているファイルシステムは壊れてしまうことがあるのです!
(これもサイトを検索すれば色々と出てきます)
実際に一度OABIでコンパイルして動かしてみたら見事にファイルシステムが壊れました・・・
(おかげでこのサイトも数日止まってしまいました)

ではウンチクはこの辺で終わりにして実際にkernelのコンパイルを行います。
iptables有効なkernelのコンパイル方法を掲載したサイトはは沢山あるので要点だけ書きます。
まずはLS-GLのGPLなソースをバッファローからDLします。
GPL/LGPL Resource -BUFFALO INC.-
(DLするファイルはlinux-2.6.16_lsp.1.7.8.tar.gzです)
DLしたら適当な場所に解凍してmake menuconfigします。

設定画面が出たらrouting関連を全てチェックしnetfiter関連を全てのモジュールにしてから保存します。
(network filterはEnterキーで詳細項目の設定に移行します)
準備が出来たらmakeコマンドでコンパイルの開始です!
(事前にapt-get update と apt-get upgrade でGCCのバージョンを最新にしておいてください)
次にmake modulesコマンドでmodulesもコンパイルします。

コンパイルがうまく出来たらuImageとmodulesを組み込みます。
uImageはソースファイルの下の/arch/arm/bootの中にuImageで出来上がっています。
これを/bootにuImage.buffaloとしてコピーします。
modulesは INSTALL_MOD_PATH=/ make modules_installでinstallします。
終わったらdepmod -aでmodulesを反映させときます。

これでkernelのコンパイルとインストールは終了です。
再起動して動くか確認してみましょう。

コメントを残す

メールアドレスが公開されることはありません。