fakesh-omocha version 2
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 を読めればつかえるはずです.
fakesh 本体(整備中) のなかで, 単独でつかっても役にたちそうな
sh scripts を集めたものです.
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.
つかいたは 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
output: /mnt/onboard/screenShots/001.jpg
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
raw1r(raw BW reverse video) でも変換に結構時間がかかる.
PROMPT# time screenShot-raw1r.sh conv ./thePict-rv wait < thePict.raw.gz
output: /mnt/onboard/thePict-rv.raw.gz
real 1m 39.94s
user 1m 0.16s
sys 0m 39.59s
E-ink の残像軽減になるかな?
PROMPT# zcat thePict-rv.raw.gz | /usr/local/Kobo/pickel showpic 1
PROMPT# zcat thePict.raw.gz | /usr/local/Kobo/pickel showpic 1
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 は処理能力が低いけど,
画素が少ないので速くなるか遅くなるかは不明.
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 になるようだ.
http://upload.wikimedia.org/wikipedia/commons/0/02/CIExy1931.svg
+ fakesh-logo.jpg
screenShot-jpeg.sh で撮ったショットサンプル.
元の png を /mnt/onboard にコピーして撮った. (jpegtran 不使用版)
version 1 のものは jpegtran の BUG のせいでおかしい. 今度はダイジョブ
fakesh 本体 には含めない
+ conv-etc-images.sh
screenShot-jpeg.sh をつかった sample script.
/mnt/onboard/etc_images の画像を ppm に変換して
/mnt/onboard/etc_images に保存する.
background で走りつづけるが, 2時間以上かかる.
umount されようが nickel が死のうが走りつづける.
電池はかなりへる.
fakesh 本体 では /etc/fakesh/tools/ に配置. ($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の内蔵microSDと差し替えられるようなmicroSDを外付microSDにつくる.
CHS と partition 配分は自動(fakeshの好み)だが, partition 配分は設定可能.
command line からの実行は interactive (YES と type するかどうか).
fakesh 本体 では /etc/fakesh/tools/ に配置. ($PATH には入っていない)
+ outputEKBuu.sh
koboBackup.sh に addVerCheck.sh をつかって別パッケージ "簡単koboバックアップ"
をつくる script. koboBackup.sh と addVerCheck.sh は同じ directory に配置されて
いなければならない. ssh でつかいやすいように base64 で KoboRoot.tgz を stdout
に出力.
* 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-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*
もっと, ちゃんと詳しく書く. でもつかれた....
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/users/fakesh/pf/fakesh_kobo/scm/tree/master
から
etc/fakesh/tools/whinker.sh
root/bin/screenShot-jpeg.sh
etc/fakesh/tools/conv-etc-images.sh
etc/fakesh/tools/addVerCheck.sh
etc/fakesh/tools/koboBackup.sh
etc/fakesh/tools/outputEKBuu.sh
にあります.
================
Copyright © 2013 fakesh. http://sourceforge.jp/users/fakesh/
MIT/X Consortium License http://www.opensource.org/licenses/mit-license.php