お手軽にSEIL/x86を使うためalix2d13にインストールしてみた


2011年6月1日からNTT東西のフレッツ光ネクストで、IPv6「トンネル方式」の提供が開始されました。私はちょうど引っ越してフレッツ光ネクストを引いたところでしたので、PPPoEでIPv6でも接続してみることにしました。

といっても、私のところに設置された、ひかり電話対応のルータ(ONU)は、IPv6でPPPoEできそうにありません。
調べてみたところ、NTT東西の「IPv6トンネル対応アダプタ」を導入するか、CiscoやYamaha、Juniperといったお高めのルータを利用しなければいけなさそうです。もちろん、IIJさんのSEILというルータでもいけるのですが、どれもこれも7万円〜といったところです。とりあえずIPv6してみようというには大きなオモチャ代になってしまいます。
もちろん、FreeBSDやLinuxをインストールしたマシンを用意すればルータを自作することができるのですが、ルータとして使用できるようなハードウェアを用意するのは、ちょっと面倒でした。

そんなわけで、800円でキーが手に入る SEIL/x86 を使って、まずは遊んでみることにしました。
といっても、結局のところルータとして使用できそうなハードウェアを買ってしまったのです。

まずは箱(ハードウェア)選びです。
私の電子工作ライフを快適にしてくださっているスイッチサイエンスさんで、先日からALIXという製品の取り扱いが始まっていたのを思い出しました。x86なマシンで、たしかルータに使うのに向いた感じだったなというのを思い出したのです。
FreeBSDやLinuxが動くはずなので、今回の要件は満たせます。
ということで、スイッチサイエンスさんのWebを見てみると、ありました。ALIX.2D13です。なんと、13,800円と安いです。LANポートも3つあって、色々使えそうです。

このあと気付いたのですが、せっかくなのでGbEを積んだマシンがよかったのですが、FE(100Mbps)のインターフェースしか積んでいませんでした。まぁ、安いのでご愛敬で。
ちなみに、一緒にケースもポチっと購入してしまいました。1,200円で、マザーと合わせても15,000円です。

大きさはこんな感じ。ちっちゃいですねー。比較用にSuicaを置いてみました。

続き↓

スイッチサイエンスさんのWebにも書いてあるのですが、この製品にはACアダプタが付いていません。
なので、オススメに従って、スイッチサイエンスさんとこに商品を受け取った帰りに、秋月電子さんで12V 1Aの超小型ACアダプタを買ってきました。

これは600円。安い安い。

alixは、ハードディスクを内蔵するのではなく、コンパクトフラッシュ(CF)をドライブとして使用するようになっています。
これも秋葉原で適当に、セール品だった16GBのものを購入してきました。SEIL/x86のイメージは32MBほどしかありませんので、手持ちの使わなくなった小さな容量のものを使っちゃえば追加投資は要りません。

筐体を組み立てたら、CFにSEIL/x86を書き込まなければいけません。
SEIL/x86は、ここあたりからダウンロードを申し込みできます。
ちなみに、もちろん「新規ダウンロード」を選んでください。
最初は、SEIL/x86はVMwareのイメージしか公開されていませんでしたが、「実験的提供」ということで”diskimage形式”の提供もされるようになりました。
どっちでもいいですが、せっかく提供されたのでdisk image形式で試してみることにしました。
ddはとても簡単です。
いつも使っているMacに、メモリカードリーダにCFを差し込んで、USBでCFをMacに接続してやりました。私の環境では、/dev/disk4だったので、

% diskutil unmount /Volumes/NO\ NAMEFORR/

として、FATフォーマット済みだったが故にmountされていたCFをunmountしてやってから、

% sudo dd if=bootdisk.img of=/dev/disk4 bs=33554432

として、書き込んでやりました。
あ、ddは操作を誤ると非常に危険なコマンドですので、CFのデバイスがdiskいくつなのかは5回くらい確認してから実行してくださいね。

bsは設定してもしなくても良いと思いますが、lsして得たbootdisk.imgのファイルサイズを指定しました。
あ、ちなみに私が作業したのは、SEIL/x86 Fujiとやらで、seilx86-180-bootdisk.zipというアーカイブに含まれていたものです。

ddして書き込んだCFをALIXに差し込み、ALIXのシリアル端子とUSBシリアルをシリアルのクロスケーブルで接続してやります。
適当なシリアルターミナルで、38400bps, 8ビット, パリティーなし, ストップビット1で接続してALIXの電源を入れましょう。
すると普通にブートします。

これだけで完了ですが、提供されているSEIL/x86のイメージは、モニタをコンソールとして使うようになっています。でも、ALIXにはシリアルコンソールしかありません。
なので、SEIL/x86のブートローダから先は、ALIXでは何が起こっているかネットワークからしか確認する手段がないのです。
というか、ルータはシリアルコンソールでしょ!
ということで、シリアルコンソールでSEIL/x86が使えるようにしました。

まず、VMwareで適当にNetBSD 5.1の仮想マシンを用意しました。使いたいのはmountとviだけなので、特に色々インストールしてやる必要はありません。
一旦ALIXの電源を落として(ACアダプタのケーブルを抜いてしまえばいいです)、CFカードを取り外してやります。
NetBSDを起動して、さきほどのCFカードをUSBメモリアダプタを介してVMwareを動かしているマシンに接続してやります。で、VMwareを操作して、CFがNetBSDから見えるようにしてやってください。
あとは、

# mount /dev/sd0a /mnt
# vi /mnt/boot.cfg

として、CFにboot.cfgというファイルを用意してやります。
中には、

console=com0
speed=38400

と書いておきました。
で、編集を終えたら、

# umount /mnt

として、CFをアンマウントしてやりましょう。
USBを引っこ抜いて、CFをALIXに戻してやります。すると、SEIL/x86 on ALIXがシリアルコンソールでアクセスできるようになります。

あ、ちなみに、向かって一番右(ACアダプタのソケットに一番近いポート)がSEIL的にLAN0でした。

ということで、ALIX.2D13 13,800円 + ALIX.2D13用ケース 1,200円 + 秋月12V1A ACアダプタ 600円 + SEIL/x86 機能キー 800円 = 16,400円でFEx3のipv6喋れるルータができました。
すごいお得です。ちょっち100Baseのみなのが残念ですが…

あとは、いよいよSEIL/x86でIPv6 over PPPoEなのですが、それはまた次のエントリで。