2009年03月16日

SheevaPlug Dev Kit

スラドで、電源アダプタ型Linuxサーバ、$99で発売という記事が出ていたのは知っていたのだが .. LS-XHL の方が Disk も付いていて良いじゃないか なんて勝手に思っていた。

だが、Marvellのページの Buy Now を押して飛んでいく先の Featuresを見てびっくり。

メモリが 512MB もあるではないか! LS-XHL で 256 MB だから、倍もある。開発環境では メモリは重要で 足りないと極端に遅くなることもあるので、 多いほうが嬉しい。

それに加えて、FT2232D が付いていて、シリアルコンソールと JTAG になるらしい。

ブロック図



この 写真ではよくわからないが、どうも サイドの 穴が USB Mini-B らしい。

JTAG が付いているなら、Flash への書き込みが失敗することを恐れることもない。

開発キットとしては、すごく良いような気がしてきた。
posted by すz at 07:39| Comment(0) | TrackBack(0) | LS-XHL

2009年02月16日

LS-XHL 購入

LS-XH500Lを購入した。

購入目的は、ビルドマシン。-- 1.2GHz もの高クロックで動作し、メモリも 256MB も載っているという ARM マシンは、こいつの他には(たぶん?)ない。だから ビルドする環境はぜひコイツの上に構築したい。

どうやって、そういう環境を作るか。

fedora core 6 , 8 , 10 を ARM に移植したものが公開されている。
 → http://ftp.linux.org.uk/pub/linux/arm/fedora/
ここの rootfs-f8.tar.bz2 and/or rootfs-f10.tar.bz2を取ってきて ホストマシンで、bunzip2 しておく。

で、コイツに telnet して、tar -xvpf xxx.tar で展開し、chroot すれば、最初のビルド環境になる。

問題はどうやって telnet できるようにするか?

1. 確実な方法

    LS-XHL を分解して、 ハードディスクを取り出し、USB ハード DISK ケースに入れる。

    EFI GPT パーティションを扱え かつ xfs をサポートしている Linux マシン(ubuntu 8.10は OK) に接続して、/etc/shadow と /etc/init.d/rcS を編集する。

    telnet 有効化/ root のパスワードを潰すが参考になる。


この方法は確実だ。ただし、LS-XHL を分解すると 保証はもちろんなくなる。その上 ツメをいくつか壊してしまう可能性がかなりある。(私は やってしまった。)

2. やってみる価値がある方法

    ファームウェア 1.03 をダウンロードし、↑の改変を行ったものをインストールする。
    ( 改変する方法は、ファームウェア を実行して出てくる ファイル名で、ググれば 見つかる。)

    改変したものを LSUpdater.exe で インストールしたいわけだが.. ファームウェアは 最初から 1.03 で通常の方法では、再インストールできない。

    tftpboot を使ったクリアインストールなら、ファームウェア 1.03 の再インストールができる。

    手順は、次のとおり

    1) Web のシステム→初期化 メニューから ディスク完全フォーマットを実行して、ハードディスクを初期状態にする。

    2) BUFFALO LinkStation HDD換装方法を参考にして、ファームウェアのインストールを行う。
    (LS-XHL の場合、赤く点滅しているはず。ftpd の準備が出来たら、FUNCTION ボタンを押すこと。そうすると 青の点滅に変わり tftpbtoot が開始される。)


まず、この方法も危険である。HDD換装方法をみて簡単そうだと思えなければやるべきではない。あと分解する覚悟は必要。

ちなみに、ハードディスクの初期状態にするのは、/usr/local/bin/zerofill.sh を実行して ディスクを全部 0 で埋めている。DISK 全部に書くので時間がかかる。中途半端に停止させるのはまずいので、最後まで実行すべき。

    おまけ: 試行錯誤することになるかも知れない。そのたびに 数時間かかるのではやってられないので、zerofill.sh も 編集しておくと良いかも知れない

    dd if=/dev/zero ... bs=8M

    dd if=/dev/zero ... bs=1M count=100 conv=sync

    ただし、zerofill.sh は、initrd のほうにある。mkimage とかが使える環境を持っていないと 無理。


結局のところ、分解するはめになった。2 の方法はうまくいくかどうかはよくわからない。

さて、とにもかくにも telnet できるようになり、chroot をやってみた。

rootfs-f8.tar, rootfs-f10.tar ともに OK 。

