network cardの driver組み込み方法
sorry Japanese only
最終更新日 2005/01/01
page size = Mbyte

kernelの updateを行ったら、使っている network cardが起動しなくなってしまいました。
kernelの updateを行っているとき、以下のエラーが出たので、ん?と思ったのですが、案の定でした。
[root]# rpm -Uvh kernel-2.4.22-0vl2.16.i686.rpm
kernel                      ##################################################
/lib/modules/2.4.22-0vl2.10/kernel/drivers/net/e1000/e1000.o の削除に失敗: そのようなファイルやディレクトリはありません
/lib/modules/2.4.22-0vl2.14/kernel/drivers/net/e1000 を削除できません - ディレクトリが空でありません
/lib/modules/2.4.22-0vl2.14/kernel/drivers/net を削除できません - ディレクトリが空でありません
/lib/modules/2.4.22-0vl2.14/kernel/drivers を削除できません - ディレクトリが空でありません
/lib/modules/2.4.22-0vl2.14/kernel を削除できません - ディレクトリが空でありません
/lib/modules/2.4.22-0vl2.14 を削除できません - ディレクトリが空でありません
/lib/modules/2.4.22-0vl2.15/kernel/drivers/net を削除できません - ディレクトリが空でありません
/lib/modules/2.4.22-0vl2.15/kernel/drivers/char/drm を削除できません - ディレクトリが空でありません
/lib/modules/2.4.22-0vl2.15/kernel/drivers/char を削除できません - ディレクトリが空でありません
/lib/modules/2.4.22-0vl2.15/kernel/drivers を削除できません - ディレクトリが空でありません
/lib/modules/2.4.22-0vl2.15/kernel を削除できません - ディレクトリが空でありません
/lib/modules/2.4.22-0vl2.15 を削除できません - ディレクトリが空でありません
[root]# 
何でこうなってしまうか不明なんですが、network cardの driverを installし直したら復旧しました。
ちなみに私が使用している network cardは、

eth0 自宅 network側
Intel PRO/1000MT デスクトップ アダプタ OEM (PWLA8391MT)
win2000の PCと CAT6ストレートケーブル直結 1000BASEにて使用。
使用ドライバー INTEL-PRO1000MT_linux_kernel24_e1000-5.3.19.tar.gz 583680byte

eth1 自宅 network側
VIA6122使った Gigabit Etherカード バルク版。物は、玄人指向のGbE-PCIと同じ。
eth0との組み合わせで 1000BASEの HUB替わりに使おうと思って入れています。
消費電力も 1Wと小さく(1000BASEで LINK時)、Linuxドライバーも揃っているし、非常に優等生なボードだと思います。
使用ドライバー velocityget.tgz 49746byte

eth2 internet側
Intel PRO/100S デスクトップ アダプタ OEM
NTT西日本の Bフレッツ用 ONUへストレートケーブルで直結。
使用ドライバー INTEL-PRO100S_linux_kernel24_e100-3.0.27.tar.gz 194560byte

以下の方法で driverを組み込み直しました。
(ファイルを解凍すると出てくる READMEに書かれている通りです)

[root]# tar xvf INTEL-PRO1000MT_linux_kernel24_e1000-5.3.19.tar
e1000-5.3.19/
e1000-5.3.19/src/
e1000-5.3.19/src/Makefile
e1000-5.3.19/src/e1000_ethtool.c
e1000-5.3.19/src/e1000.h
e1000-5.3.19/src/e1000_hw.c
e1000-5.3.19/src/e1000_hw.h
e1000-5.3.19/src/e1000_main.c
e1000-5.3.19/src/e1000_osdep.h
e1000-5.3.19/src/e1000_param.c
e1000-5.3.19/src/kcompat.c
e1000-5.3.19/src/kcompat_ethtool.c
e1000-5.3.19/src/kcompat.h
e1000-5.3.19/LICENSE
e1000-5.3.19/README
e1000-5.3.19/ldistrib.txt
e1000-5.3.19/e1000.spec
e1000-5.3.19/e1000.7
e1000-5.3.19/SUMS

[root]# cd e1000-5.3.19/src
/tmp/e1000-5.3.19/src
[root]# make install
make
make[1]: 入ります ディレクトリ `/tmp/e1000-5.3.19/src'
gcc -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall -I/lib/modules/2.4.22-0vl2.15/build/include -I. -DMODVERSIONS -DEXPORT_SYMTAB -include /lib/modules/2.4.22-0vl2.15/build/include/linux/modversions.h    -c -o e1000_main.o e1000_main.c
gcc -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall -I/lib/modules/2.4.22-0vl2.15/build/include -I. -DMODVERSIONS -DEXPORT_SYMTAB -include /lib/modules/2.4.22-0vl2.15/build/include/linux/modversions.h    -c -o e1000_hw.o e1000_hw.c
gcc -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall -I/lib/modules/2.4.22-0vl2.15/build/include -I. -DMODVERSIONS -DEXPORT_SYMTAB -include /lib/modules/2.4.22-0vl2.15/build/include/linux/modversions.h    -c -o e1000_param.o e1000_param.c
gcc -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall -I/lib/modules/2.4.22-0vl2.15/build/include -I. -DMODVERSIONS -DEXPORT_SYMTAB -include /lib/modules/2.4.22-0vl2.15/build/include/linux/modversions.h    -c -o e1000_ethtool.o e1000_ethtool.c
gcc -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall -I/lib/modules/2.4.22-0vl2.15/build/include -I. -DMODVERSIONS -DEXPORT_SYMTAB -include /lib/modules/2.4.22-0vl2.15/build/include/linux/modversions.h    -c -o kcompat.o kcompat.c


**************************************************
** e1000.o built for 2.4.22-0vl2.15
** SMP               Disabled
**************************************************

make[1]: 出ます ディレクトリ `/tmp/e1000-5.3.19/src'
gzip -c ../e1000.7 > e1000.7.gz
# remove all old versions of the driver
find /lib/modules/2.4.22-0vl2.15 -name e1000.o -exec rm -f {} \; || true
find /lib/modules/2.4.22-0vl2.15 -name e1000.o.gz -exec rm -f {} \; || true
install -D -m 644 e1000.o /lib/modules/2.4.22-0vl2.15/kernel/drivers/net/e1000/e1000.o
/sbin/depmod -a || true
install -D -m 644 e1000.7.gz /usr/share/man/man7/e1000.7.gz
man -c -P'cat > /dev/null' e1000 || true
[root]# insmod e1000

