ネットワークデバイスの設定

[サーバの実験室 Slackware]

作成 : 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 で試験すると、ちゃんと返事をするようになった。


[サーバの実験室 slackware]