自宅のネットワーク環境は勉強も兼ねて組み立てPCをルータに仕立てて運用しています。
ルータ機能の他には
これらの機能を1台に集約しています。
OSはVineLinux。
先週の話。このPCが再起動を繰り返し再起不能の状態になっていました。
少し前から兆候はあったのですが放置していた結果です。
そのうち、最初の画面ですら表示されない状況に。
さて、困りました。ハードウェアトラブルであるのは間違いがありませんが、ある程度予想で原因を追及しなければなりません。
最終的には CPU か マザーボードのどちらかだろうと判断しました。
マザーボード BIOSTAR の G41-M7。LGA775の Celeronで動かしています。
まずはCPUと予想。近くにお店もないのでAmazonを覗くと中古のCeleron。全く同じCPUが売りに出ていたのでまずはそれを購入して交換。
350円でしたが送料を合わせると980円。
残念ながら結果は全く変わらず。原因はCPUではなかったようです。
となると原因はマザーボード。これは面倒なことになってきた。
新しいマザーボードになったらDDR3のメモリも買わなければならないのかも。OS再インストールして設定も一からやり直しかも。
と思いながら探すと同じ型のマザーボードがまだ売っているではありませんか。
これなら最小限の労力で現状復帰できそう。
早速購入しました。フェイスインターネットショップで6790円+送料。
到着後開封すると、同じ型番だけどバージョンが上がっているようで少し違いがあるようです。
FDD用コネクタが廃止されていたのが一番大きなところでしょうか。
早速交換して起動チェック。無事起動できました。
あとは蓋を閉じて設置して終わり...
と思いきや、オンボードのネットワークが認識していないようです。
ルータにしているので、PCIのNICカードを刺していますが、こちらは通常通り接続できる様子。
ここからが本題。
仮説1)
基板のバージョンも上がっているみたいだし、ネットワークのチップが変わった対応できなくなったのだろうか。
>lspci -v
で出てくる情報では
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 05) Subsystem: Biostar Microtech Int'l Corp Device 230c Flags: bus master, fast devsel, latency 0, IRQ 17 I/O ports at d800 [size=256] Memory at fdfff000 (64-bit, prefetchable) [size=4K] Memory at fdff8000 (64-bit, prefetchable) [size=16K] Capabilities:Kernel driver in use: r8169 Kernel modules: r8169
r8169という以前と変わらないドライバをちゃんとと使えるように見えます。
仮説2)
設定に何か不具合がある。
/etc/sysconfig/network-scripts/ifcfg-eth0
の内容
# Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller DEVICE=eth0 BOOTPROTO=dhcp HWADDR=00:30:67:3A:69:D1 ONBOOT=no TYPE=Ethernet NM_CONTROLLED=no USERCTL=no PEERDNS=yes IPV6INIT=no
HWADDRってMACアドレスの事だから、ここを変えないとダメなのかもしれない。
BIOS画面から内蔵NICのMACアドレスを知る事ができたので、ここを変更して再起動。
結果変わらず。
方々調べたところ、このページを見つけました
http://www.linuxmaster.jp/linux_blog/2011/09/vmwaredevice-eth0-does-not-seem-to-be-present-delaying-initialization.html
MACアドレスを覚えているところが別な所にもあるのか。
/etc/udev/rules.d/70-persistent-net.rules
# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rule written by anaconda) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0d:0b:9c:4a:3a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" # Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rule written by anaconda) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:30:67:3a:69:d1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x10ec:0x8136 (r8169) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="b8:97:5a:44:64:99", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
2番目にあるのが以前のeth0の設定。下にあるのがいつのまにか出来ていた新しい設定、eth2になっている。このあたりが矛盾しているから繋がらないのかということで、2番目のeth0のMACアドレスの部分を新しいMACアドレスに書き換え、eth2の設定は要らないので削除したところ無事接続できるようになりました。
ここまでたどり着くのに一日ががりでした。疲れた。