実をいうと、以前 LS-GL でこれをやってみたのだが、カーネルが古くて chroot できなかった。(fc6 は OK 。だが fc8 では ABI が変わったので NG。)。で、面倒になって放置したのだ。

おそらく 玄箱/PRO も同じ理由で NG のはず。LS-CL は 2.6.22 なので、おそらく OK。




なにを ビルドしたいのか?

ビルドしたいのは、RHEL5 相当のもの。サーバなので、全部をビルドするのでなく、必要なものだけにする方針。

RHEL5 の gcc は、4.1.2 なので、ベースにするのは、同じ 4.1.2 を使っている fedora core 8 にすることにする。

gcc や binutils あるいは rpm のバージョンがお互いに近いから、あまり困難はないと思える。まぁ、どうなるか分からないが まずは始めてみることにする。

といっても 最初からつまずく。

rpmbuild が rootfs に入っていないのだ、結局 rpmbuild を動かせるまで 試行錯誤しながら rpm の ダウンロードを繰り返す。

とりあえず rpm やら gcc を最新にしてインストールして rpmbuild できるようにしてみたところ .. ビルドされるアーキテクチャ は、armv5tejl になった。-- オリジナルの rpm は全部 armv5tel 。armv5tejl でいいのか? 少々疑問だが、これで作ってみることに。



おまけ LS-XHL はどれぐらい速い?

ちょっといにしえの dhrystone を引っ張り出して比較してみた。
 ソースコード : http://nmj.sumomo.ne.jp/arc/dhrystone.c

結果: コンパイルはすべて gcc -O2 、3 回実行して最速を採用

LS-XHL (ARM ORION6 1.2GHZ) 1519756 (gcc-4.1.2)
LS-GL (ARM ORION5 400 MHz) 431778 (gcc-4.1.1)
kurobox/HG (PPC MPC8241 266MHz) 687757 (gcc-3.4.5)
Pentium III 1GHz 2118644 (gcc-3.3.2)
eeePC 701SD(Celeron-M 900MHz) 3318258 (gcc-4.3.2)

コンパイラの性能が入ってしまうし、そもそも dhrystone だし、CPU 自体を比較するものではない。... が、こんなものか。

LS-XHL は、LS-GL の 3.5 倍。クロックの差以上に速くなっている。gcc の最適化の差? 

ちなみに、LS-GL (ARM ORION5 400MHz) は、PPC 266MHz に負ける。ORION5 は 同時に 2 命令実行できるはずなのだが、それ用に最適化できないと あまり速くない(らしい)。

それはともかく、LS-GL の 3.5 倍も速いので満足。

Pentium III 1GHz と比べると 70% ぐらいの性能。まぁ、比較できるレベルにまでなっているから、ARM も速くなったものだ。

それにしても、Celeron-M ってこんなに速いのか? ... なにか間違っているのかも。ひょっとして、gcc-4.3 でチート入ってる?

あと、ORION5 とか ORION6 とか 書いたのは、Linux カーネルの config を元にした。記憶によると ORION というのは SoC の名前(= CPUの名前) で、Feroceon とかは Xscle みたいなアーキテクチャの名前で ARM926EJ-S 互換?。で、arch として認識しているのは、armv5tejl とか .. arm + v5 + 追加命令セット の命名規則。




ビルドがすごく遅いことに気が付いた。

ビルドをちょっと止めて、top を実行してみたら ... びっくり。

twonkymediaserver と mt-daapd が仲良く 50 % づつ消費しているではないか。

これはいったい?

とりあえず メディアサーバを止めることで、twonkymediaserver は止まったが、mt-daapd が 100% になった。

しょうがないので、kill -TERM で停止させた。




追記: 2008/3/18

USB DISK (500G) をつないで使っていたのだが、USB DISK に ガツーンと 重量のあるものをぶつけてしまった。となりに あった LS-XHL も 将棋だおしのごとく 衝撃を与えてしまった。

で、USB DISK は、電源を入れると カッ、カッ、カッ .. と言うだけの存在になってしまった。ついでに LS-XHL もなんかおかしい。

LS-XHL のハードディスクを 初期化したくて、システム→初期化→ディスク完全フォーマットをやってみた。

やってみてわかったのだが、ディスク全体に 4 回書き込む。1 回目は 0 書き、2回目と 4回目は 1書き。3 回目は見逃したのでわからない。 ディスク全体といっても データパーティションをきれいにするだけで、システムは初期化しなかった。

システム側もおかしいらしく、まだなんかおかしい。

