up

kernel eth0

eth と それに対する module が 想定するものと 逆に なる場合が有ります。 通常 /etc/modules.conf に alias で 設定する事に依り 割り付けられる 事が 有ります

modules.conf の一例

いずれも 抜粋ですが

Slackware 9.1.0

問題なく動作しているように 見えるのですが?

# mount /dev/sda7 /mnt/
# cat /mnt/etc/slackware-version 
Slackware 9.1.0
# cat /etc/modules.conf  /*  抜粋 これは過去の 例を 引用して 運用 */
alias eth0 eepro100
alias eth1 8139too
Mon Feb 16 23:20:32 JST 2004

Red Hat Linux release 9 (Shrike)

問題なく動作しているように 見えるのですが? dhcp ですので 起動時 ケー ブルが 接続されていない と警告を 受けるのは eth1 側

lx:~# mount /dev/hda10 /mnt/
lx:~# cd /mnt/etc/
lx:/mnt/etc# cat redhat-release 
Red Hat Linux release 9 (Shrike)
lx:/mnt/etc# cat modules.conf
alias eth0 e100
alias eth1 8139too
alias scsi_hostadapter sym53c8xx
alias usb-controller usb-uhci

lx:/mnt/etc# cat modules.conf~
alias eth0 e100
alias eth1 8139too
alias scsi_hostadapter sym53c8xx

