Tuesday, November 29, 2011

Sauerkraut

ザワークラウトはキャベツの発酵させたもの。つまり漬物。
日本の漬物と違うのはスパイスを使う。

作り方
キャベツ1kgに対して塩20g
キャラウェイシード スプーン1杯
チリホール 1つ


刻んだキャベツを塩とキャラウェイシードとチリをまんべんなくかけて軽くもむ。
重石で空気が入らないようにフタをして冬場、この時期だと1週間程度おく。夏場は短く3~4日程度。
これでOK。

漬物の入れ物はアルコール類で消毒するか熱湯消毒しておく。

実は今まで何度も挑戦しては失敗してきたので、今回はレシピをみて正確に作ってみたらうまくできた。レシピでは酸味が強いというがちょうど良い具合に仕上がった。計量計とキャベツのスライスカッターがあると便利。

漬物を作る動機は冬を乗り切るサバイバルフードになるからで、ザワークラウトは北欧などで人気がある定番なので普段から作れるようにしておいたほうがよいと考えた。ほかに日干しというのが、切干大根とかあるけどいまいち美味しくない。

Thursday, November 10, 2011

fonera simplの解析

simplには容量の関係で設定ファイルはfilesystem上に作られていない。それなのでどうやって設定ファイルを保存しているのか興味があった。
いろいろ調べると/etc/configのデータを/tmpにリンクを張ってあり、それのイメージつくりmtd5に書き込んでいる。そのイメージの形式がよくわからない。cpioかなと思ったがコマンドないばかりかその他のコマンドも見当たらない。特殊デーモンが一連の操作を行っているらしい。

filesystemがreadonlyなのでmtd5のイメージを取り出してどうやって転送するかも悩みどころだった。tftpdというのが入っているがinetデーモンがないと動かない。唯一httpdサーバがあるのでこれを何とかして使いたい。/wwwはreadonlyなのでファイルをコピーできない。そこで、

# mount -o bind /tmp/new_mnt /www

としたらうまくいった。あとはwgetを使ってファイルを転送すればよい。

$ file mtd5.img
mtd5.img: data

ということでcpioファイルではない。試しにcpioで展開してみたが、やはりエラーがあった。基本的にはcpioと似たようなことをしている。

次にすることはwwwにあるjsの解析で、wwwサーバーを通してファイル操作している。jsでファイル操作するのは私の知るかぎり特殊なケースだと考えられる。cgiを通して操作するならわかるがjsなのでかなり特殊な印象がある。jsを使うとcgiの実装しない分、軽量になる。それなので、jsをうまく転用して使うのが得策だろう。そこで解析ということになる。私はjsに関して基本的知識しかないので理解するまでかなり時間がかかる。

---


$ svn co -r 5704 http://svn.luci.subsignal.org/luci2

zeptthoはリビジョンが上がると消えてしまうので5704を指定する。またopenwrtではluci2ではなくてluciを使っている。

でzeptthoをビルドするにはかなり面倒くさい。まずluaがshared libにしないといけない。ソースのままだとできないのでopenwrtのパッチを当てるとできる。さらにjsonを入れてmake CFLAGS="-I/usr/include/json"でビルド。それとuciもビルド。しかし

lmo/lmo_hash.c cbi2/MurmurHashAligned2.c cbi2/hmap.c cbi2/hmapx.c cbi2/cbi2.c
form.c:16:27: fatal error: microd_client.h: そのようなファイルやディレクトリはありません

microdというのが見つからない。ソースツリーにあるはずだけど見つからない。そのデーモンはfonにもあるがいったいどこから持ってくるのだろう?