ここでは例としてTUN/TAPデバイスのカーネルモジュールをインストールすることにします。
注(07/02/18追記):
玄箱HG用のTUN/TAPなら自分でコンパイルする必要はありません。
まずはこの記事を見ることを強く推奨します。
なぜTUN/TAPデバイスかって?
OpenVPNを玄箱に導入したはいいが、
Note: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)
Note: Attempting fallback to kernel 2.2 TUN/TAP interface
Cannot allocate TUN/TAP dev dynamically
とログに残り起動せず。どうやら
玄箱うぉううぉうのkernelではTUN/TAPモジュールが導入されていないようだ。(当然だ)
そんなわけで導入します。
1. kernel.orgから2.4.17のkernel tar玉をDLして解凍。(bzip2がインストールされてなければapt-get install bzip2で事前にインストールしておく)
wget http://www.t.ring.gr.jp/pub/linux/kernel.org/kernel/v2.4/linux-2.4.17.tar.bz2
bzip2 -d linux-2.4.17.tar.bz2
tar xvf linux-2.4.17.tar
2. makeする項目の設定をします。
cd linux
make menuconfig
するとGUIっぽい画面が出てくるので"Network device support --->"でEnterを押し、Yキーを押す。("[ ] Network device support" が "[*] Network device support" に変化する。)
次に、下の方にある"< > Universal TUN/TAP device driver support"で
Mキーを押して"<M> Universal TUN/TAP device driver support"にする。以上の2つとGeneral setup内のNetworking supportとLoadable module support以外はNキーを押して"[ ] 〜〜〜〜〜〜"にする。(そうすることでコンパイルにかかる時間を短縮できる。)
設定が終わったらEscキーを数回押して"Do you wish to save your new kernel configuration?"と聞かれるのでYesと答える。
3. version.hを書き換えます。
書き換えを行わないと、
tun.o: kernel-module version mismatch
tun.o was compiled for kernel version 2.4.17_mvl21
while this kernel is version 2.4.17_kuro-box.
と怒られmoduleのロードに失敗します。
書き換えた部分は、/lib/modules/xxx のxxxの部分になります。
xxxは、現在使用しているkernelの名前に合わせる必要があります。
(上の太字の部分に合わせる)
vi include/linux/version.h
以下のように書き換えます。
#define UTS_RELEASE "2.4.17"
↓
#define UTS_RELEASE "2.4.17_kuro-box"
4. いよいよmoduleをmakeする。
make dep
make modules
5. 出来たモジュールを動作確認する。
cp drivers/net/tun.o /lib/modules/2.4.17_kuro-box/kernel/drivers/net
depmod -a
depmod: *** Unresolved symbols in /lib/modules/2.4.17_kuro-box/kernel/drivers/netmodprobe
modprobe tun
lsmod
Module Size Used by Not tainted
tun 5168 0 (unused)
どうやら正常に読み込んだようだ。
追記:コマンド部分が見にくくてスマソ。コピペするときはちゃんと一行になってます。
<参考>
NE(ねとわーくえんぎにあ)日記 - メモ
http://d.hatena.ne.jp/rs6000moe/20041204
posted by 名無しさん at 22:27
| ☔
|
Comment(1)
|
TrackBack(0)
|
コンピュータ・ネット