しょうがないので、telnetd を仕込んだ 1.04β をインストールしてみたのだが .... 失敗。

よくわからないのだが、/etc/shadow が元にもどっている。

またカラ割りするかどうか悩んだのだが、admin で login できることがわかった。ただし、admin は root ではないので出来ることに制限がある。

いろいろ探してみると、/dev/sda が書き込める状態なのを発見し、dd で壊すことによって、tftp boot できる状態になった。

前回と同じように、ちゃんと仕込んだ ファームウェア 1.03 をインストールすることで、ようやく元に戻せた。

いろいろビルドしていたものが吹っ飛んでしまった。... のだが なんか失敗していて変だったので、最初からやりなおす良い機会かも。
posted by すz at 01:16| Comment(0) | TrackBack(0) | LS-XHL

2009年02月09日

お気に入りのNAS

Aspire One や eeePC 701SD-X を買うまで実に長い期間 PC というものは買っていなかった。

でも、かなりのお金をPC関係につぎ込んで来た。何を買っていたかというと NAS 。

玄箱/HG と LinkStation HD-HGLAN シリーズ 合計 6 台 ( 1台は故障。2 台は予備。3 台が稼動中) あと、TS-TGL/R5 シリーズとか もういろいろ。

稼動しているマシンには、RHEL4 のソースコードを取ってきて自分でビルドしたお手製の ディストリビューションをインストールしている。稼動中のマシンのうち 2 台は、rsync でミラーする運用で、あとの一台は、ビルドしたり実験したりする用。

予備もあるし、当分使っていく予定。ただ... 遅いことと、IDE の大容量 DISK は今後発売されなくなっていきそうなのが不満点。

次は ARM だとばかり、Marvell Orion ベースの 88F5182 を採用した LinkStation LS-GL シリーズやら玄箱/PRO やらを買っていたのだが、絶賛放置中 のうちに、次世代が出てきてしまった。

玄箱をハックしようのこのページによると、LS-XHL シリーズは、88F6281 採用で、メモリも 256MB に増えている。クロックは、400MHz から 1.2GHz ? このページでは、bogo Mips が 4.5 倍だそうだから、(コンパイラの改善とかで) クロック以上に速くなっているかも。

次世代は、TeraStation シリーズの方も出ている。TS-XL/R5シリーズ。シーケンシャルリードが 高速になっているから、CPU がグレードアップしているはず。それに加えて、同時アクセス時の性能がアップしているので、メモリも増えているはず。--- たぶん LS-XHL シリーズと同じになったのだと思う。さらに、Gigabit イーサネットが 2本 -- 2台接続してレプリケーションするときに使うようになっているらしい。

つぎのお気に入りはこれになりそう。最近は ARM も メジャーなディストリビューションが対応しつつあるので、自分ディストリを作るにしてもあまり困難はないかも知れない。

ほかの選択枝としては、Atom を採用したマシン。ベアボーンもだいぶ安くなっているらしいし、FreeNAS とか openfiler とか使って NAS に仕立てても良いかも知れない。

ただ、Atom はいじる楽しみがあまりないのだ。すんなり動いてしまうだけでなく。CPU に面白い機能がない。最新の Linux カーネルを見ると、DMA Engine という機能が搭載されていて、MPC8241 とか Marvell Orion とか対応している。こういうのを試してみたりするのも楽しみだったりするのだ。

    MPC8241 が対応しているというのは間違い。対応しているのは、MPC85xx 。ただし、機構が似ているので 対応はできるはず。
    あと、面白いのは、AVR32 がちゃっかり対応していること。

ちなみに LS-XHL シリーズの基板写真(玄箱をハックしようより)

下位モデルの LS-CL シリーズ(400Mhz 128MB)の基板写真

すごくコンパクト。LS-CL は 5000 円ぐらい安いみたいだし、シリアルコンソールにつなげられたりして、改造し易そう。ビルドとかするのには、LS-XHL を使いたいけど、使うだけならこっちの方が良いかも。

メモ: 09/02/09

たとえば、NTT-X Store だと、LS-XH1.0TLは、23350円。LS-XH500Lは、16710円。差額が 6640 円もある。たとえば 1TB のハードディスク WD10EADSは、7500円ぐらい? 将来的に 1T といわず 1.5T とか 2T にしたいから、500G を買っておくか。
posted by すz at 04:23| Comment(0) | TrackBack(0) | LS-XHL