2006年03月30日

sdcontrol再構築(beta1編)

さんざん弄くり回したbeta2ですが、またもシステムが不安定になってしまったのと、SDカード周りの問題で実用には辛いと言うことがはっきり分かったので、beta1に戻すことにしました。(いやそれ以前はRC10だったのでそこから見れば大幅バージョンアップなのですが)

beta1ではSDに問題は発生しないのですが、せっかく複数パーティション対応をbeta2でやったので、beta1sdcontrolも再構築してみました。

/etc/sdcontrol
#!/bin/sh
#
# sdcontrol 1.0 Rev.2 2006/03/30 by T.Yokota
# ( 1.0 2001/8/8 21:33:19 (Hideki Hayami) )
#
# Initialize or shutdown a SD card device
# (for pdaXrom 1.1.0 beta1 or older release)
#
# The first argument should be
# 'insert' 'eject' 'compeject' 'change'.
#

# Command parameter
ACTION=$1

# User definition
# (Please edit for your environment)
MOUNT_POINT=(/mnt/sd /mnt/card)
SWAPFILE=/mnt/card/.swap

# Constant definition
DEVICE_PREFIX=/dev/mmcd
STORAGE_STAT_FILE=/proc/usb-storage
STORAGE_PID_FILE=/var/run/usbdstorage.pid

# mouont / umount
case "$ACTION" in
'insert')
TARGSTAT=0
for TARGET in ${MOUNT_POINT[*]}
do
mount | fgrep $TARGET > /dev/null 2>&1
if (( $? != 0 )); then
mount $TARGET
fi
done

if [ -r $SWAPFILE ]; then
swapon $SWAPFILE
fi
;;

'eject'|'compeject')
TARGSTAT=1
SWAPSIZE=`free | awk '/Swap/{print $2}'`
if [ $SWAPSIZE != "0" ]; then
swapoff $SWAPFILE
fi

for TARGET in ${MOUNT_POINT[*]}
do
mount | fgrep $TARGET > /dev/null 2>&1
if (( $? == 0 )); then
TARGDEV=`grep $TARGET /etc/fstab | awk '{print $1}'`
if [ $ACTION = "eject" ]; then
fuser -s -m $TARGDEV
if (( $? == 0 )); then
echo "!!WARNING!! Filesystem $TARGET is in use. Cannot umount."
continue
fi
else
fuser -s -k -m $TARGDEV
fi
umount -l $TARGET
fi
done
;;

'change')
$0 compeject
sleep 1
$0 insert
;;

*)
echo "Usage : $0 ( insert | eject | compeject | change )"
exit 1
;;
esac

# Check result
mount | grep -q $DEVICE_PREFIX
if (( $? != $TARGSTAT )); then
echo "SD $ACTION failed."
exit 1
fi

# Reload usb storage module (if executing)
grep -q $STORAGE_STAT_FILE $DEVICE_PREFIX 2> /dev/null
if (( $? == 0 )); then
kill -HUP `cat $STORAGE_PID_FILE`
fi

# finish
exit 0
mountfuserの挙動がきちんとしているので外出しのシェルなしできちんと動きます。やっぱこうでないと。(これならumount-lオプションも不要かな?)

この対応で初めてUSBストレージモードを使ってみたんですが、これ便利ですね。今までネットワーク接続してsftpとかで送ってた自分がちょっと間抜けに見えてしまいました。(汗)
しかしZaurus側でファイルの変更してもPC側には即時に反映されないのにはちょっと驚きました。現行のスクリプトではSDのinsert/eject時にリフレッシュをかけてますが、USBストレージモードで動かしてるときは定期的にリフレッシュをかけるようにしておいた方が使い勝手がよいような気がします。まぁ使う側で気をつければいい話ではありますが。(リフレッシュのコマンドは用意しておいた方が幸せですね)

検証はSL-C750でしかしていませんがどの機種でも動くような気がします…が、そもそも検証が甘甘なので試される方はくれぐれも自己責任でお願いいたします。m(_ _)m
posted by 月水和尚 (とも) at 12:50 | Comment(6) | TrackBack(0) | pdaXrom
この記事へのコメント
tomoさん

こんばんは。

あっ、脱走兵になってしまいましたか?
とは言いながらも、未だに悪戦しながら、
色々試していますが。そのうち3号になるかも..

そうそう、物欲に負けてしまいC1000買ってしまいました。 またしても、衝動買いですわ..
これで、昼飯と夜の一杯は当面我慢です...
取り敢えず土曜日に宅配業者が届けてくれるのですが、どうするべきか...
Posted by yasu at 2006年03月30日 19:32
脱兎のごとく脱走兵です。(笑)

C1000購入ですか!それは羨ましい…。もちろんQT環境は1度も立ち上げることなくNAND Flash Backup -> pdaXrom化ですよね♪

