玄柴(KURO-SHEEVA)とは
玄柴(KURO-SHEEVA) (以下、玄柴で「くろしば」と読む)は、玄人志向 が2009年12月に発売した"CHIBI COMPUTER DEVELPMENT KIT"[1] です。Webサイト には「本製品は、SheevaCPUコア搭載プロセッサを使った組込みLinux機の学習と探求を目的とした開発実験キットです」と記載されています。これが用途ということなのでしょう。
ベースは69回 と70回 で取り上げたSheevaPlugで、以下の改良を加えたのがこの玄柴です。
eSATAポートを追加
Ubuntu 9.04インストール済み
uBootがアップグレード済み
色が黒[2]
逆に言えば、これぐらいしか違いがありません。
報道によると、今のところ(2009年12月中旬現在)50台しか市販されていないようです。筆者は今回運よく手に入れることができましたが、この記事の公開時点で手に入れるのはきわめて困難であるといわざるを得ません。2010年になればまた流通するようなので、欲しい方はこまめに情報をチェックしてみてください。
玄柴の設定には、接続元(以後、母艦と呼ぶ)となるPCが必要です。今回はUbuntu9 .10を使用しますが、9.04でも同様に動作するはずです。Windowsでも可能で、その方法は添付CD-ROMのマニュアルに記載されています。
購入前の注意点
せっかくUbuntu 9.10がリリースされているのでこれを使いたいところではあるのですが、玄柴(もちろんベースとなったSheevaPlugも)は9.10非対応 です。9.04のサポート期間が切れたら、Debianなど別のOSに入れ替える必要があるかもしれません。
今回の用途
せっかくeSATAポートが追加されたので、eSATAでHDDを外付けしてNASサーバに使うことを今回のRecipeで説明していきます。筆者は実際にその用途で購入し、KURO-BOX/PRO をリプレイスしようと考えています。
初期セットアップ
だいたい69回 の説明と一緒です。もちろんインストールの部分はまるまる飛ばせます。
箱から出して電源とLANケーブルとUSBケーブルを接続したら、母艦のUbuntuマシンで以下のコマンドを実行してください。
$ sudo modprobe ftdi_sio vendor=0x9e88 product=0x9e8f
次は、以下のコマンドを実行します。
$ screen /dev/ttyUSB0 115200
69回ではttyUSB1になっていましたが、筆者の環境ではttyUSB0でした。ttyUSB0で上手く接続できない場合は、ttyUSB1にしてみてください。
初期ユーザ名/パスワードはSheevaPlugと同じくroot/nosoup4uです。セットアップの部分を丸ごと飛ばせるので、非常に楽だということがわかかっていただけるかと思います。
なお、添付のUSBケーブルは非常に抜けやすく、もろいです。接触が悪いのでコネクタを頻繁にいじっていたら、壊れてしまいました。添付品と同じUSBケーブルをお持ちでない場合は、1本買っておいた方がいいかもしれません。
ネットワークの設定
せっかくLANケーブルを接続しても、初期設定のままではネットワークに接続することができません。ひとまずここではDHCPでIPアドレスを設定する方法を紹介します。
/etc/network/interfacesを次のように設定します。
/etc/network/interfaces
auto lo
iface lo inet loopback
#address 127.0.0.1
#netmask 255.0.0.0
auto eth0
iface eth0 inet dhcp
# /usr/share/doc/ifupdown/examples for more information.
#はコメントアウトなので、1行まるごと削除しても問題ありません。
次に/etc/dhcp3/dhclient.confを開き、以下の行をコメントアウトします。
/etc/dhcp3/dhclient.conf
supersede domain-name-servers 127.0.0.1
この設定を行わないと、DHCPでIPアドレスを取得してもDNSサーバが127.0.0.1(すなわち玄柴自身)になり、名前の解決ができません。
ここまでできたら、ネットワークを再起動します。
# /etc/init.d/networking restart
再起動後にifconfigを実行し、IPアドレスが正しく取得できているか確認してみてください。
apt-getを実行する
apt-getを実行してパッケージを最新版に更新したいところですが、事前にやるべきことがあります。
/etc/fstabを見ると、/var/cache/aptをtmpfsでマウントしていることがわかります。すなわち、再起動するたびに/var/cache/apt以下はクリアされます。NANDの容量が少ないことを考えると正しい設定といえますが、フォルダが足りずにapt-getに失敗します。apt-getを行う前に次のコマンドを実行してください。
# mkdir -p /var/cache/apt/archives/partial
あとは普通に、以下のコマンドを実行してください。
# apt-get update
# apt-get upgrade
再起動するたびにフォルダを作り直す必要がありますが、それほど頻繁に再起動する類のものではないことを考えると、自動的にフォルダを作るようなことをしなくてもいいのではないでしょうか。というわけで、今回はその方法を紹介しません。
avahiをインストールする
DHCPで運用するのであれば、avahiをインストールしてIPアドレスをわかりやすくすると便利です。avahiはリポジトリにあるので、普通にインストールするだけです。
# apt-get install avahi-daemon
ただし、初回のみavahiの起動に失敗するので、dbusを再起動してください
# /etc/init.d/dbus restart
これにより、例えばsshでログインする場合、以下のコマンドで接続できるようになるため、IPアドレスを意識する必要がなくなります。
ホスト名の変更
これも70回 に書いてあるとおりですが、/etc/hostnameを変更してホスト名を別のものにします。たとえばdebianになっているものをkurosheevaなどとすればいいでしょう。ついでに、/etc/hostsを以下のように設定しておくとよりよいです。
/etc/hosts
127.0.0.1 localhost
127.0.0.1 kurosheeva #設定したホスト名
#91.189.88.36 ports.ubuntu.com
sudoを使用するとホスト名が解決できないといわれますが、2行目を追加するとそのエラーが出なくなります。
なお、ホスト名を変更した場合は、素直に再起動するといいでしょう。
rootのパスワード変更、初期ユーザの作成、ロケールの生成
これらは、70回の3ページ目 を参考にして行ってください。必要に応じて、固定IPアドレスの設定も行ってください。
eSATAでHDD接続
ようやく本題にたどり着きました。eSATAのHDDは別になんでもいいと思いますが[3] 、今回はRAID1に対応したHDDケースを使用し、1.5TBのHDDを2台接続することにしました。ケースはコレガのCG-HDC2EU3100 で、HDDはWestern DigitalのWD15EADS を2台で構成することにしました。HDDはSeagateのST31500541AS でも認識することを確認しています。どちらかお好みの方を購入してみてください[4] 。
ケースを組み立てて[5] 電源を入れ、eSATAケーブルを接続して再起動し、ログインします。もしログインできない場合は、何らかの原因でHDDが正しく認識されていないと考えられるので、そのあたりを注意して調べてみましょう。
ログイン後にdmesgコマンドで正しく認識されていることを確認し、パーティションの作成とフォーマットを行ってください。
正しく認識されている例(dmesgの抜粋)
scsi0 : Marvell SCSI to SATA adapter
scsi1 : Marvell SCSI to SATA adapter
scsi 1:0:0:0: Direct-Access WDC WD15EADS-00P8B0 01.0 PQ: 0 ANSI: 5
sd 1:0:0:0: [sda] 2930277152 512-byte hardware sectors (1500302 MB)
sd 1:0:0:0: [sda] Write Protect is off
sd 1:0:0:0: [sda] Mode Sense: 23 00 00 00
sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:0:0: [sda] 2930277152 512-byte hardware sectors (1500302 MB)
sd 1:0:0:0: [sda] Write Protect is off
sd 1:0:0:0: [sda] Mode Sense: 23 00 00 00
sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sda:
sd 1:0:0:0: [sda] Attached SCSI disk
パーティションの作成にはcfdiskコマンドを、フォーマットにはmkfs.ext3コマンドを使用します。
# cfdisk /dev/sda
# mkfs.ext3 /dev/sda1
図1 cfdiskの実行中。主としてTabキーとEnterキーを使用する
図2 mkfsの実行中。容量が大きいとフォーマットにも時間がかかる
cfdiskのインターフェースはやや特殊で取っつきにくいので、母艦に接続してGPartedをインストールしてパーティションの作成とフォーマットを行うのもいいでしょう。その際は、USB接続でもかまいません。
起動時に自動的にマウントするよう、/etc/fstabに設定を書き込むと便利です。いまどきのUbuntuのようにUUIDでパーティションを指定するようにします。
# vol_id /dev/sda1
実行後、ID_FS_UUIDの行をメモしておきます。そして、/etc/fstabを開き、以下のように記述してください。なお、このUUIDは例なので、メモしたものに置き換えてください。また、マウント先(この例だと/media/share)は事前に作成しておいてください。
/etc/fstab
#/dev/sda1
UUID=1baf2cd0-5b03-4096-95c9-52315ad815ee /media/share ext3 relatime 0 0
以下のコマンドを実行し、マウントできるかどうかを確認してください。
# mount -a
なぜUSBではなくeSATAを使用するかですが、USB(もちろんUSB 2.0)だと速度がボトルネックになり、玄柴の能力が発揮できない可能性があるからです。実際に詳しく検証したわけではないので断言はできませんが、BUFFALOのNAS がUSB接続のHDDよりも速いと謳っていることを考慮すると(そしてこれと同じCPUを使用していることを考慮すると) 、わりと信憑性があるのかなと思っています。
あとはSambaの設定などが残っていますが、ここでは省略します。
以上のように、玄柴はかなり敷居が低くなっています。価格は16,800円とSheevaPlugよりは割高ですが、「 組込Linux機の学習と探求を目的」に1台いかがでしょうか。もっとも、今後どの程度容易に入手できるのかという問題はありますが……。