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