私ももう一台欲しい衝動に駆られているのですが、狙いは何と中古の760!そちらをpdaXromな人柱機に、今の750を超安定QT+Opera機にしようかと。う〜ん、脱走しすぎですね…。
とりあえずbeta1がなかなか安定して動いてくれているので今のところは購入せずに済みそうな感じですが。

しかし『昼の一杯』とは素敵ですね。
Posted by tomo at 2006年03月30日 20:00
tomoさん

こんばんは!

beta2は、やっぱり曲者ですね!
SD、CF、電源周りと色んな症状を抱えていて、
おまけに気分次第で動作が変わるってところですか...

あちらのサイトでは、脱走兵が多数出てきましたので、私も脱走することにします。(私)
でも、一様はC1000でBeta2を試しては見ますね。
特にC860とC1000とでの挙動違いなどが判れば
何か参考になる(見出せる)ものがあるかも知れないので....

>もちろんQT環境は1度も立ち上げることなく
勿論、購入時点でNAND Flash Backup -> pdaXrom化...

>しかし『昼の一杯』とは素敵ですね。
あれ、夜の一杯と書いてますよ!(笑)









Posted by yasu at 2006年03月31日 19:55
こんばんは。

何だかbeta2にはさんざん振り回されてしまいましたね。beta1にしたらびっくりするくらい安定して動いています。乗り換えの時期を完璧に間違えました。これなら超安定QT環境用にもう一台買わずに済みそうです。(笑)

しかし単にバグ含みというわけではなく、ご指摘のとおり気分屋さんというのがbeta2の最大の問題点でしたね。再現性が低い障害って取り除くのが大変…。手間取ってbeta3が大幅に遅れたりしないといいんですけど。

そんな困ったちゃんなbeta2でしたが、みんなでわいわいと人柱隊も楽しかったですし、本気になっていじくり回したのでだいぶ中身に詳しくなったような気がします。そう考えるとこれはこれでありだったのかな、と。
yasuさんともすっかり仲良くさせて頂けるようになりましたし。

> あれ、夜の一杯と書いてますよ!(笑)

すみません、これ大いなる勘違い!
『昼飯と夜』の『一杯』なんじゃなくて、『昼飯』と『夜の一杯』だったんですね。
日本語ってムツカシイ。(汗)
Posted by tomo at 2006年03月31日 23:43
おはようございます。

>beta1にしたらびっくりするくらい安定して...
当方のブログも、beta2に関してはフェーズアウトとしました。
取り敢えず、私の環境で出た症状などを記載しておきました。
折角、訪問されてbeta2を試されたかたには、申し訳ないな〜と感じています。

また、海外にいる知人の情報では、
- USB周りも挙動がおかしい
- RC12も色々不具合あり
- Beta1は取り敢えず安定
  *但し、日本語は使っていないので、そこまでは判らない(米人なので..)

とのことでした。

Beta1のブログも再編集中です。
tomoさんの/etc/sdcontrol(beta1用)を自分なりに試してみて、是非掲載したいと思っています。
その際は、tomoさんのサイトを紹介しておきますが、良いでしょうか?


>『昼飯と夜』の『一杯』なんじゃなくて
言われれば、そうとも読める...(笑)
でも、今日は休みなので昼飯の一杯やっとこかな...


Posted by yasu at 2006年04月01日 07:39
またも軽快に夜更かし中です。

> 折角、訪問されてbeta2を試されたかたには、申し訳ないな〜と感じています。

いや、それは言いっこなしでしょう。人柱なβ版を人柱がレポートしてるわけですから。
最初にyasuさんが残して下さったコメント(RC10のまとめをやろうとしてフェードアウトしてしまった記事です)のとおり、情報交換のためにもやった事を公開していくのが大切だと思いますので。

> RC12も色々不具合あり

RC12もそうですがRC11も不安定でしたよね。あれで苦労して以来RC10に居座っていたのですが、重い腰をやっと上げたて試みたのが困ったちゃんのbeta2だったのが何ともはや…と言う感じです。(苦笑)
ただ苦労させられた分知識も付きましたし、yasuさんはじめ色々な方と出会えたのでこのリリースには感謝ですね。

> その際は、tomoさんのサイトを紹介しておきますが、良いでしょうか?

もちろんです!使えるネタがあったら何でも使ってやって下さい。
sdcontrolは検証が十分とは言えないので、色々試して頂けると非常に助かります。

> でも、今日は休みなので昼飯の一杯やっとこかな...

やられましたか?
私は今日は花見をしてきたのですが、私を含めメンバー誰もお酒を飲まないので、代わりにヤクルトの売り子さん(突如公園に現れたのはちょっと驚きでした!)から買ったジョアを飲んでました。(笑)

それにしてもbeta1の安定度は素晴らしいですね。
本格運用に突入出来そうです。
Posted by tomo at 2006年04月02日 02:54
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/15790137
※言及リンクのないトラックバックは受信されません。

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