Shuttle XS35にCentOS5.5を導入して無音サーバ構築 (CentOS導入編)
ベアボーン:XS35 | 日本シャトル株式会社
前回のエントリーに続いて、Shuttle XS35にCentOSインストール。
CentOS 5.5(64bit)のDVDイメージはtorrent経由でしかダウンロード出来ず、ダウンロードが30分経ってもほとんど進んでいなかったので、手元にCentOS5.4(64bit)のインストールDVDがあったのでそれを利用してHTTP経由でインストールすることに。
USBの外付けDVDドライブで起動し、インストール画面に。手順としては http://www.glidenote.com/archives/185 ともとにHTTP経由でCentOS5.5をインストールする予定がNICを認識してくれず。
しかたないのでCentOS 5.4(64bit)のDVDからCentOS 5.4をインストール。
[Package Selection]の部分では[Server]を導入して再起動。
NICを使えるようにする
NICを認識させるのに下記ドライバが必要です。
ftp://driver.jmicron.com.tw/jmc2xx/Linux/jme-1.0.5.tbz2
他のPCでダウンロードしCD-ROMに焼いて、マウント
mount /dev/cdrom /mnt mkdir ~/tmp cp /mnt/jme-1.0.5.tbz2 ~/tmp cd ~/tmp tar jxvf jme-1.0.5.tbz2 cd jme-1.0.5 make install |
が、ここで再度問題発生。
make: *** /lib/modules/2.6.18-164.el5/build: No such file or directory. Stop. |
というメッセージが出て止まってしまう。kernel-headersなどが必要のようなので、
インストールDVDからrpmを導入します。
NICドライバをコピーするのに利用したディスクをアンマウント
cd ~ umount /mnt |
インストールDVDに入れ直して、マウント
cd ~ mount /dev/cdrom /mnt cd /mnt/CentOS/ rpm -ivh \ kernel-devel-2.6.18-164.el5.x86_64.rpm \ kernel-headers-2.6.18-164.el5.x86_64.rpm \ gcc-4.1.2-46.el5.x86_64.rpm \ gcc-c++-4.1.2-46.el5.x86_64.rpm \ glibc-devel-2.5-42.x86_64.rpm \ glibc-devel-2.5-42.i386.rpm \ libgomp-4.4.0-6.el5.i386.rpm \ libgomp-4.4.0-6.el5.x86_64.rpm \ compat-glibc-headers-2.3.4-2.26.x86_64.rpm \ glibc-headers-2.5-42.x86_64.rpm \ libstdc++-devel-4.1.2-46.el5.i386.rpm \ libstdc++-devel-4.1.2-46.el5.x86_64.rpm cd ~/tmp/jme-1.0.5 make install |
またエラーが出て止まる
jme.h:409: error: redefinition of 'ip_hdr' jme.h:414: error: redefinition of 'ipv6_hdr' jme.h:419: error: redefinition of 'tcp_hdr' |
redefinition ということなので、該当箇所をコメントアウト
vi jme.h |
jme.hの408~421行目をコメントアウト
// static inline struct iphdr *ip_hdr(const struct sk_buff *skb)
// {
// return skb->nh.iph;
// }
// static inline struct ipv6hdr *ipv6_hdr(const struct sk_buff *skb)
// {
// return skb->nh.ipv6h;
// }
// static inline struct tcphdr *tcp_hdr(const struct sk_buff *skb)
// {
// return skb->h.th;
// } |
make installとjmeの読み込み
make install modprobe jme |
ネットワークに接続するための下記3ファイルを作成。
/etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network /etc/resolv.conf |
設定内容の中身は下記のような感じです。
cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.11.40 NETMASK=255.255.255.0 GATEWAY=192.168.11.1 |
cat /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=xs35.glidenote.local |
vi /etc/resolv.conf nameserver 192.168.11.1 nameserver 8.8.8.8 |
ifupでネットワークが利用出来るようにする。
ifup eth0 |
yum updateをかけてCentOS 5.5に。
yum check-update yum -y update /sbin/shutdown -r now |
再起動後に、カーネルのバージョンが上がって再度NICを認識しなくなるので
cd ~/tmp/jme-1.0.5 make install modprobe jme ifup eth0 |
でssh経由で操作が可能になります。
発売して間もない筐体にCentOSを入れるのは予想していたとおり面倒です。試していませんがFedoraやUbuntuなら最初からNICを認識したかもしれません。
余談ですが、xenを導入した際もカーネルが変わるためにjmeのインストールと読み込みの作業が必要になります。今回利用したjme-1.0.5系のファイルは削除せずに保存しておくのが吉です。
ディスプレイとキーボードを外して無音サーバの出来上がり!
下記のサイトが非常に参考になりました。有益な情報ありがとうございます
Shuttle XS35買ってきたよ CentOSインストール: 今日を生きた証

