fakesh-omocha version 3
koboのおもちゃ
Copyright © 2013 fakesh. http://sourceforge.jp/users/fakesh/
MIT/X Consortium License http://www.opensource.org/licenses/mit-license.php
* WhatIsThis
kobo に login してつかうものですので, telnet や ssh で login
できる環境ができていないと基本的にはつかえません.
ただし, screenShot-jpeg.sh は fbset が install されていて
/dev/fb0 が読めるような unix-like 環境でもつかえるはずです.
fakesh 本体(整備中) のなかで, 単独でつかっても役にたちそうな sh scripts と
fakesh 本体 にはないけれど便利な sh scripts (extra) などを集めたものです.
install path は, とくにきまってませんが, よくつかうようであれば,
$PATH のかよったところがいいでしょう.
+ whinker.sh
LED を点滅させる. パターンは動的にかえられる.
使いかたは, help
PROMPT# ./whinker.sh
を参照.
fakesh 本体 では /etc/fakesh/tools/ に配置. ($PATH には入っていない)
+ screenShot-*.sh
スクリーンショットを撮る, .raw.gz からの変換.
fakesh 本体 では /root/bin/ に配置. (fakesh の$PATH には入ってる)
screenShot-*.sh の * は出力フォーマットで,
数字 1,2,3,4 は各色のbit数, jpeg は 3x8bit color または 8bit grayscale,
単独 ppm は binary 3x7bit color + gzip,
単独 pgm は binary 7bit grayscale + gzip,
単独 raw は "そのまま" + gzip , raw[1-4] は grayscale + gzip,
L つきと raw は landscape, それ以外は portrait, r は reverse video.
raw1 は reverse video 付き.
つかいたは help で
PROMPT# screenShot-jpeg.sh help
Usage: screenShot-jpeg.sh [pathto/pict] [1-999] [cmd] [cjpeg_opts]
pathto/pict : path to output file. (/mnt/onboard/screenShots/001.jpg)
1-999 : shutter timer sec. (none)
cmd : help , conv , wait, showfb , fb:_params_ ,
fmt:_output_format_ (jpeg).
options は dash(-) ではじまる option 以降が cjpeg の option になる
(jpeg のとき). それより左の option が screenShot-*.sh の option で
slash(/) が含まれるときは出力ファイルの指定(無条件置き換え(上書き)),
1から999までの十進表記はシャッターのタイマー秒数,
conv は画面からの代わりにstdinから .raw.gz を読み込む,
wait は現像仕上りまで待つ,
showfb があるときは framebuffer(fb) の parameter を表示して終了(撮らない,変換しない),
fb:_params_ は fb の parameter を上書き設定, conv といっしょにつかえば
他機種の .raw.gz も変換できる, (環境変数 SCREENSHOT_FB_PARAMS も利用可能)
fmt:_output_format_ は出力フォーマット,
help で (/mnt/onboard/screenShots/001.jpg) のように設定値を確認することが
できる.
以下, 利用例:
撮るのは一瞬.
PROMPT# time screenShot-jpeg.sh
real 0m 0.71s
user 0m 0.02s
sys 0m 0.21s
現像(変換)にスゴク時間がかかる.
PROMPT# time screenShot-jpeg.sh wait
output: /mnt/onboard/screenShots/002.jpg
real 1m 28.35s
user 1m 13.52s
sys 0m 14.21s
でも gzip だけならまあまあ速い.
PROMPT# cd /mnt/onboard/screenShots
PROMPT# time screenShot-raw.sh ./thePict wait
output: /mnt/onboard/thePict.raw.gz
real 0m 2.00s
user 0m 1.28s
sys 0m 0.20s
raw1(raw BW and its reverse video) でも変換に結構時間がかかる.
PROMPT# time screenShot-raw1.sh conv ./thePict wait < thePict.raw.gz
output: /mnt/onboard/screenShots/thePict.BW.raw.gz
output: /mnt/onboard/screenShots/thePict.WB.raw.gz
real 2m 52.79s
user 1m 20.05s
sys 1m 32.45s
E-ink の残像軽減になるかな?
PROMPT# dispPics.sh ./thePict.BW.raw.gz 500 ./thePict.WB.raw.gz ./thePict.raw.gz
framebuffer の parameters の表示 (on glo)
PROMPT# screenShot-jpeg.sh showfb
w=1024;h=758;rB=5;rP=11;gB=6;gP=5;bB=5;bP=0;
他機種の .raw.gz を変換
PROMPT# cd /etc/images
PROMPT# screenShot-ppm.sh 'fb:w=800;h=600;' conv showfb
w=800;h=600;rB=5;rP=11;gB=6;gP=5;bB=5;bP=0;
PROMPT# screenShot-ppm.sh 'fb:w=800;h=600;' conv showfb help
Usage: screenShot-ppm.sh [pathto/pict] [1-999] [cmd]
pathto/pict : path to output file. (/mnt/onboard/screenShots/003.ppm.gz)
1-999 : shutter timer sec. (none)
cmd : help , conv , wait, showfb , fb:_params_ ,
fmt:_output_format_ (ppm).
PROMPT# screenShot-ppm.sh 'fb:w=800;h=600;' conv < initializing_usb_partition.raw.gz
PROMPT# cd /mnt/onboard/screenShots
PROMPT# ls
001.jpg 002.jpg 003.ppm.gz.wait
PROMPT# sleep 180; ls
001.jpg 002.jpg 003.ppm.gz
PROMPT# zcat 003.ppm.gz | cjpeg > initializing_usb_partition.jpg
?? usb 端子が下にあるから ?? (やってみて!)
以上は, fakesh 所有の glo での結果. touch は処理能力が低いけど,
画素が少ないので速くなるか遅くなるかは不明.
ぎゃくに, Touch で glo用の画面の jpeg をつくるのには:
PROMPT# screenShot-jpeg.sh /mnt/onboard/glo-on-3 'fb:w=1024;h=758;' conv < /etc/images/kraken-on-3.raw.gz
timer が必要な用途の一つは, /mnt/onboard が umount されているときの
screen shot を撮ることで (wifi経由loginして, usbnet ではムリかも)
PROMPT# cd /; screenShot-jpeg.sh 30 &
と唱えてすぐに, usb 接続, [接続] をタッチして, さらに,
画面を撫でていれば(koboを居眠りさせないため),
30秒後くらいの "PC に接続されています。" の画像が撮れる.
現像が終っても, /mnt/onboard が mount されるまでは /tmp から mv
しないので安心.
usb 接続解除後すぐに見たいときは(見ている画面だけど), シャッター後
さらに2分ほど撫でまわしてから接続解除して, /mnt/onboard の mount と
ほぼ同時に現像済 jpeg を /tmp から mv させるようにすればよい.
/ partition の /mnt/onboard が汚れていないことを確認.
PROMPT# cd /tmp ; mkdir -m 000 root-bind-$$ ; stat -c %a root-bind-$$
0
PROMPT# mount --bind / root-bind-$$ ; stat -c %a root-bind-$$
755
PROMPT# ls -a root-bind-$$/mnt/onboard
. ..
PROMPT# umount root-bind-$$; stat -c %a root-bind-$$
0
PROMPT# chmod 700 root-bind-$$; rmdir root-bind-$$
root-bind-$$/mnt/onboard に . .. 以外の何かがあったら消しときましょう.
kobo ウェブブラウザでは, jpeg, png画像が grayscale になっている?
svg でもグラデーションなどは grayscale になるようだ. (FW 2.2.1)
http://upload.wikimedia.org/wikipedia/commons/0/02/CIExy1931.svg
+ extra/fakesh-logo.jpg
screenShot-jpeg.sh で撮ったショットサンプル.
元の png を /mnt/onboard にコピーして撮った. (jpegtran 不使用版)
version 1 のものは jpegtran の BUG のせいでおかしい. 今度はダイジョブ
fakesh 本体 には含めない
+ extra/conv-etc-images.sh
screenShot-jpeg.sh をつかった sample script.
/mnt/onboard/etc_images の画像を ppm に変換して
/mnt/onboard/etc_images に保存する.
background で走りつづけるが, 2時間以上かかる.
umount されようが nickel が死のうが走りつづける.
電池はかなりへる.
fakesh 本体 には含めない, $PATH にも入っていない.
+ addVerCheck.sh
KoboRoot.tgz を version check つきにする.
script を実行させる KoboRoot.tgz を生成する.
distributer むけの sh script なので詳しい説明は省略.
cwd に versions.lst がないときは, versions.lst の例を生成して終了.
もう一度実行すると KoboRoot.tgz がなければ sample の KoboRoot.tgz
を生成し, version check つき KoboRoot.tgz に変身させる.
詳しくは script addVerCheck.sh 自身を参照.
fakesh 本体 では /etc/fakesh/tools/ に配置, $PATH には入っていない.
- koboBackup.sh
簡単koboバックアップ
http://sourceforge.jp/users/fakesh/pf/easyKoboBackup/
または, 最新版
http://sourceforge.jp/projects/fakesh-kobo/scm/git/fakesh_kobo/tree/master/etc/fakesh/tools/
からどうぞ.
KoboRoot.tgz を展開したなかの tmp/*/koboBackup-oneShot.sh と同一です.
koboBackup.sh と rename してつかってください.
画像 *.raw.gz は /mnt/onboard/.fakesh/images に install してください.
- outputEKBuu.sh
最新版
http://sourceforge.jp/projects/fakesh-kobo/scm/git/fakesh_kobo/tree/master/etc/fakesh/tools/
からどうぞ.
koboBackup.sh に addVerCheck.sh をつかって別パッケージ "簡単koboバックアップ"
をつくる script. koboBackup.sh と addVerCheck.sh は同じ directory に配置されて
いなければならない. ssh でつかいやすいように base64 で KoboRoot.tgz を stdout
に出力.
fakesh 本体 では /etc/fakesh/tools/ に配置. ($PATH には入っていない)
+ dispPics.sh
kobo 画面に 画像を表示, 引数なしで help
fakesh 本体 では /root/bin/ に配置, $PATH にはいってる.
+ extra/pstree.sh
debian squeeze あたりから psmisc を導入すればいいのだけれど,
面倒だから書いてしまった.
と思ってたら. FW2.6.0 以降の busybox に含まれるようになった.
でも, こちらは, STAT や 引数の表示があるぶん便利.
適当な引数をつけると help.
fakesh 本体にはないが $PATH 入ってる
+ {Stop,Cont,Ping}Nickel.sh
pipeclear 付きだから, STOP してるときの影響が CONT したときにでない.
./StopNickel.sh した回数だけ ./ContNickel.sh しないと nickel は動き出さない.
5回 ./StopNickel.sh したら, 5回 ./ContNickel.sh しないと nickel は動き出さない.
状態は ./PingNickel.sh で確認できる.
fakesh 本体 では /root/bin/ に配置, $PATH にはいってる.
+ extra/batteryStat.sh
ときどき電池が気になります...
fakesh 本体にはないが $PATH 入ってる
+ extra/hwtime.sh
fork せずにいける. 日付けはいらない. JST(+09:00)でないときは,
環境変数 TZMIN で調整. サマータイムとかは当然無視.
fakesh 本体にそのものはないが, ひな型がある. $PATH に入ってる
- wrapping-mount-dosfsck.sh
簡単koboバックアップ
http://sourceforge.jp/users/fakesh/pf/easyKoboBackup/
または, 最新版
http://sourceforge.jp/projects/fakesh-kobo/scm/git/fakesh_kobo/tree/master/etc/fakesh/tools/
からどうぞ.
koboBackup.sh の付随script
rootfs と recoveryfs の /bin/{mount,umount,dosfsck} を
KOBOeReader が ext4 でつかえるように wrap, restore する.
wrap は,
PROMPT# ./wrapping-mount-dosfsck.sh /mount_point_to_fs
で, restore は,
PROMPT# ./wrapping-mount-dosfsck.sh /mount_point_to_fs restore
とする.
'-Message' という option を第1引数にすると饒舌になる.
引数なしで, test code の実行.
また, koboBackup.sh により recoveryfs の /etc/fakesh/tools にも install され,
factory reset しても, ext4 がつかえている状態にする.
fakesh 本体 では /etc/fakesh/tools/ に配置, $PATH には入っていない.
+ extra/ldd.sh
オプション -l /path_to/ld-linuxXXXXX でリンカを指定できる.
引数なしで, help
fakesh 本体にはないが $PATH 入ってる
+ extra/busyboxRelink.sh
FW2.6.0 の busybox が大変更に applet を整理する.
./busyboxRelink.sh / と唱えれば, /bin/busybox に symlink されてるのになくなった,
applet を消して, /bin/busybox が想定している場所に applet を install する.
すでにある command は /bin/busybox への symlink でないかぎり消さない.
/bin/busybox への symlink でも想定している場所でなければ消さない.
以上のように, 安全に /bin/busybox の applets を整える.
busybox --install というのもあるけれど, 挙動がよくわからないので不安だから書いた.
wrapper とか上書きされるといやだし, 孤児 applet は消してくれないだろうから.
fakesh 本体にはない, $PATH にも入っていない.
################################################################
* Install
fakesh-omocha?.{tgz,tar.bz2,tar.xz} をお好みの場所で展開(ただし symlink
がはいっているので unix な filesystem上 で[含むMacOSX]).
directory fakesh-omocha? (?はversion番号) 以外に展開物はなし. バラケない.
あとは, 上記 WhatIsThis を参考にするなどして, (kobo内外に)配置.
sh script ですので...
tgz,tar.bz2,tar.xz のどれになるかは, 一番小さくなるものにするので
varsion によりかわるかも.
* ChangeLog
+ 2013-12-08
- outputEKBuu.sh
- koboBackup.sh
- wrapping-mount-dosfsck.sh
+ extra/ldd.sh
+ extra/busyboxRelink.sh
+ 2013-02-22
+ wrapping-mount-dosfsck.sh
+ 2013-02-11
+ screenShot-*.sh reverse video の強化
+ whinker.sh $(./whinker.sh 2>/dev/null) がダメなので修正
+ 2013-02-10
+ extra/hwtime.sh
+ extra/batteryStat.sh
+ extra/{Stop,Cont,Ping}Nickel.sh
+ extra/pstree.sh
+ extra/conv-etc-images.sh を本体からはずす.
+ 本体にないものを extra に移動
+ dispPics.sh
+ 2013-02-05
version 2
+ README.html
+ outputEKBuu.sh
+ 2013-02-04
+ addVerCheck.sh
BUG 取り [ ! -f ../KoboRoot.tgz ] のときの cd $wd
+ whinker.sh
help の値を 30 から 99 に変更.
+ screenShot-*.sh
jpegtran -rotate 90 に BUG があるので jpegtran をつかわずに,
回転するようにした.
さまざまな format の画像出力に対応.
default の画像出力先を /mnt/onboard/screenShots/ に変更.
画像出力先を option 指定可能.
.raw.gz からの変換.
kobo でなくても(たぶん)つかえるようにした.
次の options を追加
pathto/pict , 1-999 , help , conv , wait ,
fb:show , fb:_params_ , fmt:_output_format_ .
+ fakesh-logo.jpg
jpegtran の BUG のため jpegtran未使用版に変更.
+ conv-etc-images.sh
+ addVerCheck.sh
+ koboBackup.sh
+ 2013-01-27
version 1
+ whinker.sh
+ screenShot-jpeg.sh
+ fakesh-logo.jpg
* TODO
+ screenShot-*.sh
kobo の E-ink では, rgb to grayscale が ppmtopgm の
.299 r + .587 g + .114 b でないようなので, その対策.
+ README
もっと, ちゃんと詳しく書く. でもつかれた....
wiki に移動...
binary <--> text に od と awk の printf "%c" のほかに uu{en,de}code
base64 をつかうという手もあるか... 処理は面倒たけど, uudecode -m を
tr の代わりにつかえば 3x8bit color bin ppm, 8bit grayscale pgm をつくれる.
しかも, base64 は 3bytes binary <-|-> 4bytes text だから rgb にピッタリ.
- base64 じゃない uuencode の方が awk での encode が楽そう.
- printf "%c", g%64 + 32; g=int(g/64); でいける!
だけど, 当分後回し. - やってみたくなってきた...ガマン
* FAQ
* 最新版
http://sourceforge.jp/projects/fakesh-kobo/scm/git/fakesh_kobo/tree/master
から
root/bin/screenShot-jpeg.sh
root/bin/dispPics.sh
etc/fakesh/tools/whinker.sh
etc/fakesh/tools/addVerCheck.sh
etc/fakesh/tools/koboBackup.sh
etc/fakesh/tools/outputEKBuu.sh
root/bin/{Stop,Cont,Ping}Nickel.sh
と extra は
http://sourceforge.jp/users/fakesh/pf/fakesh_omocha/scm/tree/master/extra/
にあります.
================
Copyright © 2013 fakesh. http://sourceforge.jp/users/fakesh/
MIT/X Consortium License http://www.opensource.org/licenses/mit-license.php