yaroespage::weblog

自作パソコンとその他もろもろの、ヨモヤマバナシです。

--.--.-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-)
FC2 managemented

 前回は「ということでクロス・コンパイルは次回」なんて風に終わりましたけど、案の定といいますか何といいますか「それじゃあクロス・コンパイルしてみましょう」というワケにはいきませんでした。

 前回に引き続きIT Memoさんとこの玄箱用のカーネルをクロス・コンパイルする(以下「参考元の記事」と略します)を参考に進めていきます。

 カーネルはThe Linux Kernel Archivesから、玄箱用のパッチはGenbako kernel collectionからダウンロードしてきます。

 参考元の記事はカーネル2.4ですが、私がやりたいのはカーネル2.6のコンパイルですから、カーネル2.6の最新版であるlinux-2.6.20.3.tar.bz2(忙しさにかまけて記事を更新していないうちにlinux-2.6.20.7.tar.bz2が最新版になってますね。あはは)をダウンロードします。

 Linuxには、他所様んトコのやり方をそのまま自分んトコでやるとなぜかうまくいかないのという醍醐味がありますから、常に応用するキモチを持つのが吉です。

 Genbako kernel collectionさんとこのパッチは2.6.20までしかありませんが、参考元の記事が2.6.20.3に2.4.33用のパッチを適用されていますから、私の場合も2.6.20.3に2.6.20用のパッチを適用できるでしょうと高を括ってmodules-2.6.20-kuroBOX.tgz(玄箱HGの場合はmodules-2.6.20-kuroHG.tgzなので注意)をダウンロードします。

 仮想Debian側のフォルダにコピーしたら、端末エミュレータでログインし、速攻でrootになって作業開始です。

$ su -
Password:
# cd /usr/local/src
# tar jxvf (保存したフォルダ)/linux-2.6.20.3.tar.bz2
(メッセージ省略)
# cd linux-2.6.20.3
# patch -p1 (保存したフォルダ)/kurobox-sources-2.4.33.patch
(メッセージ省略)

 元記事のMakefileの修正は必要ないようです。
 最初はマネしてやってみましたが、完成したカーネルのバージョンを表示させると「2.6.20.3-kurobox-kurobox」と表示されてしまいました(泣)。
 実は、今回、3回コンパイルのやり直しをしました。
 (本記事ではさらっと書いてますけ、そうなんですヨ)。
 クロス・コンパイルで正解でしたヨ。

 作業を続けます。

# export PATH=/usr/local/ppc-cross/bin:$PATH
              ↑クロス・コンパイル用のパスを通して
# cp config_kurobox .config
# make ARCH=ppc CROSS_COMPILE=ppc-linux- oldconfig
(ものすごい勢いでメッセージ等が表示されます。。。)

 端末エミュレータのログをスクロールさせてみると、さまざまな項目について質問に自動的に答えてくれているようです。

 なるほど、このためにconfig_kuroboxを.configにコピーしたんですね。

 でも、今回はUSB無線LANアダプタようのモジュールやIPルーティングのモジュールを入れなくちゃいけませんから、このままというわけにはいきません。

 かといって、USB無線LANアダプタの部分やIPルーティングの部分をYesにしようにも、決まった質問が決まった順番で出題される仕様のようで、数百はある質問数(いやマジで)について全部正確に答えていう自信なんてま~ったくありませ~ん。

 .configを書き換えなきゃダメなんですかねぇ・・・。

 ・・・ということで、いろいろググってみたら、make oldconfigでなくmake menuconfigとすればメニュー形式で必要な部分だけ変更できるんだということが分かりました。

 ただし、menuconfigを有効にするためにはncursesがインストールされている必要があるようです。

 案の定、我が仮想Debianにはncursesがインストールされていませんでしたから、ncursesの配布ページ(GNU)からソースをダウンロードしてきてインストールします。

# tar zxvf (保存したフォルダ)/ncurses-5.5.tar.gz
      ↑.gzの場合はzxvf
(メッセージ省略)
# cd ncurses-5.3
# ./configure --with-shared --with-normal 
(メッセージ省略)
# make
(メッセージ省略)
# make install
(メッセージ省略)

 では、menuconfigしてみます

# make ARCH=ppc CROSS_COMPILE=ppc-linux- menuconfig