Vine Linux 4.1 (Cos d'Estournel)

問題なく動作しているように 見えるのですが? dhcp ですので 起動時 ケー ブルが 接続されていない と警告を 受けるのは eth0 側

lx:~# mount /dev/hda11 /mnt/
lx:~# cd /mnt/etc/
lx:/mnt/etc# cat vine-release 
Vine Linux 4.1 (Cos d'Estournel)
lx:/mnt/etc# cat modprobe.conf
alias eth0 8139too
alias eth1 e100
alias scsi_hostadapter sym53c8xx
alias usb-controller uhci-hcd
lx:/mnt/etc# cat modprobe.conf~
alias eth0 8139too
alias eth1 e100
alias scsi_hostadapter sym53c8xx

debian version 3.0

少し 別の場所になりますが

lx:~# mount /dev/sda6 /mnt/
lx:/mnt/etc# cat debian_version 
3.0
lx:/mnt/etc# cat modules
# /etc/modules: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line.  Comments begin with
# a "#", and everything on the line after them are ignored.

unix
af_packet
eepro100

近頃のものは eepro100 よりは e100 が 良いのかもしれません。 それはと もかく。今回は e100 を kernel に 組み込むことで 対処 する事にします。但 しこれは 根本的な対処ではありません。kernel に e100 を 組み込むとこれが eth0 に 割り振りをしてくれるだろうという 希望です。

kernel recompile

make menuconfig

一連の作業を 行います。

lx:~# cd /usr/src/linux-2.4.31/
lx:/usr/src/linux-2.4.31# make menuconfig
rm -f include/asm
( cd include ; ln -sf asm-i386 asm)
make -C scripts/lxdialog all
make[1]: Entering directory `/usr/src/linux-2.4.31/scripts/lxdialog'
make[1]: Leaving directory `/usr/src/linux-2.4.31/scripts/lxdialog'
/bin/sh scripts/Menuconfig arch/i386/config.in
Using defaults found in .config
Preparing scripts: functions, parsing................................
..................................................done.


Saving your kernel configuration...

*** End of Linux kernel configuration.
*** Check the top-level Makefile for additional configuration.
*** Next, you must run 'make dep'.
/*  設定を 保存して make dep && make clean && make bzImage を 行います  */
lx:/usr/src/linux-2.4.31# make dep && make clean && make bzImage
...
objcopy -O binary -R .note -R .comment -S compressed/bvmlinux compressed/bvmlinux.out
tools/build -b bbootsect bsetup compressed/bvmlinux.out CURRENT > bzImage
Root device is (3, 7)
Boot sector 512 bytes.
Setup is 4767 bytes.
System is 1022 kB
warning: kernel is too big for standalone boot from floppy
make[1]: Leaving directory `/usr/src/linux-2.4.31/arch/i386/boot'
/* このくらいの事を いわれても 問題は無いでしょう 続けて modules を 作成します  */
lx:/usr/src/linux-2.4.31# cd /lib/modules
lx:/lib/modules# ls
2.4.31-plamo/  org_2.4.31-plamo/
lx:/lib/modules# mv 2.4.31-plamo/ 1st-2.4.31-plamo/
lx:/lib/modules# cd -
/usr/src/linux-2.4.31
/* 作業を開始します      */
lx:/usr/src/linux-2.4.31# make modules && make modules_install  
...
cd /lib/modules/2.4.31-plamo; \
mkdir -p pcmcia; \
find kernel -path '*/pcmcia/*' -name '*.o' | xargs -i -r ln -sf ../{} pcmcia
if [ -r System.map ]; then /sbin/depmod -ae -F System.map  2.4.31-plamo; fi
/* 後の処理をします   */
lx:/usr/src/linux-2.4.31# ls /lib/modules/
1st-2.4.31-plamo/  2.4.31-plamo/  org_2.4.31-plamo/
lx:/usr/src/linux-2.4.31# cd /lib/modules/
lx:/lib/modules# mv 1st-2.4.31-plamo/ second-2.4.31-plamo/
lx:/lib/modules# ls
2.4.31-plamo/  org_2.4.31-plamo/  second-2.4.31-plamo/
lx:/lib/modules# cd -
/usr/src/linux-2.4.31
/* kernel の 入れ換えを 行います   */
lx:/usr/src/linux-2.4.31# ls -l arch/i386/boot/bzImage 
-rw-r--r--    1 root     root      1052988 Nov 16 00:16 arch/i386/boot/bzImage
lx:/usr/src/linux-2.4.31# cd /
lx:/# mv vmlinuz-2.4.31 001_vmlinuz-2.4.31
lx:/# cp /usr/src/linux-2.4.31/arch/i386/boot/bzImage vmlinuz-2.4.31
/* System.map の 入れ換えを 行います   */
lx:/# cd /boot/
lx:/boot# mv System.map-2.4.31 001_System.map-2.4.31
lx:/boot# cp /usr/src/linux-2.4.31/System.map System.map-2.4.31
/* modules.conf から eth0,1 の alias 削除   */
lx:/boot# cd /etc/
lx:/etc# ls -l modules.conf                                         
-rw-r--r--    1 root     root         2300 Nov 14 10:32 modules.conf
lx:/etc# cp modules.conf 0008_20071114_modules.conf_alias-eth 
lx:/etc# cp 0001_backup/0007_20050119_modules.conf_org modules.conf 
lx:/etc# mv 0008_20071114_modules.conf_alias-eth 0001_backup/
/* alias 追記する 前の ものに 戻したということ */

これで 一連の作業は完了した理由です 再起動して 確認しましょう。

再起動

再起動 した後の状態を確認

lx:/var/data/www/apache2/logs# shutdown -r now

lx:~# lsmod
Module                  Size  Used by    Not tainted
autofs4                 8052   0  (unused)
nfsd                   66448   1  (autoclean)
lockd                  45008   1  (autoclean) [nfsd]
sunrpc                 64608   1  (autoclean) [nfsd lockd]
8139too                13832   0  (unused)
mii                     2208   0  [8139too]
crc32                   2880   0  [8139too]
keybdev                 1796   0  (unused)
mousedev                3860   0  (unused)
input                   3328   0  [keybdev mousedev]
usb-uhci               21456   0  (unused)
usbcore                58060   1  [usb-uhci]

当然だわさ と いうが また運用中に 問題が 発生するかもしれないが

lx:/var/data/www/apache2/logs# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:D0:B7:29:65:7F  
          inet addr:192.168.0.5  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:224 errors:0 dropped:0 overruns:0 frame:0
          TX packets:348 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:33718 (32.9 Kb)  TX bytes:31277 (30.5 Kb)
          Interrupt:11 Base address:0x2800 Memory:41200000-41200038 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:143 errors:0 dropped:0 overruns:0 frame:0
          TX packets:143 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:9261 (9.0 Kb)  TX bytes:9261 (9.0 Kb)

この 状態で いつも 起動すれば 問題は 無いのですが 当分これにて 運用を します。

補足資料

これは /etc/modules.conf の aliasにて eth0 と eth1 を 規定したつもりですが eth0 予定外の 割り当て 例です。予定どおりのも のも 記載してあります。

これは eth0 と eth1 について 調査した断片 の 資料ですので 役に立ちませぬ。 e100 でも eepro100 でも お好きな方 を 選択すれば 良いと思います

にゃんたろう 拝!

2007年11月19日 (月) 22:47:09 JST 作成


up

Copyright © 2004.-2007. nyantarou All Rights Reserved.