Atheros のネットワークライバをインストール
まず、NICのドライバを取ってくる
http://www.unitycorp.co.jp/asus/motherboard/intel/lga775/p5kpl-cm/index.html#detail
を見るとP5KPL-CM のNICは
Atheros AR2181 PCIe Gigabit LAN controller
というものを使っている。Atheros。アセロス。アメリカのメーカで無線LANが有名らしい。
ドライバを取ってくる
http://partner.atheros.com/Download.aspx?id=13
説明をよみ、Accept で AR81Family-linux-v1.0.1.0.tar.gz のダウンロードが始まる。
これをUSBメモリに入れる。
atheros がクアルコムの子会社になったので↑のリンクが死んだみたい。
ftp://starlane.gotdns.org/drivers/AR81Family-linux-v1.0.1.0/
ここから取れます。
USBメモリをマウント
ドライバを入れたUSBをサーバに挿して、rootでログイン。
デバイスの名前を確認。
多すぎて流れてしまうので、lessで
# dmesg | less USB Mass Storage support registered. Vendor: I-O DATA Model: USB Flash Disk Rev:3A Type: Direct-Access ANSI SCSI revision:02 SCSI device sdb: 4014080 512-byte hdwr sectors (2055 MB) ... sdb: sdb1
とあり、sdb1ってのが名前っぽい
ディレクトリを作ってそこにマウント
# mkdir /mnt/usb # mount -t vfat /dev/sdb1 /mnt/usb
ローカルにコピー
# mkdir -p /root/work/driver # cp /mnt/usb/AR81Family-linux-v1.0.1.0.tar.gz /root/work/driver # cd /root/work/driver
解凍
# tar xvfz AR81Family-linux-v1.0.1.0.tar.gz atl1e.7 copying ldistrib.txt readme release_note.txt src/ src/at.h src/at_ethtool.c src/at_hw.c src/at_hw.h src/at_main.c src/at_osdep.h src/at_param.c src/kcompat.c src/kcompat.h src/kcompat_ethtool.c gzip: stdin: decompression OK, trailing garbage ignored src/Makefile src/Module.symvers tar: Child returned status 2 tar: Error exit delayed from previous errors
なんかエラーでる。
圧縮ファイルの中をみる
# tar tvfz AR81Family-linux-v1.0.1.0.tar.gz -r-xr-xr-x root/root 4361 2008-05-13 11:54:12 atl1e.7 -r-xr-xr-x root/root 19010 2008-05-13 11:54:12 copying -r-xr-xr-x root/root 4715 2008-05-13 11:54:12 ldistrib.txt -r-xr-xr-x root/root 7703 2008-05-13 11:54:12 readme -r-xr-xr-x root/root 942 2008-07-07 15:46:09 release_note.txt drwxrwxrwx root/root 0 2008-07-23 18:56:12 src/ -r-xr-xr-x root/root 4310 2008-07-23 14:48:52 src/at.h -rwxrwxrwx root/root 15816 2008-07-23 14:48:52 src/at_ethtool.c -rwxrwxrwx root/root 23624 2008-07-23 14:48:52 src/at_hw.c -rwxrwxrwx root/root 51977 2008-07-23 18:55:06 src/at_hw.h -rwxrwxrwx root/root 97865 2008-07-23 18:55:33 src/at_main.c -r-xr-xr-x root/root 3360 2008-07-23 14:48:52 src/at_osdep.h -r-xr-xr-x root/root 9289 2008-07-23 14:48:52 src/at_param.c -r-xr-xr-x root/root 5914 2008-07-23 14:48:52 src/kcompat.c -r-xr-xr-x root/root 36370 2008-07-23 14:48:52 src/kcompat.h -r-xr-xr-x root/root 30563 2008-07-23 14:48:52 src/kcompat_ethtool.c gzip: stdin: decompression OK, trailing garbage ignored -r-xr-xr-x root/root 10934 2008-07-23 14:48:52 src/Makefile -rwxrwxrwx root/root 0 2008-07-23 14:48:52 src/Module.symvers tar: Child returned status 2 tar: Error exit delayed from previous errors
...元から src/Module.symvers の容量が0byte になってる。
こいつが原因なのかな?調べたけどこの解決方法がよく分からなかった。
とりあえず、解凍できたものと、圧縮ファイルの中に入っているファイルは、すべて同じ容量だったので、続けてみる。
*1
いざ、インストール
# cd src # make install # insmod atl1e.ko
このサーバのIPを設定
# ifconfig eth0 192.168.0.200
再起動するたびに、設定するのは面倒なので、追記しておく
# vim /etc/modprobe.conf alias eth0 atl1e
ネットワークをスタート
# /etc/ini.d/network start
ルータにpingをうってみる。
# ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=0.400 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.368 ms
通った!サーバの背面を見ると、LANケーブルの挿口も光ってる。
でも、外のネットワークには繋がってない様子。
なんとなく、再起動。
# shutdown -r now
期待してrootでログインすると、今度は外のネットワークにも繋がるようになってた!
一応確認
$ lsmod | grep atl1e atl1e 41876 0
OK
でも、IPが変わってた。そういえば、ifconfig で設定したけど、設定ファイルには書いてなかったので追記。
# vim /etc/sysconfig/network-scripts/ifcfg-eth0 # Attansic Technology Corp. L1 Gigabit Ethernet Adapter DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.0.255 IPADDR=192.168.0.101 NETMASK=255.255.255.0 HWADDR=00:24:8c:9d:b3:9c ONBOOT=yes NETWORK=192.168.0.0 GATEWAY=192.168.0.1 TYPE=Ethernet USERCTL=no PEERDNS=no IPV6INIT=no ついでに # vim /etc/resolv.conf search localdomain nameserver 192.168.0.1
いい経験になったけど、疲れた。今度からはintel のNICを使っているマザーボードを買う。絶対。
参考にしました。
http://ziddy.japan.zdnet.com/qa4481736.html
http://kajuhome.com/tips/tips_00_003.shtml
-
-
-
-
-
- -
-
-
-
-
蛇足。
最初、CDからインストールしたとき、開発ツールを選択してなかったため、泥沼に陥った。。
記録として書いたけど、消すのもったいないのと、開発環境にチェックをいれた理由としても、残しておく。
インストール時に開発環境にチェックを入れておくと、これらの問題に悩むことはない。
NICのドライバを make しようとすると、失敗する。Makefileの中身を見ると、kernel のソースを探して失敗している様子。
仕方ないので、カーネルのソースを取ってくる。
Mac側から取得
$ wget "http://ftp.riken.jp/Linux/centos/5.3/updates/SRPMS/kernel-2.6.18-128.1.1.el5.src.rpm"
USBに移して、CentOSでマウント
# mount -t vfat /dev/sdb1 /mnt/usb # mkdir /root/work/kernel # cp /dev/sdb1/kernel.... /root/work/kernel # cd /root/work/kernel # rpm -ivh kernel-2.6..... 展開に失敗した、ディレクトリがないらしい # mkdir /usr/src/redhat つくる # rpm -ivh kernel-2.6..... もっかい # cp /usr/src/redhat/SOURCES/linux-2.6.18.tar.bz2 /root/work/kernel # tar xvfj linux-2.6.18.tar.bz2
Makefile の中をみると
/usr/src/linux以下におけばよさそうなので
# cp -R /root/work/kernel/linux-2.6.18./* /usr/src/linux
あらためて、make install
# cd /root/work/kernel/ar81/src # make install # Makefile:107: *** Linux kernel source not configured - missin autoconf.h Stop.
http://support.intel.co.jp/jp/support/network/adapter/1000/linux_readme.htm
をみると
make include/linux/version.h
でOKらしいので、やってみる。
cd /usr/src/linux make include/linux/version.h /usr/src/linux/scripts/gcc-version.sh: line 11: gcc: command not found /usr/src/linux/scripts/gcc-version.sh: line 12: gcc: command not found make: gcc: Command not found CHK include/linux/version.h
...... まじでか。
http://memorva.jp/memo/linux/gcc_curses.php
をみると、色々必要っぽい。すんごいだるい。この先gcc以外にも、こんな事が起こりそう。
そのため、OSを再インストールして開発環境のパケージにチェック付けることにした。
ちなみに、こういうサイトがあるらしい。
http://rpm.pbone.net/
*1:追記:同じ方法で解凍してるから、結果は同じで当然か!