menuconfigの図

 やりました!

 これで、先ほど実行したoldconfigの設定を尊重しつつ、自分の好みの設定にアレンジできるというワケです!

 玄箱Debianでのkernelのカーネルの再構築方法を参考にいじっていきます。

 PCMCIAカードは使いませんので、IPルーティングのためにNetworking関係を、USB無線LANアダプタのためにDevice Drivers関係を設定します。

 ておきましょう。これまた、実際の画面とWebの記事がビミョーに違いますので、そこはそれテキトーに、関係ありそうなところを[*]または[M]に設定していきます。

 各メニュー項目は、エンターキーで一段下のメニューに入り、ESCキー二度押しで上に戻る。
 設定項目はスペースキーを押すごとに[*]→[M]→[ ]と変わります([M]がない場合もあり)。
 多分、[*]が最初から組み込み、[M]がモジュールとして組み込み、[ ]が組みこまない・・・という感じでしょう。
 ・・・ってのは私のカンですから、本当が知りたい方は個々で調べてください。

 目指すは黒箱の無線LANルータ化ですから、名前にroutingが付くものやfilterが付くものは全て[*]または[M]、さらにDHCPも入れましょう、IPsecも入れましょう。

 NATやMASQURADEは、Networking→Networking Options→Network packet filtering flamework (Netfilter)てなカンジで奥深くにあり、探すのに苦労しました(笑)。

 Devicxe Drivers関係では、Devicxe Drivers→Network device support→Wireless LAN (non-hamradio)にメジャーな無線LANチップのモジュールがありますから、保険として一通りチェックしておきます。

 Devicxe Drivers→USB supportは、USB2.0とかちゃんと設定されているようだったので、特にいじりませんでした。

 さて、設定に納得したらクロス・コンパイルです。

# make ARCH=ppc CROSS_COMPILE=ppc-linux- dep
scripts/kconfig/conf -s arch/ppc/Kconfig
*** Warning: make dep is unnecessary now.

 なんか、ウォーニングが出てますが気にせずいきます。

# make ARCH=ppc CROSS_COMPILE=ppc-linux- vmlinux
(768行のメッセージと十数分の時間が経過)
# ppc-linux-objcopy -O binary vmlinux vmlinux.bin
# tar jcvf ../kernel-2.6.20.3-kurobox.tar.bz2 vmlinux.bin S
ystem.map .config
(メッセージ省略)

 参考元の記事では、「vmlinux.bin」「System.map」「.config」の3つファイルをいったん別の名前に変更しTarballに固めています。しかし、どうせ玄箱に移してから元の名前に戻す必要があるので、ここではそのまま固めちゃってます。

 お次は、モジュールのクロス・コンパイルです。

# make ARCH=ppc CROSS_COMPILE=ppc-linux- modules
(812行のメッセージと十数分の時間が経過)
# make ARCH=ppc CROSS_COMPILE=ppc-linux- INSTALL_MOD_PATH=.
./modules modules_install
(メッセージ省略)
# cd ../modules/lib/modules
# tar jcvf ../../../modules-2.6.20.3-kurobox.tar.bz2 2.6.20
.3-kurobox
(メッセージ省略)

 これで、/usr/local/srcにkernel-2.6.20.3-kurobox.tar.bz2とmodules-2.6.20.3-kurobox.tar.bz2ができましたので、これら2つのファイルを玄箱にコピーし、インストールします。

KURO-BOX:~# cd /boot
KURO-BOX:/boot# tar jxvf (保存したフォルダ)/kernel-2.4.33.3-ku
robox.tar.bz2
KURO-BOX:/boot# cd /lib/modules
KURO-BOX:/lib/modules# tar jxvf modules-2.4.33.3-kurobox.ta
r.bz2
KURO-BOX:/lib/modules# depmod -F /boot/System.map -a 2.4.33
.3-kurobox

 ドキドキしながら玄箱を再起動します。

KURO-BOX:/lib/modules# echo -n DDDD > /dev/ttyS1
KURO-BOX:/lib/modules# shutdown -r now

 ドキドキ・・・。

 起動してきましたよ。

 カーネルが大きくなった分、起動に時間がかかっている模様です。

 ドキドキドキドキ・・・。

 玄箱のLED点滅が点灯に変わりました。

 端末エミュレータでログインしてみましょう。

Debian GNU/Linux 3.1 KURO-BOX
KURO-BOX login: henry
Password:
Last login: Mon Mar 26 03:46:07 2007 from leo-kichi on pts/0
Linux KURO-BOX 2.6.20.3-kurobox #2 Wed Mar 21 20:39:50 JST 2
007 ppc GNU/Linux
 
The programs included with the Debian GNU/Linux system are f
ree software;
the exact distribution terms for each program are described 
in the
individual files in /usr/share/doc/*/copyright.
 
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the e
xtent
permitted by applicable law.
henry@KURO-BOX:~$

 シュペール!

 大成功です!

 2.6.20.3-kuroboxになってます。

 次はいよいよ、無線LANアダプタの設定です。

 ・・・って、その前に何を買うか決めなきゃ。

 おいおい、まだ買ってないのかよ。

 とまあ、その辺ひっくるめて次回で~す!

初出:2007/04/14

誤字等訂正:2007/04/16

スポンサーサイト
FC2 managemented












管理者にだけ表示

トラックバックURL↓
http://yaroespage.blog121.fc2.com/tb.php/16-430771c3

| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。