OpenBlockS をほげってみる

Misc 階層に戻る  |  ホームに戻る

1. 前置き

※以下の口上は2006年2月に書いた内容です。 2章以降は 2008/01 に最新の情報を反映するよう書き換えました。 古い内容のページ も一応残してあります。

最近、自宅の WAN 接続環境がようやくグローバルアドレス割り当て (マンション型) になって喜んでいたのですが、 同時に同一セグメントのホスト (多分同じマンション内) から がんがんウイルスが飛んでくるようになってしまって参りました。

とりあえず何らかのルータを入れて L3 的に隔離してしまおうということで、色々な製品を検討しました。

玄箱:
Linux 箱として色々活用できそうだし、安くて良いのですが、 イーサネットの口が一個しか無いのでルータとしてはどうかと。 USB で増設することも出来るのでしょうが、 どうせなら最初から2個口がでてるほうが良いでしょう。
YAMAHA RTX1100:
機能的には魅力的だし、YAMAHA ルータの勉強をするには持って来いですが、 個人で買うには値段が高すぎて…
NetScreen 5GT:
同上。 IPSec トンネルを掘るには一番簡単そうで、ぜひ一台欲しいのですけどね。

結局、小型 Linux 箱として有名な OpenBlockS を選びました。 ノート PC を使ってルータを作ることも考えたのですが、 居間の棚の上に置くには B5 サイズのノートブックでも大きいのです。

…以上のような経緯で、 ぷらっとほーむの OpenBlockS266 を2005年12月に購入しました。 当初は mail / web サーバとしても利用していましたが、 その後、負荷のかかる部分は別サーバに分離することとして、 現在 (2008/01) はルータ / DNS / DHCP / PPTP / NTP サーバとして運用しています。

マシン:
OpenBlockS 266 (128MBモデル)
データストレージ:
CFカード ハギワラシスコム製 1GB

現在の運用では、必要とするストレージ容量が少なくなったため、 1GB の CF を搭載して運用しています。 過去に mail / web サーバとして利用していたころは容量が必要だったため、 普通の 2.5inch ハードディスクを搭載して約1年半運用しましたが、 結局壊れることはありませんでした。

2. Debian 化

1. Debian ユーザ環境の構築

色々サーバとして使いたいので、 いじりやすそうな Debian GNU/Linux を常用環境にすることにしました。

Debian 化の作業は極単純です。 ぷらっとホームのオフィシャルサイトから Debian etch ディスクイメージ をダウンロードできるので、それをストレージ上に展開するだけです。 先人たちの努力に感謝します。

ぷらっとホームのサイトに 詳細なドキュメント がありますので、ここでは書きません。

2. Debian 化参考リンク

3. クロス開発環境の構築

1. VMware Server に i386 SSD/Linux をインストール

Debian をインストールすれば使いたい機能は大抵揃うので、 そのままでも良いのですが、 カーネルにパッチを当てる必要があるときなどはどうしても ソースツリーをコンパイルする必要があります。 そこで Intel ベースの PC に SSD/Linux をインストールし、 OpenBlockS 用のバイナリをクロスコンパイルできるよう環境を構築します。 現在、私の手元では VMware Server 1.0 で環境を構築しています。

必要なものは以下の通りです。

VMware Server を利用して仮想マシンを作成します。 「File」メニュー→「New」→「Virtual Machine...」 を選択して新規仮想マシン作成ウィザードを開きます。

「Virtual machine configuration」では「Custom」を選択します (Typical ではディスクタイプを強制的に SCSI にされてしまうため)。

設定選択画面

「Guest operating system」では、OS は Linux、バージョンは "Other Linux 2.6.x kernel" を選択。

OS タイプ選択画面

仮想マシンの名前やアクセス権、CPU 数、メモリ割り当て、 ネットワーク接続については、好みのものを選択します。 メモリ割当量は、256MB 程度でいいでしょう。

「Virtual Disk Type」では IDE を選択します。 SSD/Linux のカーネルは、デフォルトでは LSI Logic のドライバを持っていませんので。

ディスクタイプ選択画面

ディスク容量については、とりあえずデフォルトの 8GB で足ります。 OS を丸ごとコンパイルするため、作業領域が必要になりますが、 コンパイル後のバイナリを含めたディスク使用容量は約 4GB 程度です。

ウィザードが終了したら、仮想マシンの設定を編集して、 CD-ROM デバイスに SSD/Linux の ISO イメージを指定します。

ここまで終了したら、仮想マシンを起動します。

BIOS 起動画面

上の起動画面で素早く Esc キーを押します。 すると下のような起動メニューが出るので、CD-ROM Drive を選択して起動します。

起動デバイス選択メニュー

