Sirius -旧ブログ、更新されません-

<< 前のページ | 次のページ >>

2007年1月26日(金) 00:36

make の作成

さて、make を何とかしないといけません。以前、HD-LWG のときに telnet を Debien から持ってきたのを思い出し、Debien のパッケージを探しました。arm 用の make もありましたが、glibc のバージョンが合わず動きません。

じゃあ、クロスコンパイルをしようと、設定したのですがうまくいかず、10 分で挫折。(オイッ!)

そのとき、まちがえてパスの設定を変更せずに PC で動く make をコンパイルしてしまいました。
うん?ひょっとして…!
このときの make の出力を見てみよう。


if gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DLIBDIR=\"/usr/local/lib\" -DINCLUDEDIR=\"/usr/local/include\" -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT ar.o -MD -MP -MF ".deps/ar.Tpo" -c -o ar.o ar.c; \
        then mv -f ".deps/ar.Tpo" ".deps/ar.Po"; else rm -f ".deps/ar.Tpo"; exit 1; fi
if gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DLIBDIR=\"/usr/local/lib\" -DINCLUDEDIR=\"/usr/local/include\" -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT arscan.o -MD -MP -MF ".deps/arscan.Tpo" -c -o arscan.o arscan.c; \
        then mv -f ".deps/arscan.Tpo" ".deps/arscan.Po"; else rm -f ".deps/arscan.Tpo"; exit 1; fi


このコマンドをそのまま LS-GL で実行してやれば…。

% make | tee MAKEOUT

で PC 上でコンパイルして画面出力を MAKEOUT に保存します。余分なメッセージをエディタで削除し、LS-GL に持ってきます。

$ ./configure && sh MAKEOUT

……。できました。いいのか?こんなので。

ちょっと不安なので、出来上がった make をパスの通った場所へ移動しもう一度作ります。

$ make distclean
$ ./configure && make

make distclean は完全にクリーンな状態に戻します。
出来上がりました。サイズを見てみると最初の make が 125740 バイトで二番目の make が 340650 バイトでした。やっぱり何かが違っていたようです。

root になってインストール
# su
# make install

試しにもう一度最初から作り直してみましたが、サイズは同じでした。完了。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月25日(木) 01:27

include ファイル

Linkstation wiki のセルフ開発環境の中に入っていなかった include ファイルは、クロスコンパイル環境の中に入っていたものをコピーしました。
arm-gnu.tar.bz2 を展開したときの

arm-gnu/buffalo_ls_gl/sysroot/usr 下の include をすべて /usr/include へコピーしました。

また、それ以外のツール類 (autoconf とか)も必要なので、
automake_autoconf.tgz
coreutils-update.tgz
も入れました。ただし、coreutils-update の中にも su が入っていて、実行属性が正しくないので、展開する際、root を抜けずに続けて su の実行属性を設定しないといけません。

# tar xzvf automake_autoconf.tgz -C /
# tar xzvf coreutils-update.tgz -C /
# chmod u+s /bin/su
# chmod u+s /usr/bin/su

しかし、まだ問題が…。

make が無い!

で、gnu の make をダウンロードし、展開。

# tar xzvf make-3.81.tar.gz
# cd make-3.81
# ./configure



# make
sh: make: command not found

