http://blog.glidenote.com
に移転しました

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インストール: 今日を生きた証

Comment Pages

There are 2 Comments to "Shuttle XS35にCentOS5.5を導入して無音サーバ構築 (CentOS導入編)"

Write a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

About

@glidenote

このブログは個人的なものです。ここで述べられている内容は私の個人的な意見に基づくものであり、私の雇用者に一切の関係はありません