ネットワークデバイスの設定
作成 : 2003/01/01
状態の確認(lspci と lsmod)
lspci を実行して、PCI デバイスの一覧を表示する。
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev c4) 00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP] 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 21) 00:07.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 10) 00:07.2 USB Controller: VIA Technologies, Inc. USB (rev 10) 00:07.3 USB Controller: VIA Technologies, Inc. USB (rev 10) 00:07.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 30) 00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 20) 00:0d.0 VGA compatible unclassified device: S3 Inc. 86c864 [Vision 864 DRAM] vers 1 00:11.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C (rev 10)
一番下の行で、NIC が接続されていることが確認できる。 続いて、lsmod を実行して、ロードされているモジュールを確認する。
Module Size Used by Not tainted ide-scsi 7456 0
/etc/modules.conf
Realtek 8139 のドライバは、/lib/modules/2.4.18/kernel/drivers/net/8139too.o.gz になる。 slackware インストール CD-ROM の kernel-modules バイナリパッケージに含まれている。
/etc/modules.conf に、eth0 と 8139too を関連付けるよう記述する。 (modules.conf については、カーネルとモジュールを見てね)
alias eth0 8139too
modprobe でモジュールをロードしてみる。
# modprobe eth0
Note: /etc/modules.conf is more recent than /lib/modules/2.4.18/modules.dep
modules.conf が modules.dep より新しいというメッセージが表示された。 depmod で依存関係ファイルを更新しておく。
# depmod -a
lsmod で確認すると、ネットワークモジュールがちゃんとロードされている。
# lsmod
Module Size Used by Not tainted
8139too 13792 0 (unused)
mii 1008 0 [8139too]
ide-scsi 7456 0
/etc/rc.d ディレクトリ
しかし、システムを再起動すると、モジュールがロードされていない。 modprobe を実行すると、ちゃんとロードされる。 システム起動時に、modprobe を実行するようにしないとだめ?
/etc/rc.d/rc.modules というファイルが、なんかそれっぽい。 rc.modules は、rc.M から実行される。 rc.modules を見てみる。
### Network device support ### # Most of these drivers will probe automatically for the card if you don't # specify an I/O address and IRQ. But, the NE2000 driver needs at least the # I/O. For complete information, see the net-modules.txt file that comes # with the Linux 2.2.x source code. This file can also be found on the # Slackware CD-ROM in the /docs/linux-2.2.x/ directory. # # First, if setup probing found a network card, there may be an 'rc.netdevice' # file that we should run to load the network module: if [ -x /etc/rc.d/rc.netdevice ]; then . /etc/rc.d/rc.netdevice fi
rc.netdevice というファイルの中に modprobe を書いておけばいいみたい。 rc.netdevice は存在しないので、新規に作成する。 実行する権限を付与するのを忘れないように!
# echo "/sbin/modprobe eth0" > /etc/rc.d/rc.netdevice # chmod 755 /etc/rc.d/rc.netdevice
これで、システム起動時にモジュールがロードされるようになる。
ifconfig で仮設定
仮に IP 設定をして、動作確認してみる。 ifconfig がインストールされていないので、ほかのシステムから ifconfig をコピーする。 (redhat 8.0 のをもらってきた)
# ./ifconfig eth0 192.168.0.100 mask 255.255.255.0 # ./ifconfig eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0 b) TX bytes:0 (0 b) Interrupt:11 Base address:0x5000
他のホスト ping で試験すると、ちゃんと返事をするようになった。