何考えているんだ、自分(鬱
ただ、./configure で問題が出なかったので、後は本当に make だけか。

結局、LS-GL 用の make は探せませんでした。クロスコンパイルするしかないって事です。
はあ〜〜。作業量を考えると…。

続く。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月24日(水) 00:09

開発環境の導入

海外の linkstation wiki に LS-GL の開発環境一式がありました。ただし、まだベータ状態みたいです。
早速導入します。

linkstation wiki から ls-gl-pro-native-toolchain.tar.gz をダウンロードして LS-GL で解凍します。
Downloads -> uploads -> LS_Pro_temporary -> NativeToolchain にあります。

# tar xzvf ls-gl-pro-native-toolchain.tar.gz

release 以下に解凍されますので、その opt をルートに移動します。

# cd release
# tar cf - .|(cd /;tar xvf -)

release 以下はもう削除してかまいません。
もともと、ルートのパーティション (sda2) のサイズは大きくありませんが、全体で 500MB で残りが 200MB 強です。

ログインしたときのパスを追加します。/etc/profile に直接書いてもいいのですが、行儀が悪いので、/etc/profile に次の内容を追加します。

# user profile
if [ -f "$HOME/.profile" ]; then
    . $HOME/.profile
fi

そしてホームディレクトリに .profile を作成します。

PATH=/opt/arm-gnu/buffalo-ls-gl/bin:$PATH
LANG=ja_JP.UTF-8
EDITOR=vi
PAGER=less
TERM=xterm

export LANG PATH EDITOR PAGER TERM

alias ls='ls -FA'
alias rm='rm -i'

$ gcc -v
Using built-in specs.
Configured with: ../../src/gcc-2005q3/configure --prefix=/opt/arm-gnu/buffalo-ls-gl --build=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi --enable-languages=c,c++
Thread model: posix
gcc version 3.4.4 (release) (CodeSourcery ARM 2005q3-2)

じゃ、早速
$ vi hello.c

int main(int argc, char *argv[])
{
    printf("Hellow LS-GL.\n");
    return 0;
}

$ gcc -o hello hello.c
$ hello
Hellow LS-GL.

OK。

と思ったのですが、LS-GL には一切ヘッダファイルが置いてありません。LS-GL のソースから持ってくるしかないみたいです。
なかなか終わらない。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月23日(火) 00:33

amazonn で買い物

しばらく利用していなかった amazon。ちょっとのぞいたら 「DVD を 4 枚買うと 1 枚ただ」というのにつられて気づいたら 8 枚買ってしまいました。まあ、割引を考えて平均して一枚あたり 930 円になるけど。

コンタクト 特別版
エクソシスト ディレクターズカット版
マトリックス 特別版
魔法の剣 キャメロット 特別版
2001年宇宙の旅
チャーリーとチョコレート工場
時計じかけのオレンジ
バリー・リンドン

うう、amazon の策略にどっぷり浸かっている。見る時間もろくにないのに。ついでに「OP-FAN HD-HCシリーズ用 冷却ファンユニット」も買っちゃったし。

そうそう、VAIO の typeU。注文しました。今もっているゼロスピのバッテリーとかを考えると同じ色の黒にしました。分割は嫌いなので一括です。

こんなに買って払えるのだろうか?ちょっとはセーブしろ。自分。
2、3ヶ月はもう無駄遣いできないな〜。

written by sirius [その他] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月22日(月) 19:58

su のインストール

海外の Linkstation wiki に LS-GL 用の su がありました。

Downloads セクションの uploads -> LS_Pro_temporary -> Binaries の下にある addons.tar の中に su コマンドがありました。wget も入っています。

ただ、そのままでは実行属性が正しくないのでうまく動きません。 root で実行属性を変えます。

# tar xzvf addons.tar -C /
# chmod u+s /bin/su

これで rcS の telnet をコメントにできます。

上記のサイトにはネイティブコンパイラや LS-GL のソース等も置いてあります。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月21日(日) 11:40

LS-GL に ssh でログインする

LS-GL にはもともと ssh が入っているので、sshd を動かして、ssh で LS-GL にログインできるようにします。

まず、ホストキーが既に作成されているので、これを作り直します。
root でログインし、

1、ホストキーの作成。
# ssh-keygen -b 1024 -f /etc/ssh_host_key -N "" -t rsa1
# ssh-keygen -d -f /etc/ssh_host_rsa_key -N "" -t rsa
# ssh-keygen -d -f /etc/ssh_host_dsa_key -N "" -t dsa

それぞれ、既にファイルがあるので上書きのプロンプトが出ます。当然 y です。

2、ユーザの作成。
ssh でログインするユーザを作成します。私は同じユーザで共有もアクセスするので、まず、Web 管理画面からユーザを追加しました。次に、/etc/passwd ファイルを修正して、ユーザー ID 等を設定しました。

3、sshd の起動
# sshd

これで、取りあえず他のマシンから ssh でログインできました。

4、スタートアップ時に自動起動させる。
いろいろやり方はありますが、単純に telnet の代わりにします。telnetd を起動している次の行に /usr/local/sbin/sshd -f /etc/sshd_config を追加します。

5、ユーザ毎のキーを作成
ただログインするだけでは必要ありませんが、パスワード入力なしでログインしたりする場合に必要になります。
キーを作成するユーザでログインし、
$ ssh-keygen -b 2048 -t rsa1
$ ssh-keygen -f id_rsa -t rsa
$ ssh-keygen -f id_dsa -t dsa

これで、パブリックキーを使うとパスワードなしでのログインがでます。リモートからコマンドを実行するときに便利です。ssh の使い方は探すとたくさんあるのでここでは省略します。

ところが、他のマシンから LS-GL へは、ログインできるようになりましたが、LS-GL から他のマシンへは root 以外ではログインできませんでした。

ログインしようとすると、
# ssh foo.bar
Host key verification failed.

となってしまいました。どのホストもそうです。localhost もだめです。初めての現象でした。これに時間がかかりましたが、いろいろ知らべて /dev/tty のパーミッションの問題のようでした。

# ls -l /dev/tty
crw-r--r-- 1 root root 5, 0 Oct 10 2001 /dev/tty
# chmod go+w /dev/tty
# ls -l /dev/tty
crw-rw-rw- 1 root root 5, 0 Oct 10 2001 /dev/tty

オリジナルの HDD を確認しても同じパーミッションでした。他にも問題があるかもしれないけど、まあ、外からログインする製品ではないからね。

これで LS-GL からも他のマシンへ ssh でログインできました。su か sudo をインストールしたら、telnet は切ってしまおうと思います。

次に開発環境の整備です。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月20日(土) 16:25

initrd を作り変える

LinkStation/玄箱をハックしようを参考に、initrd を作り直して、EM モードでも telnet を使えるようにします。

まず、initrd.img を initrd.img.zip に名前を変えて、hddrootfs.img とは違う某パスワードで解凍。
出てきた initrd.buffalo を玄箱へ持ってきて、

# dd if=initrd.buffalo of=initrd.gz bs=64 skip=1

で initrd.gz を取り出し、解凍します。

# gunzip initrd.gz

これで、initrd ができました。
loop デバイスを使って mount します。

# mount -o loop initrd /mnt/tmp

initrd の内容が /mnt/tmp 以下にありますから、必要なファイルを修正します。telnet はファームの修正と同じです。root のパスワードは shadow の編集で ok です。
アンマウント。圧縮、イメージ作成。

# umount /mnt/tmp
# gzip initrd
# mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd -d initrd.gz initrd.buffalo

mkimage は一行です。玄箱にはもともと mkimage は入ってませんが、探せばすぐに見つかるでしょう。
後は、zip で固めて出来上がり。

こうして出来上がった initrd を LS-GL へ持っていくなり、initrd.img を使ってファームを更新すれば、EMモードでも telnet が使えます。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月20日(土) 11:04

LS-GL のHDDの換装(3)

root でログインできるようにします。
結局、hddrootfs で shadow ファイルを編集しても無駄でした。
次のような shell スクリプトを etc/init.d に myroot.sh という名前で作成し、実行属性をつけます。
#!/bin/sh
if [ -x /etc/init.d/myroot.sh ]; then
   echo "myroot:x:0:0:MyRoot:/root/:/bin/bash">>/etc/passwd
   chmod u+w /etc/shadow
   echo "myroot::13320:0:99999:7:::" >> /etc/shadow
   chmod u-w shadow
fi

次に etc/init.d/rcS の最後の行の前に次の内容を追加します。
# Add myroot User
if
   grep myroot /etc/passwd > /dev/null
then
   if [ -f /etc/init.d/myroot.sh ]; then
      rm /etc/init.d/myroot.sh
   fi
else
   if [ -x /etc/init.d/myroot.sh ]; then
      /etc/init.d/myroot.sh
   fi
fi

これで、hddrootfs.img を作り直して、強制アップデートをかけました。
telnet。
myroot でログイン。

できました。あとは、root のパスワードを変更して、再起動。
root でログインできたら、/etc/passwd と /etc/shadow から myroot を削除して、rcS の修正を元に戻して OK。

次は ssh です。
(2007.01.21 訂正)

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月20日(土) 00:34

LS-GL のHDDの換装(2)

起動不能にしてしまった、LS-GL。
Terastation に HDD をつないでみたら sda2 のファイルシステムが壊れているようでした。Terastation でファイルシステムを作り直すと緊急モードで LS-GL が起動しました。
標準ファームでアップデートをしたら、普通どおりに起動するようになりました。

昨日、ファームのアップデートが終了したのに緊急モードでしか起動しなかったのは、hddrootfs.img の作成に失敗していたようです。
hddrootfs.img を解凍すると hddrootfs.buffalo.updated ができるのですが、このファイル名を間違っていました。それでファームが展開できなかったようです。

で、ファイル名を正しくしてデバックモードで強制アップデート。アップデートは "rootfsをアップデートする"、"バージョンチェックをしない"、"強制アップデート"だけチェックしました。
今度は起動しました。

早速、telnet でログインしてみました。

でた〜。ログインプロンプトが出ました。
root でログインっと。

…。へ?。Password ってなに?…。
やっぱり。Terastation と同じようにどっかで書き戻してるな。

admin ではログインできましたが、su や sudo もないし。hddrootfs の作り直しです。
でも、これで root のパスワードさえ何とかできれば、LS-GL をばらさなくても telnet が使えそうです。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月19日(金) 01:21

LS-GL のディスクの換装(1)

LS-GL が届いたので遊びます。
まず、MAC アドレスを調べ、DHCP サーバに登録。うちでは一時的につなぐ時以外は、 DHCP のアドレスの割り当てを静的に行っています。

ネットワークにつないで電源を入れます。PC から管理画面を開きます。共有フォルダもチェックしようと思ったらデフォルトで共有はありませんでした。
以上、動作確認終了。

早速箱を開けて HDD を取り出しました。
これを Terastation へつなげて、各パーティションをバックアップしました。

Disk /dev/sda: 255 heads, 63 sectors, 48641 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System
/dev/sda1 1 25 200781 83 Linux
/dev/sda2 26 87 498015 83 Linux
/dev/sda4 88 48641 390010005 5 Extended
/dev/sda5 88 104 136521 82 Linux swap
/dev/sda6 105 48641 389873421 83 Linux

sda1 が ext3、sda2 が xfs、sda5 が swap、sda6 が xfs です。
Terastation ではデバイスが sda5 までしかなかったので mknod で sda6 は作りました。
(# mknod sda6 b 8 6)

別の 80 GB の SATA の HDD をつないで、パーティションを切りなおして、バックアップから書き戻します。
Disk /dev/sdb: 255 heads, 63 sectors, 9729 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 523 4200966 83 Linux
/dev/sdb2 524 3134 20972857+ 83 Linux
/dev/sdb4 3135 9729 52974337+ 5 Extended
/dev/sdb5 3135 3151 136521 82 Linux swap
/dev/sdb6 3152 9729 52837753+ 83 Linux

sda1 に 4G、sda2 に 20G、swap(sda5) に 128M、sda6 に残り全部。それぞれフォーマットしてから書き戻しました。

この HDD を LS-GL へ内蔵して、起動。管理画面が出るのを PC で確認して、ファームの強制アップデート!
HD-HGLAN のころは、-force オプションで強制アップデートできたようですが、今回はうまくいきませんでした。
アップデートの設定ファイル lsupdater.ini のなかで、

VersionCheck = 1

となっているところを

VersionCheck = 0

とすると、アップデートの途中までいきましたが、パーテーションサイズを変更したのが悪かったのかエラーになってアップデートができませんでした。
そこで、デバックモードを有効にするために、lsupdater.ini にオプションを追加します。

[SpecialFlags]
Debug = 1

再度、LSUpdater.exe を起動し、システムメニューのデバックモードを有効にし、完全フォーマットを行いました。
フォーマットされ、パーティションが切られ、フォーマットされました。緊急モードで起動したようです。
デバックモードを外し、再度アップデートを行います。今度はアップデートが完了しました。
しかし、やはり緊急モードでしか起動しません。

いろいろやっているうちに起動しなくなりました。やはり、今までと違って起動ファイルはディスク上にあるようでそれが壊れてしまった模様。
もう一度やり直し。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月17日(水) 22:04

LS-GL の前準備

LS-GL が届くのが待ち遠しいので、先にファームをいじってみます。

Buffalo のサイトから LS-GL 用の最新のファーム (Ver 1.02) をダウンロードして解凍します。
出てきた hddrootfs.img を hddrootfs.img.zip に改名して、解凍します。
その際にパスワードを聞いてくるので某パスワードを入力します。
出てきた hddrootfs.buffalo.update hddrootfs.buffalo.updated を hddrootfs.buffalo.update.tar.gz hddrootfs.buffalo.updated.tar.gz に名前を変えて玄箱へ持っていきます。
ここから 玄箱での作業。root になって、

# mkdir root
# cd root
# tar xvfz ../hddrootfs.buffalo.update.tar.gz

これでファイルが取り出せるので、早速、telnet が使えるようにします。
etc/init.d/rcS でコメントアウトされている次の行の # を消します。

# /usr/sbin/telnetd

root のパスワードを外す。(これでもだめな可能性があるがそのときはそのときでまた考えます。Terastation と同じ手を使います)
パスワードは etc/shadow 内に書かれています。このときファイルのパーミッションに注意します。このファイルのパーミッションを変えてしまうと誰もログインできなくなります。

tar で固めます。

# tar cvfz ../hddrootfs.buffalo.update *
# tar cvfz ../hddrootfs.buffalo.updated *

あとは、zip で固めて OK。パスワードはつけなくても大丈夫のようですが、パスワードつきで固めました。

LS-GL が届いたら、このファームを強制アップデートすれば箱を開けなくても telnet できるはずです。(シリアルコンソールをつける予定なので結局、箱は開けるつもりだけど)

ちょっと解凍したディスクイメージの中を散歩してみたら眼を引くファイルが…。

etc の下に…

ssh_config
ssh_host_dsa_key
ssh_host_dsa_key.pub
ssh_host_key
ssh_host_key.pub
ssh_host_rsa_key
ssh_host_rsa_key.pub
sshd_config

おいおい。いいんかいホストキーなんか置いちゃって。

usr/local/bin の下に…

scp*
sftp*
ssh*
ssh-add*
ssh-agent*
ssh-keygen*
ssh-keyscan*

しまいには、usr/local/sbin の下に…

sshd*

って そのまんまで ssh が動きそうです。(もちろんホストキーは作り直してね)

さらに、usr/local/bin には

bison*
flex*
yacc*
m4*

とか

rlogin*
rsh*

とか。さすがに as とか gcc はありませんが、usr/bin にはリンク先に実体は無いものの

arm-none-linux-gnueabi-ar@
arm-none-linux-gnueabi-ranlib@

なんてシンボリックリンクがあったりして。どうせここまでやったんなら開発環境付きのフルバージョンファームを公開してよ、Buffalo さん。
もっともセルフの開発環境や、カーネルのソースらしきものは、もう見つけてあります。

ssh が使える様になったら telnet は止めようと思います。
(2007.01.20 訂正)

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月17日(水) 00:14

LS-400GL 購入

LinkStation/玄箱をハックしように新 linkstation のハックが書かれています。HS-DHGLも購入していろいろ楽しそうなので、私も LS-GL を手に入れることにしました。U-Boot で、tftp boot ができたって事が最大の購入理由。届いたら早速やってみたいけど、その前に シリアルコンソールを引き出さないといけないので、ちょっと先かな。

初期不良のみの保証しかないけど安かったからいいか。玄箱、Linkstation、Terastation、グラタンとついに 10 台目か…。きっと新Linkstationはもう一台買うと思う。

そういえば、VAIO の typeU をもう一台買おうと思っていたら、いつのまにか在庫が無くなって買えなくなっていました。今日見たら、Windows Vista 版が発売になるそうで、欲しかったのと同スペック (ゼロスピのメモリ 1G フラッシュ 32G) の値段が 6 万ほど安くなっていました。金曜日から予約だそうです。買っちゃうだろうな〜。ブルーの筐体のを買うつもりです。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月15日(月) 00:28

Mserv を使ってみる

内向きのサーバとして使っている Kuro-Box/HG は、250GB HDD を内臓させて、MP3 倉庫としても使っています。
倉庫といっても、USB スピーカをつないで、JUKE-BOX としても使っています。この JUKE-BOX 用の Web インターフェースとして、「玄箱の本」の中のものを改造して使っていました。
ところが最近、この Web インターフェースがうまく動いてくれなくなりました。多分、曲数が多くなったせいでしょう。

探してみたところ、Mserv というものが同様なことができるようなので使ってみました。ソースからビルドしましたが、そのままでは問題がありました。

日本語が使えね〜〜
日本語のファイル名やパスがあるとうまく表示されませんでした。また、日本語のタグがやはり取得できないようです。

ソースからビルドしたので、当然、ソースコードがあります。
改造しちゃえ。
日本語の id3v2 タグが使えるようにソースを修正し、CGI でも日本語が使えるように jcode.pl を利用して日本語コードを euc に変換するようにしちゃいました。そしたらもうひとつ問題が…。

ファイル数を増やしたら落ちた
やっぱり…。

結局、この手の動的に曲情報を一括して取得する方式では、ファイル数が多くなると Kuro-Box/HG の様にメモリの少ない場合にうまくいかなくなるという事でしょう。
ということで、自分用に新規に作るか…。(めんどくせ〜)

せっかく改造したので、Msserv(ver 0.35) 用のパッチをここに置いておきます。ただし、普通、id3v2 タグは UTF-8 のようですが、jcode.pl を使っているので、UTF-8 は使えません。また、Kuro-Box ではファイル名が shift-jis なので、id3v2 タグも shift-jis でないと Web ページが文字化けします。(UTF-8 以外なら jcode.pl で変換しているので大丈夫なはず。2007.01.15 訂正)本体はこちらからどうぞ。
いつも通り、使用は自己責任で。

written by sirius [玄箱] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月1日(月) 15:47

あけましておめでとうございます

謹賀新年。

今年もいろいろやっていこうと思います。よろしくお願いします。

新年ということで、ホームにあるようにいくつか更新しました。興味のある方は見てください。

グラタンの外付けが、速度に難はあるものの、順調に動いているので、もう一台グラタンを買ってしまいそうです。ほんと、病気ですね。

私のホームページですが、テキストエディタでしこしこ書いています。
レイアウトはテーブルを使っています。いまどきのページはスタイルシートを使ってレイアウトするのが主流なので、そろそろ勉強しようかと思っています。

なので、新年早々ですが、更新がちょっと止まってしまうかもです。
前にも書きましたが、閉鎖するつもりはないので、見捨てずにたま〜に見に来てください。

それと、wizd の方は、たまに、ダウンロードして下さる方がいらっしゃるんですが、今とまっちゃってます。AP1000 をメディアプレーヤー代わりに使っているので、自分の中の優先順位はかなり下になっているのであまり期待にこたえられないと思います。

written by sirius [その他] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2006年12月31日(日) 18:50

グラタンの USB 外付け HDD の速度

ちょっと気になったので raid にしない場合のグラタンの USB 外付け HDD の速度を調べてみました。

Seagate の ST325082 をつなげました。250GB です。将来的には、スペアディスクとして もう一台 300GB の HDD をつなげようと思っています。

Seagate の HDD を EXT3 でフォーマットし、マウントして samba で共有します。

で 8GB の一個のデータをコピーしてみました。

PC -> 外付け が 10.0 MB/s
外付け -> PC が 9.7 MB/s

でした。

ちょっと表にしてみましょう

グラタンの転送速度(MB/s)
コピー元コピー先転送速度
PC内臓(raid1)8.4
PC外付け(raid5)6.0
PC外付け10.0
内臓(raid1)PC12.8
内臓(raid1)外付け(raid5)6.1
内臓(raid1)外付け11.8
外付け(raid5)PC10.0
外付け(raid5)内臓(raid1)8.8
外付け(raid5)外付け8.3
外付けPC9.7
外付け内臓(raid1)9.1
外付け外付け(raid5)5.9
環境:
 PC:Pen4 2.6GHz RAM:2GB
 LAN:1000BASE-T


さて、面白いのが、PC -> 外付け、外付け -> PC、外付け(raid5) -> PC の転送速度が 10.0MB/s でほぼ同じということ。USB バスの転送速度が MAX でこの近辺なのではないでしょうか。また、raid5 の読み出しは書き込みほど負荷がかからないようにも読み取れます。
内臓 -> PC の転送速度が最高速になっています。同様に、読み出しについては負荷はかかっていないようです。
内臓の HDD をもっと高速なものに変えれば読み出しは、もっと高速になる可能性がありますが、発熱の問題があるのでジレンマです。
もっと高速な CPU を積んでいれば、書き込みが高速化されそうです。raid の計算を高速化するパッチもあるそうですが、すでに大量のデータをコピーしてしまったのでパッチを当てる度胸はありません。

結論。
USB の転送速度は、約 10 〜 12MB/s。
raid1 の書き込みは、約 8.5 〜 9MB/s。
raid5 の書き込みは、約 6.0MB/s。
読み出しについての raid のオーバーヘッドは、無視しても構わない程度である。
外付け raid のボトルネックは、書き込みは raid5 のパリティ生成。読み出しは USB バス。ということのようです。


今年も後もう少し、来年もいろいろやりたいと思いますので、よろしくお願いします。

written by sirius [グラタン] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

<< 前のページ | 次のページ >>

Sirius -旧ブログ、更新されません-

MySketch 2.7.2 written by 夕雨