( ゚皿゚)

( ゚皿゚)

SL-Zaurus設定メモ(3)

今日はsmbmountのお話。
無線LANで接続していると当然母艦のファイルを直接見れるsmbmountは必須なわけですが、オプションが結構わかりづらいんですよね。いろいろ調べたんですがどこを調べたか忘れたので簡潔に方法だけ記しておきます。母艦環境はw2kでファイルシステムはNTFS。

1.smbmountいれる
上のリンクから行ってipkもらってくる。で入れる。

2.母艦にユーザ作る
なんかAdministratorじゃダメだった覚えがあるんですよね。パスなしなのがいけないのかも。zaurus:zaurusで作った。

3.コンソールからいれるコマンドの例(suしておくこと)

# smbmount //hmx-23sety/mp3 /mnt/card/music/sety -o username=zaurus,password=zaurus,codepage=cp932,iocharset=utf8

こんな感じ。<マウントしたいWindowsの共有フォルダ> <マウントする場所> -o <オプション>ですな。codepageとiocharsetの指定で全角ファイルも問題なく扱えるはず。

さてココまでは楽勝ですが、いちいちこの辺をコンソールから入力するのはだるいので自動化です。まずはmount.shとumount.shを作成。

<mount.sh>

#! /bin/sh
mkdir /mnt/card/music/sety
mkdir /mnt/card/book/sety
/usr/bin/smbmount //hmx-23sety/mp3 /mnt/card/music/sety -o username=zaurus,password=zaurus,codepage=cp932,iocharset=utf8
/usr/bin/smbmount //hmx-23sety/manga /mnt/card/book/sety -o username=zaurus,password=zaurus,codepage=cp932,iocharset=utf8

<umount.sh>

#! /bin/sh
/usr/bin/smbumount /mnt/card/music/sety
/usr/bin/smbumount /mnt/card/book/sety
rmdir /mnt/card/music/sety
rmdir /mnt/card/book/sety
rm /etc/mtab
ln -s /proc/mounts /etc/mtab

umount.shの最後の2行は、smbmountをやると/etc/mtabのシンボリックリンクが実体のあるファイルに書き換えられて、SDの抜き差しとタスクバーが連動しなくなっちゃうのの対策。
さてこいつをランチャあたりに組み込めばまずはセミオート化完了といったところですが、どうせならカードをさしてオンラインにしたときに自動でマウントしてしまいたい。(出先でホットスポットとかに繋いじゃうと失敗するとか言う弊害もありますが)
というわけでNetHelperAppletにお出まし願いましょう。というかZaurus側のsambaを自動起動するのとネットに繋いだときにntpdateで時計あわせをするために既に導入済みだったわけですが。~/Settings/nethelper.confをこんな感じに編集。

<nethelper.conf>

[Environment]
[Global]
Enabled = 1
Recent = DialUp0,WLAN,DialUp
[Run_All]
up00 = /usr/bin/sudo /home/QtPalmtop/bin/timeadjust.sh
[Run_DialUp]
[Run_DialUp0]
[Run_WLAN]
down00 = /usr/bin/sudo /etc/rc.d/init.d/samba stop
down01 = /usr/bin/sudo /mnt/card/Documents/umount.sh
up00 = /usr/bin/sudo /etc/rc.d/init.d/samba start
up01 = /usr/bin/sudo /mnt/card/Documents/mount.sh

これでOKに見えますが、切断時におかしくなります。アンマウント作業は切断前にやらないと意味無いんですよね。仕方がないのでアンマウントはNetHelperの力を借りずに多少邪道なやり方でやることに。
接続/切断をKeyHelperでアドレス+Oキーに割り当ててるんですが、ここで呼び出すのをスクリプトにします。めんどくさいので、マウントに使ったディレクトリが存在してたら無理矢理アンマウントすることにしちゃいましょう。

<conrecon.sh>

if [ -d /mnt/card/music/sety ]; then
/usr/bin/sudo /mnt/card/Documents/umount.sh
fi
/home/QtPalmtop/bin/netmon

これで切断プロセスの前にアンマウントを行なうことができるように。マニュアルで切断することはほとんど無いのでこれでいいでしょう。