CentOS ネットワーク設定121009
インストール時にネットワークの設定が「CentOS徹底入門」のキャプチャと違っていたなーという記憶はあった。どうも調べていくと/etc/sysconfig/network-scripts/ifcfg-eth0というファイル(有線LAN用デバイスの設定ファイルで、デバイスがあるだけeth1と順次続く)がない。原因としてはLANチップが認識できなかった可能性があるということ。
そのコンピュータがどんなLANデバイス積んでるのか。Ethernetの含まれる行を見る。
# lspci 02:00.0 Ethernet controller: Atheros Communications Inc. AR8152 v2.0 Fast Ethernet (rev c1)
CentOS6.2 と ar8152 でググるとひっかかる。CentOSのフォーラムにもあった。フォーラムの方をメインで参照。英語が平易な物つかっててわけわからない状態じゃないことに感謝。カーネルがこれ用のドライバを持っていないから認識できないらしいので持ってくる。
どのドライバを持ってくるか
# lspci 02:00.0 Ethernet controller: Atheros Communications Inc. AR8152 v2.0 Fast Ethernet (rev c1) # lspci -n | grep 02:00.0 02:00.0 1969:2062 (rev c1)
1969:2062がデバイスIDらしいので、ELRepoのデバイスIDのページから探す。「kmod-atl1e」が必要なドライバなのでダウンロードページからダウンロードする。なぜこの階層なのかは分からないが、ダウンロードページのasiaリンクからそれっぽいものを探して行ったらたどり着いた。ダウンロードしてUSBに移しLinuxへ挿す。
たしかここでプロンプトがもどってこなかった。試しにlsコマンド打ったら戻ってきた。良かったのかはわからん。assuming deviceとかwrite througthとか出てたけどエラーではないようなので無視。
USBメモリを差すと自動マウント?される場合もあるようでdfで確認できるらしいがわからん。
そして。dmsegで最後の方にwrite througthに囲まれてsdb:sdb1というデバイス名があり、これがdev/sdb1にマウントされてます(?)って意味のようだ。このディレクトリで使える気がしないでもないのだけど、先達に従う。
まず適当な場所を作成する。
# mkdir /mnt/usbmem
作った/mnt/usbmemにマウントする。
# mount -t vfat /dev/sdb1 /mnt/usbmem
このディレクトリ配下に中身が展開されている(アンマウントはumount /mnt/usbmem 中身が消える)。そこまで移動して
rpmでインストール
# rpm -ivh kmod-atl1e-1.0.1.14-1.el6.elrepo.i686.rpm
insmodとmodprobeは後者が関連ファイルもロードするみたいで、とりあえずそのほうがいいんじゃねと後者選択。
カーネルに含めてもらう
# cd /lib/modules/2.6.32-71.el6.i686/extra/atl1e # modprobe atl1e
./atl1e/atl1e.koってのがあるんだけど、modprobe atle1eでこれ使ってるの?
この段階でLANケーブル挿すとリンクランプ点灯した。カーネルがLANデバイス認識したようだ。ifconfigにもeth0が載ってくるようになった!だからあってるはず…
ifcfg-eth0を作成する。
#vim ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.10.255 IPADDR=192.168.10.3 NETMASK=255.255.255.0 NETWORK=192.168.10.0 ONBOOT=yes
ネットワークの再起動
# service network restart Shutting down interface eth0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: [ OK ]
[OK]でたし、pingもルータまで通る。しかし
# nslookup google.com ;; connection timed out; no servers could be reached
となるので外には出れてない模様。未解決…
あとこのままだと再起動でまたeth0失ってしまうかもしれない…
121012追記
外に出られないというのか、名前が解決できてないというのか。ネット出来るmacのほうでgoogleのIPアドレス調べてそれでping打ってみることにした。
$ dig www.google.com
出てきたIPアドレスの一つをCentOSのほうでpingで疎通する。通った。外に出られないという表現は正しくなくて、名前が解決出来ないという表現が正しそうだ。なので、DNSサーバーの指定関連で何か間違ってるんだとおもう。
121013追記
/etc/resolv.confを見直すと、"nameserver"の項目が"namesaver"になっていた。直したら名前解決できた。クソみたいな原因だった…