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