[root]# tar xvzf velocityget.tgz
./velocityget/
./velocityget/velocity_main.c
./velocityget/velocity_proc.c
./velocityget/velocity_wol.c
./velocityget/velocity.h
./velocityget/velocity_cfg.h
./velocityget/velocity_dbg.h
./velocityget/velocity_desc.h
./velocityget/velocity_mac.h
./velocityget/velocity_mii.h
./velocityget/velocity_proc.h
./velocityget/velocity_stats.h
./velocityget/velocity_wol.h
./velocityget/kcompat.h
./velocityget/linux.txt
./velocityget/Makefile

[root]# cd velocityget
[root]# make install
gcc -Wall -DLINUX -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -D__NO_VERSION__ -O2 -pipe -I/lib/modules/2.4.22-0vl2.15/build/include -I. -Wstrict-prototypes -fomit-frame-pointer -DMODVERSIONS -include /lib/modules/2.4.22-0vl2.15/build/include/linux/modversions.h   -c -o velocity_main.o velocity_main.c
gcc -Wall -DLINUX -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -D__NO_VERSION__ -O2 -pipe -I/lib/modules/2.4.22-0vl2.15/build/include -I. -Wstrict-prototypes -fomit-frame-pointer -DMODVERSIONS -include /lib/modules/2.4.22-0vl2.15/build/include/linux/modversions.h   -c -o velocity_proc.o velocity_proc.c
gcc -Wall -DLINUX -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -D__NO_VERSION__ -O2 -pipe -I/lib/modules/2.4.22-0vl2.15/build/include -I. -Wstrict-prototypes -fomit-frame-pointer -DMODVERSIONS -include /lib/modules/2.4.22-0vl2.15/build/include/linux/modversions.h   -c -o velocity_wol.o velocity_wol.c


**************************************************
Build options:
   VERSION    2.4.22-0vl2.15
   SMP        Disabled
**************************************************
mkdir -p /lib/modules/2.4.22-0vl2.15/kernel/drivers/net
install -m 644 -o root velocityget.o /lib/modules/2.4.22-0vl2.15/kernel/drivers/net
/sbin/depmod -a || true
[root@]#insmod velocityget.o

[root]# tar xvf INTEL-PRO100S_linux_kernel24_e100-3.0.27.tar 
e100-3.0.27/
e100-3.0.27/src/
e100-3.0.27/src/Makefile
e100-3.0.27/src/e100.c
e100-3.0.27/src/ethtool.c
e100-3.0.27/src/kcompat.h
e100-3.0.27/LICENSE
e100-3.0.27/README
e100-3.0.27/ldistrib.txt
e100-3.0.27/e100.7
e100-3.0.27/e100.spec
e100-3.0.27/SUMS

[root@vine1 tmp]# cd e100-3.0.27/src
/tmp/e100-3.0.27/src
[root]# make install
make
make[1]: 入ります ディレクトリ `/tmp/e100-3.0.27/src'
gcc -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall -I/lib/modules/2.4.22-0vl2.15/build/include -I. -DMODVERSIONS -DEXPORT_SYMTAB -include /lib/modules/2.4.22-0vl2.15/build/include/linux/modversions.h    -c -o e100.o e100.c

**************************************************
** e100.o built for 2.4.22-0vl2.15
** SMP               Disabled
**************************************************

make[1]: 出ます ディレクトリ `/tmp/e100-3.0.27/src'
gzip -c ../e100.7 > e100.7.gz
# remove all old versions of the driver
find /lib/modules/2.4.22-0vl2.15 -name e100.o -exec rm -f {} \; || true
find /lib/modules/2.4.22-0vl2.15 -name e100.o.gz -exec rm -f {} \; || true
install -D -m 644 e100.o /lib/modules/2.4.22-0vl2.15/kernel/drivers/net/e100/e100.o
/sbin/depmod -a || true
install -D -m 644 e100.7.gz /usr/share/man/man7/e100.7.gz
man -c -P'cat > /dev/null' e100 || true

[root]# modprobe e100

上記ドライバーの組み込みを行ったら、Linuxを再起動します。

再起動途中、新規ハードウェアーを見付けたと画面が出るので、
SPACE (設定を行う)
Configure (このデバイスを組み入れる)
Migrate (設定を引き継ぐ)
の順にキーを押して、新規デバイスを Linuxへ組み入れます

(写真は、USBデバイスを見付けた画面です)

11010
戻る