最初に GRUB メニューが出ますので、 一番上の「Boot from CD」を選択してください。

GRUB 選択メニュー

CD-ROM からカーネルが起動し、以下の図のような login: プロンプトになります。 ユーザ名 root (パスワード無し) でログインした後、 画面の指示通り fdisk → sysinst を実行します。 詳しくはぷらっとホームのサイトの SSD/Linux User's Guide のセクション4「インストール」 を参照してください。

root ログイン画面

私の場合は仮想ディスクのサイズを 8GB にしたので、 / = 7.5GB、スワップ = 512MB にパーティションを切りました。

fdisk の完了

インストールセットはそのままデフォルトの選択として、 src (OS 全体のビルドツリー) は後で cvs にて取り出すことにします。

2. SSD/Linux の環境設定

インストールが終了したら、ネットワークの環境を整備します。 私の場合は自宅内で DHCP サーバが動作しているので、/etc/rc.conf に 以下のような行を追加します。

# vi /etc/rc.conf
dhclient=YES
hostname="ssdlinux.hoge.local"
inetd=NO
sshd=YES
portmap=NO

また、root のシェル環境を設定しておきます。 以下のような環境変数の設定が必要です。

# vi .bashrc
export HOSTTYPE
export MACHTYPE
export SHELL
export CVSROOT=:pserver:anoncvs@cvs.plathome.co.jp:/cvs/ssdlinux
export PATH=/usr/cross/mipsel/bin:/usr/cross/powerpc/bin:/usr/cross/x86_64/bin:$PATH

# vi .bash_profile
. $HOME/.bashrc

ここでいったんリブートします。

anonymous cvs が利用できる環境も整えておきましょう。

# cvs login
Logging in to :pserver:anoncvs@cvs.plathome.co.jp:2401/cvs/ssdlinux
CVS password: anoncvs
cvs login: warning: failed to open /root/.cvspass for reading: No such file or d
irectory

/root/.cvspass が無いので開けないという警告が出ていますが、 一度 cvs login すると自動的に生成されますのでこれで OK です。 以降、ぷらっとホームの anonymous cvs サーバに自動ログインできます。

あとは BSD make の変数を制御する /etc/mk.conf を好みで編集します。 私の場合は以下のようにしました。

# vi /etc/mk.conf
HAVE_CVS?=      no
IPV6?=          no

bmake release しただけで cvs update されるのは性に合わないので、 HAVE_CVS は no。また自宅環境では IPv6 を利用できないので、 IPV6 は no にしてあります。

最新のソースを cvs で取り出します。

# cd /usr
# cvs checkout -P src

ソースが入手できたら、いろいろいじった上でビルドします。

# cd /usr/src
# bmake build

今後、ソースを最新に追従させるには以下のようにして、またビルドします。

# cd /usr/src
# cvs update -Pd
# bmake build

OpenBlockS266 のフラッシュイメージを作って書き込む手順は こんな感じ。

# cd /usr/src
# bmake CROSS_BUILD=powerpc OPENBLOCKS=obs266 DESTDIR=/home/dest build
# cd /usr/src/distrib
# bmake CROSS_BUILD=powerpc OPENBLOCKS=obs266 DESTDIR=/home/dest bootfs
# scp powerpc-obs2xx/product/treeboot/zImage.initrd.treeboot-product openblocks:

openblocks# flashcfg -f zImage.initrd.treeboot-product

上で指定している /home/dest は適当です。 バイナリの出力先なので、それなりに容量のあるパーティションならOK。

ユーザランドを Debian 化している場合は、フラッシュ上の SSD/Linux 0.4 からカーネルモジュールを /lib/modules の下にコピーする必要があります。

obs266# mount /dev/ram0 /mnt
obs266# cp -a /mnt/lib/modules/2.6.12 /lib/modules
obs266# umount /mnt

OpenBlockS266 のフラッシュメモリ容量は 8060928 バイトですので、 これを超えるようなイメージができてしまった場合は、 カーネルオプションを外すなどして調整してください。 オーバーサイズのイメージは当然フラッシュに書き込めません。

3. SSD/Linux 関連リンク

5. OpenBlockS の活用

今現在我が家では OpenBlockS266 を DNS / DHCP / NTP サーバとして運用していますが、ごく普通の Debian 箱としてアプリケーションを載せただけなので、 特筆するようなことはありません。

PPTP サーバとしても利用していますが、現在の 2.6.16 カーネル用 デフォルトコンフィグを使えば、カスタマイズせず利用できます。 過去のカスタマイズ話は 別ページで。

6. OpenBlockS 参考リンク

Misc 階層に戻る  |  ホームに戻る

Last modified: Sun Jan 27 23:56:22 JST 2008
You are the 140003 th visitor.