ラベル MZK-W04NU の投稿を表示しています。 すべての投稿を表示
ラベル MZK-W04NU の投稿を表示しています。 すべての投稿を表示

2012年7月9日月曜日

マスクファイルの設定

撮影カメラの角度を変えればいいのだけど扇風機を使ってると常に動いてるのでとめたいと思っていたのですがようやく設定してみました。

motionでマスク画像を用意してマスクを掛けれることは知っていたのですが実際にやるまでが遅い遅い(笑)

そんなわけで早速現在の画像を取ってきてマスクを作ろうと思ってマスクファイルの形式を見てみると、「PGM」ファイルという物が必要らしい。

ファイル形式は知りませんが、PGM : portable gray map と呼ばれるらしく、motionサイトのドキュメントにもありました。

http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionGuideAlphabeticalOptionReferenceManual#mask_file

Linuxではdjpegなるコマンドで変換もできるようで試しにUbuntuで
djpeg -?
と実行したらヘルプが表示されました。手軽なところでCygwinで実行してみると…インストールされているようで同じく動きました。(openwrtのコンパイルはできなかったのですが、色々入れておいたのでようやく役に立った感じです)

同じページにコマンドも表示されているので
djpeg -grayscale -pnm mask.jpg > mask.pgm
と実行して出来上がったファイルを適当なディレクトリにコピーして/etc/motion.confをviなどで
mask_file /home/motion/mask.pgm
と設定してopenwrt再起動。
これで扇風機を動かしても記録されません(笑)

2012年6月29日金曜日

編集時 カテゴリーを変更するとcategory_id.ini.phpがおかしくなる対処

ppBlog 1.8.8


色々とテストなどを行ってinclude_onceが問題なのかもとおもいつつ直接の原因は
utils_admin.phpの292行目あたりの
$CATEGORY_ID[$i] = "$cat|".implode(',', array_filter(explode(',', $ids)));
この赤字の$cat部分。
ここでカテゴリ名だけで書き換えて保存しちゃっているのでアウトでした。
$CATEGORY_ID[$i] = "$_cat|".implode(',', array_filter(explode(',', $ids)));
正しくは$_catで引っ張ってきている元の形で書き込めばいいのです。(直後のロジックでもそうなってる)
やってることはわかるのですが変数名をアンダースコアを多用して混乱を招きやすい変数名で子チョコちょやってるとよくある罠ですね(笑)

しかしinclude_onceの弊害がはっきり出ていないのでコードを修正したままにするかどうか悩みどころですが今回書き換えた部分は
utils_admin.php 277行目あたりのところと
 if($mode=='update' || is_numeric($ontime)){  # 編集後
  //////
  //include_once ($cat_id); // get::$CATEGORY_ID
  include($cat_id); // get::$CATEGORY_ID
  //////
  $index = get_article_index($id, $orgLINES);
  list(,$cat,) = explode('|', $orgLINES[$index], 3);
  if($cat != $category){ // カテゴリーの変更あり
   foreach ($CATEGORY_ID as $i => $catid){
    list($_cat, $ids) = explode('|', $catid);
    list($__cat,) = explode("\t", $_cat);
    if(strpos($catid, $org_id)){
     $ids = str_replace($org_id, '', $ids);
     //////
     //$CATEGORY_ID[$i] = "$cat|".implode(',', array_filter(explode(',', $ids)));
     $CATEGORY_ID[$i] = "$_cat|".implode(',', array_filter(explode(',', $ids)));
     //////
    }
    if($__cat == $category){
     $_ids = array_filter(explode(',', $ids)); array_push($_ids, $_id);
     $CATEGORY_ID[$i] = "$_cat|".implode(',', $_ids);
     }
同じくutils_admin.php最後のファンクション定義の949行あたり
 function make_category_id(){
 global $CATEGORY_LIST;
 $ini = OD.'category_id.ini.php';
 rewrite_ini($ini, '', '$CATEGORY_ID');
 $CATEGORY_ID = array();
 //////
 //include_once (OD.'category.ini.php');
 include(OD.'category.ini.php');
 //////
 foreach ($CATEGORY_LIST as $i => $line){
  list($_cat,) = explode('|', $line, 2);
  list($__cat, $catlink) = explode("\t", $_cat);
  $_articles = get_articles_by_category($__cat);
  $CATEGORY_ID[$i] = array();
  foreach ($_articles as $a){
   list($id,) = explode('|', $a, 2);
   $CATEGORY_ID[$i][] = $id;
  }
  $CATEGORY_ID[$i] = "$__cat\t$catlink".'|'.implode(",", $CATEGORY_ID[$i]);
 } #foreach
 rewrite_ini($ini, $CATEGORY_ID);
}
これでとりあえず記事更新時にカテゴリを変更しても対応できるようになりました。

残る部分としてはカテゴリ名を変更したときにcategory_id.ini.phpが更新されていないので内部的な不一致が起きているところでしょうか。ま、これも一旦category_id.ini.phpを削除して記事更新を行えば正しくなるので気になるまで放置しておきます。

カテゴリー(だらだらその2)

いろいろと試しているとどうもカテゴリーなどをいじった後は
  1. category_id.ini.phpの削除
  2. 記事更新
で、category_id.ini.phpの再作成を強制的に行えばなんとなく綺麗な状態になりそう。

ただし、サブカテゴリーがある状態でカテゴリーをクリックしたときのURLのパラメータの aim= が空っぽになっているので見てみると、category_id.ini.phpのカテゴリーにカテゴリーIDが空っぽのものができているようです。
この辺の動作がとてつもなく不安定に陥ってそうです。
これが仕様なのかどうなのかは若干不明。なのでちょっと確認をして見ました。

ppBlogの本家では静的リンクになっているので試しに静的リンクを有効にしてみると…webサーバーがだめなのか記事更新をしてもまったく動作がダメに(笑)
本家の状態を見る限り、カテゴリーにサブカテゴリーが含まれていてもカテゴリーをクリックすれば該当するカテゴリーの記事を表示するようになっているのでそのように動作するのが妥当かと思われます。

実際の仕様としては親カテゴリをクリックして表示される一覧はサブカテゴリーのものも含まれているのが仕様としては正しいような気がしますが。

さて、ではどうするべきか?

問題があるのはサブカテゴリーがあるカテゴリーがあった場合の挙動。

含まれているカテゴリーは
┬カテゴリー
│└サブカテゴリー
└その他
その他はあったほうがいいのかなと思って全部削除しましたが追加しておきました。
ゼロ件になるとアンカーが無効になってしまうので記事を追加し、サブカテゴリーにも含めておいて
テストを行ってみました。

category_id.ini.phpを削除し、記事を更新すると、カテゴリー、サブカテゴリーともにaimが指定された状態。
カテゴリー、サブカテゴリーの記事のどちらも更新するだけであればaimは変化なし。
(カテゴリー15件、サブカテゴリー1件、その他1件の状態で)カテゴリーの記事をサブカテゴリーに変更して更新するとカテゴリーのaimだけが消失。カウンタは正しい。
(カテゴリー14件、サブカテゴリー2件、その他1件の状態で)サブカテゴリーの記事をカテゴリーに変更して更新すると、カテゴリーとサブカテゴリーのaimが消失。カウンタは正しい。

ここでサブカテゴリーを0件にしないために再度category_id.ini.phpを削除し、記事を更新すると、カテゴリー、サブカテゴリーともにaimが指定された状態。

(カテゴリー15件、サブカテゴリー1件、その他1件の状態で)カテゴリーの記事をサブカテゴリーに変更して更新するとカテゴリーのaimだけが消失。カウンタは正しい。

再度category_id.ini.phpを削除し、記事を更新すると、カテゴリー、サブカテゴリーともにaimが指定された状態。

(カテゴリー14件、サブカテゴリー2件、その他1件の状態で)サブカテゴリーの記事をカテゴリーに変更して更新すると、サブカテゴリーのaimがカテゴリーのaimになっている。
(category_id.ini.phpはサブカテゴリー側のIDが消えている)

サブカテゴリー→カテゴリーへの変更の更新は見かけ上aimが上書きされているように見えるがあきらかに移動もとのカテゴリーIDが消失しているということなのでしょう。

明らかに記事更新時のカテゴリー移動がダメみたいですね。

カテゴリーの不具合(だらだら)

カテゴリーの表示がずっと変わらないので気になっていたのでちょっと様子を見てみました。
いままでカテゴリー操作で行ったことは、初期のカテゴリーを全削除。新規に一つカテゴリーを追加(この状態でエラーが出ていたかどうかは気にしていなかった)
そのまま使っていたのですけどね。
早速問題となるファイル名でgrepしてソースを眺める作業。
root@mzkw04nu:/home/htdocs/blog# grep "category_id.ini.php" *.php
cache.php:  include(OD.'category_id.ini.php');
utils_admin.php: $cat_id = OD.'category_id.ini.php';
utils_admin.php: if(!is_file($cat_id)) make_category_id(); // make category_id.ini.php
utils_admin.php: $ini = OD.'category_id.ini.php';
色々見ていくうちに「サブカテゴリー」の設定が無いからかも…という気がしたので試しに追加してみると…
Warning: include(owner/category_id.ini.php) [function.include]: failed to open stream: No such file or directory in /home/htdocs/blog/cache.php on line 139

Warning: include() [function.include]: Failed opening 'owner/category_id.ini.php' for inclusion (include_path='.:') in /home/htdocs/blog/cache.php on line 139

Warning: Invalid argument supplied for foreach() in /home/htdocs/blog/cache.php on line 141
設定画面でエラーが出るようになった(笑)

サブカテゴリーを削除するとエラーの表示はなくなったが、トップページの表示からカテゴリーが表示されなくなる状態に。

とても気になるのが utils_admin.php の function make_category_id() 中の include_one() のところ。
include_once 
実行中の環境に依存すると思うがinclure_oneは一度メモリーに取り込まれると2回目からは読み込まれないということなので、おそらくここが問題になっているのかな?という気がしたので試しに includeに変更。

サブカテゴリーを追加したり削除してもエラーは出なくなった。
トップページは依然としてカテゴリー表示が行われないので、記事を一つ編集画面を表示させて何も変更せずに更新してみると…
表示がまともになりました。

ここでinclude_oneに戻してから操作してみると問題はなさそうな挙動になるのはカテゴリーがまともになったからだと信じたい…
サブカテゴリーの表示がトップページのカテゴリーの枠に表示されないのが気になったので色々と更新したりサブカテゴリーを削除してみたり「その他」を追加してみたりしたところ、途中からカテゴリー名の右側の"[" "]"の中の数字が16から15に減っていることに気づいた。

category_id.ini.php の内容と記事一覧のURLのIDを見比べてみると一番上(最新のもの?)がcategory_id.ini.phpに含まれていないようだった。

思い切って category_id.ini.php を削除
カテゴリー名の変更が面で 更新ボタンを押すと…
Warning: include(owner/category_id.ini.php) [function.include]: failed to open stream: No such file or directory in /home/htdocs/blog/cache.php on line 139

Warning: include() [function.include]: Failed opening 'owner/category_id.ini.php' for inclusion (include_path='.:') in /home/htdocs/blog/cache.php on line 139

Warning: Invalid argument supplied for foreach() in /home/htdocs/blog/cache.php on line 141
エラー表示が(笑)

更新しても新たに category_id.ini.php は再作成されないようなので記事を一つ編集画面を表示して公開ボタンをおして更新してみると…

トップページのカテゴリーがまともになった雰囲気。

ここでちょっとテスト。

サブカテゴリーを一つ追加して記事のカテゴリーを移動したりしていると…
サブカテゴリーの表示が行われないので見かけ上記事の表示が減ったようにみえる。
記事のカテゴリをメインに戻すと元の数に戻る。
(サブカテゴリーが表示されていない状態がだめっぽい)

サブカテゴリーにしたまま、サブカテゴリーを削除すると、数字がおかしくなったまま。

先ほどの状態に戻りました。

挙動があやしいということはおそらくcategory_id.ini.phpを読み込んでいるところで作成後の再読み込みが行われていないのが問題なのだと思う。

動作としては再作成した直後に再読み込みする処理を入れるのが妥当なのかもしれない。が、、マルチタスクだとPHPのメモリ共有の状態にもよると思うが毎回読み込む必要がありそう。

おそらく作者が処理速度改善のためにinclude_oneを使用していると思うのでこの辺の処理を入れ替えるのは難しいところ。実際問題としては読み込んだファイルのタイムスタンプを保持して更新されていたら読み込む形が一番スマートだとは思う。

2012年6月22日金曜日

幾分まともに

ソースを書き換えて入れ替え終わっていたと思って写真をアップロード。
3分以上かかってようやく完了。

…おかしい…

ソースが変わってなかったですorz

寝ながら複数の環境をみつつやってるとこんなものですね。

気を取り直し書き換えて別の写真をアップしたところ25秒ほどで戻ってきました。
リサンプリングではないのでジャギーが目立ちますけどこれで十分かな?

サクッと戻ってくれば快適なんでしょうけど非力なルーターですしね(笑)

せっかくなのでどこかにオプション設定できればいいのでしょうけどアドイン形式で埋め込めればいいのかなぁ。

ソースをパラパラと見ているのですがうまい切り口が見えないのでとりあえずはここ(直接ソースを変更)まで。

2012年5月31日木曜日

ppBlog: 写真のアップロードから動かなくなる

写真のアップロードがとても重たい。
そもそもルータに対してやらせる処理ではないということは明らかですけど(笑)
最初は時間がかかりすぎて処理が止まって編集画面がうんともすんとも言わなくなり勘でタイムアウトかな?ということで/etc/php.ini のmax_execution_timeoutの設定値を30→300に変更しました。
アップロードは行われるようになったのですが、やはり時間が…。
luciの表示が行われなくなるのでターミナルからtopを叩いて直接見てみると。
Mem: 28296K used, 1132K free, 0K shrd, 128K buff, 2944K cached
CPU:  99% usr   0% sys   0% nic   0% idle   0% io   0% irq   0% sirq
Load average: 1.10 0.69 0.45 2/49 8774
  PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
 8774  1435 root     R    40808 139%  97% /usr/bin/php-cgi /www/blog/upload.php
 1443  1442 root     S     5096  17%   3% motion
 4017  2378 root     R     1380   5%   0% top
 1438     1 root     R     5096  17%   0% motion
 1444  1442 root     S     5096  17%   0% motion
 1442  1438 root     S     5096  17%   0% motion
 1476     1 root     S N   2632   9%   0% smbd -D
 1478     1 root     S     2132   7%   0% nmbd -D
 1487     1 nobody   S     1960   7%   0% proftpd: (accepting connections)
 1006     1 root     S     1516   5%   0% wpa_supplicant -B -P /var/run/wifi-wl
  387     1 root     S     1500   5%   0% syslogd -C128
 2378  2377 root     S     1392   5%   0% -ash
 1279     1 root     S     1388   5%   0% udhcpc -t 0 -i wlan0 -b -p /var/run/d
    1     0 root     S     1384   5%   0% init
  367     1 root     S     1384   5%   0% init
  529     1 root     S     1380   5%   0% udhcpc -t 0 -i eth1 -b -p /var/run/dh
 1498     1 root     S     1380   5%   0% watchdog -t 5 /dev/watchdog
  369   366 root     S     1376   5%   0% logger -s -p 6 -t sysinit
  366     1 root     S     1376   5%   0% /bin/sh /etc/init.d/rcS S boot
  389     1 root     S     1372   5%   0% klogd
こんな感じでメモリーも完全にスワップアウトしてシステムがロックしてる感じになってしまいます。
アップロードのオプションでリサイズ指定があるのがあるのに指定しても使用量は小さくなりません。
ソースを見ていませんが、一度jpegをメモリー展開してから処理に入っている感じがします。
とりあえず画像の扱い方を内部展開しないでファイルとしてそのまま処理できるように改良するのがよいのかも。

参考
PHPのタイムアウト対策 http://kikky.net/pc/php_timeout.html

2012年5月1日火曜日

motion

motionで簡単にjpeg画像は保存できたが、やはりバラバラのファイルよりは動画として一つのファイルの方が扱いやすいのでなんとかならないかと調べてみました。

motionではffmpegを利用することによって内部的にファイルを作成できるようだが…残念なことにうまく動いていないようです。
ターミナルなどから単独で起動を行ってみると
root@mzkw04nu:/etc# motion
[0] Processing thread 0 - config file /etc/motion.conf
[0] Unknown config option "ffmpeg_cap_new"
[0] Unknown config option "ffmpeg_cap_motion"
[0] Unknown config option "ffmpeg_timelapse"
[0] Unknown config option "ffmpeg_timelapse_mode"
[0] Unknown config option "ffmpeg_bps"
[0] Unknown config option "ffmpeg_variable_bitrate"
[0] Unknown config option "ffmpeg_video_codec"
[0] Unknown config option "mpeg_filename"
[0] Unknown config option "ffmpeg_video_codec"
[0] Unknown config option "movie_filename"
[0] Motion 3.2.11.1 Started
[0] Thread 1 is from /etc/motion.conf
[1] Thread 1 started
[1] cap.driver: "uvcvideo"
[1] cap.card: "UVC Camera (046d:0994)"
[1] cap.bus_info: "usb-ar71xx-ehci-1.2"
[1] cap.capabilities=0x04000001
[1] - VIDEO_CAPTURE
[1] - STREAMING
[1] Supported palettes:
[0] motion-httpd/3.2.11.1 running, accepting connections
[0] motion-httpd: waiting for data on port TCP 8082
[1] 0: MJPG (MJPEG)
[1] 1: YUYV (YUV 4:2:2 (YUYV))
[1] index_format 6 Test palette YUYV (352x288)
[1] Using palette YUYV (352x288) bytesperlines 704 sizeimage 202752 colorspace 00000008
[1] found control 0x00980900, "Brightness", range 0,255
[1]     "Brightness", default 128, current 128
[1] found control 0x00980901, "Contrast", range 0,255
[1]     "Contrast", default 32, current 32
[1] found control 0x00980902, "Saturation", range 0,255
[1]     "Saturation", default 32, current 32
[1] found control 0x00980913, "Gain", range 0,255
[1]     "Gain", default 0, current 0
[1] mmap information:
[1] frames=4
[1] 0 length=202752
[1] 1 length=202752
[1] 2 length=202752
[1] 3 length=202752
[1] Using V4L2
[1] Resizing pre_capture buffer to 1 items
[1] Started stream webcam server in port 8081
 と表示され、ffmpeg系のオプションが(旧体系)のものも含めて認識できないと怒られています。
motionのドキュメントを見る限り、ffmpegが利用できる環境で無い場合はコメントアウトしないとエラー表示になるようになっているようなので、motion自体がffmpegを認識できていないようです。

openwrt motion ffmpegなどのキーワードで検索を行ったところ、同様のはまり方をされている人も多々いらっしゃるようで…debianでは普通に動いているようなので、やはりソースからコンパイルする必要があるかも。

試しにスナップショットのチャンクのffmpegをインストールしたところ結果は一緒。(きちんと組み込めたかは不明ですが(笑))

10.03.1のffmpegは少しバージョンが古い(FFmpeg version 0.5.4)のでmotionのドキュメントにもあるように全てが動作するという チャンクのほうの0.8がインストールできれば動くかもと少し淡い期待があったのですが残念です。

現状だとイベントで動画ファイルに変換する方法でしのいでみるしかなさそうです。

2012年4月28日土曜日

メモリと悪戦苦闘

10.03.1のfinalバージョンに入れ替えたMZK-W04NUですが、ハード的な面でどうしても非力なとこで無理をしてもいいことは無いのでいろいろと最小限で行って言う項と思っています。

簡単に使用できるので環境としては申し分ないので実用的な範疇を目標に。

WEBサーバー

HTTPサーバーとしてはApacheを動かしたかったのですが、やはり消費リソースが大きいことと、現状のバージョンではスーパーデーモン配下で動作しなくなっているのでプロセス数などを制限しても使用してないときにもある程度のメモリ消費があるので組み込み系のサーバーとしては現実的ではないようです。

phpもperlもuhttpdで動作するので個人使用であればと割り切ってuhttpdの使用を試しています。

USBカメラ

ライブ感覚で使用するのはmjpg-streamerが手軽なのですが、どうしてもその他の処理を行いたいときはmotionを使用するほかは選択肢が無いようです。
motionの問題点としては解像度を上げてしまうと消費メモリが肥大化するのとCPUに負荷をかけることになるので解像度もfpsも抑えて設定したほうが良いようです。

ファイルサーバー

ファイルサーバーとしてはsambaとftpを考えています。
sambaはwindowsから手軽にファイルアクセスが可能なのでいりぐちだけでもと思ってスーパーデーモン配下で動作させて見ましたが、ほかのサーバーも統括できそうにないので現状はスタンドアローンで。
xinetdの弊害としては接続時のレスポンスが悪くなるのですが、使用していないときのメモリの開放が行われるのでwindowsクライアントがいなくなればほとんどのプロセスが自動的に終了していきました。
ftpに関してはproftpを使ってみようと思っているのですが、いままでまともに接続できたことが無いのでそろそろ本格的に設定してみようかと思っているだけで終わっています。

データベース

データベースを動かす余力があればとおもってpostgreSQLをインストールしていますが実用で気ではない予感でいっぱいです。

2012年4月10日火曜日

ハードウェアリセットがかかる

負荷テストをやっているわけではないが、どうもメモリを使い切ったときにハングアップ状態に陥って最終的にリセットがかかっているように思える現象に陥った。
ターミナルでファイルが2948個程度のディレクトリ(backfireのpackagesフォルダ)を ls -l で表示させて落ちたので気になったので何度か行ったが再現しやすかった。

ためしにswapをオンにしたりオフにしたり切り替えてみたが状況はあまり変わらず。

最初はLuciのステータスの概要でメモリー状況を確認していたが、別のターミナルでtopでみていると、lsコマンドで47%のメモリを消費していることが瞬間的に確認ができた。
1回だけlsコマンドを実行後しばらく経ってから
Killed
という表示が行われて強制的に実行が打ち切られた感じにはなったものの、その直後にlsコマンドを実行してみるとやはりハングアップ後リセットがかかった。

直接的なのか間接的なのかログが残されていないので空想の世界でしかないが、ハードウェア的なUSB関連の問題か、rootで操作しているのが問題なのかといったところ。

実験的に使っているだけなので負荷をかけるつもりは全く無いがこの手の問題は最終的に致命的な部分になるのかも。

2012年2月10日金曜日

phpinfoのエラー

date

Warning: phpinfo() [function.phpinfo]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in /htdocs/info.php on line 2
dateのところにという警告が出ていた。
警告されないためには/etc/php.iniの
[Date]
;date.timezone =
のコメントされている部分を
[Date]
date.timezone = Asia/Tokyo
とすれば警告がなくなるようだ。


http://d.hatena.ne.jp/shimooka/20090519/1242665027
http://d.hatena.ne.jp/tenkoma/20090711/1247340645

2011年12月29日木曜日

PostgreSQL databases Server.

ローカルで起動しているhttpサーバーよりpgsql-serverをインストールしたらそのまま何の応答もしなくなった。 状態としてはUSBメモリが点滅を繰り返すのみ。 電源を入れなおして外部からpingをしても反応が無し。 直接LANケーブルを差し込んで反応を見るとオールリセットがかかっているようで192.168.1.1でpingが通ってluciの画面も開くことができた。 インストールモジュールが原因でメモリーを使い切ってしまったのかhttpdが原因か判別不能。 USBのファイルシステムが破損しているかどうかは不明→要調査

調査時間がとれたので拡張してあるUSBメモリを外して再度調べてみると何の問題も起こっていないようだった。
マウント情報も問題が無かったのでUSBメモリを差し込んで動作させてみるとちゃんとつながった。
単純にUSBメモリのファイルシステムが何らかのエラーを発生させていただけで、何度か電源を入れなおしているうちに修復されたか、USB関連のチップが誤動作を起こしていて放置しておいたおかげで熱暴走が収まったのかは不明。

ただインストールされているパッケージを確認してみるとpgsql-serverパッケージが入っていない状態なので、今度は外部からファイルをインストールすると、
root@OpenWrt:~# opkg update
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/Packages.gz.
Inflating http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/packages.
root@OpenWrt:~# opkg install pgsql-server
Installing pgsql-server (9.0.1-1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/pgsql-server_9.0.1-1_ar71xx.ipk.
Installing libpq (9.0.1-1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/libpq_9.0.1-1_ar71xx.ipk.
Installing libreadline (5.2-2) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/libreadline_5.2-2_ar71xx.ipk.
Installing libncurses (5.7-2) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/libncurses_5.7-2_ar71xx.ipk.
Installing coreutils-su (8.8-1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/coreutils-su_8.8-1_ar71xx.ipk.
Installing coreutils (8.8-1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/coreutils_8.8-1_ar71xx.ipk.
Configuring coreutils.
Configuring libreadline.
Configuring libncurses.
Configuring coreutils-su.
Configuring libpq.
Configuring pgsql-server.
問題なくインストールすることができた。
途中でメモリがパンクしただけで相当な時間待っていればきちんとインストールされたのかもしれません。

2011年11月23日水曜日

無線LANの設定

Networkタブをクリック
Wifiタブをクリック
Scanボタンをクリック

一覧が表示されるのでその中から接続したいESSIDのJoin Networkボタンをクリック

Join Network: Settings ページが表示されるので
Replace wireless configuration チェック状態
WEP passphrase 暗号化キーがあれば設定
Name of the new network ルータとして使うのであればwwan、クライアント側であればwlanとでもしておく。
Create / Assign firewall-zone ルータとしておくならwan:、クライアント側であればlan:にしておく

Submitボタンを押す。

これで自動的に追加されファイアウォールゾーンにInterfaceが作成される。

2011年11月20日日曜日

extrootがうまく行かないのでフォーマットしてみました。

root@OpenWrt:/usr/sbin# mkfs.ext3 /dev/sda2
mke2fs 1.41.11 (14-Mar-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
32128 inodes, 128008 blocks
6400 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
16 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
root@OpenWrt:/usr/sbin# tune2fs
-ash: tune2fs: not found
root@OpenWrt:/usr/sbin# ls
brctl             iptables          iwpriv            pppd
chroot            iptables-restore  iwspy             telnetd
crond             iptables-save     mke2fs            uhttpd
dnsmasq           iw                mkfs.ext2         wpa_supplicant
dropbear          iwconfig          mkfs.ext3         wpad
e2fsck            iwgetid           mkfs.ext4
hostapd           iwlist            ntpd
root@OpenWrt:/usr/sbin#

フォーマットしなおしてもダメです。
root@OpenWrt:~# opkg remove block-hotplug
Removing package block-hotplug from root...
root@OpenWrt:~# ls
root@OpenWrt:~#
hotplugを外してみました。

かわりませんねぇ
root@OpenWrt:/mnt/sda2# cd ..
root@OpenWrt:/mnt# opkg remove block-extroot
Removing package block-extroot from root...
root@OpenWrt:/mnt# opkg remove block-mount
Removing package block-mount from root...
Not deleting modified conffile /etc/config/fstab.
root@OpenWrt:/mnt# opkg install block-mount
Unknown package 'block-mount'.
Collected errors:
 * opkg_install_cmd: Cannot install package block-mount.
root@OpenWrt:/mnt# cd /
root@OpenWrt:/# cd etc
root@OpenWrt:/etc# cd config
root@OpenWrt:/etc/config# ls
dhcp      firewall  luci      system    uhttpd
dropbear  fstab     network   ucitrack  wireless
root@OpenWrt:/etc/config# cat fstab

config 'global' 'automount'
        option 'from_fstab' '1'
        option 'anon_mount' '1'

config 'global' 'autoswap'
        option 'from_fstab' '1'
        option 'anon_swap' '0'

config 'swap'
        option 'device' '/dev/sda1'
        option 'enabled' '0'

config 'mount'
        option 'device' '/dev/sda2'
        option 'fstype' 'ext3'
        option 'target' '/mnt/sda2'
        option 'enabled' '1'

config 'mount'
        option 'device' '/dev/sda3'
        option 'fstype' 'ext3'
        option 'target' '/mnt/sda3'
        option 'enabled' '1'

root@OpenWrt:/etc/config# opkg update
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/Packages.gz.
Inflating http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/packages.
root@OpenWrt:/etc/config# opkg install block-mount
Installing block-mount (0.1.0-2.1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/block-mount_0.1.0-2.1_ar71xx.ipk.
Configuring block-mount.
Collected errors:
 * resolve_conffiles: Existing conffile /etc/config/fstab is different from the conffile in the new package. The new conffile will be placed at /etc/config/fstab-opkg.
root@OpenWrt:/etc/config# ls
dhcp        firewall    fstab-opkg  network     ucitrack    wireless
dropbear    fstab       luci        system      uhttpd
root@OpenWrt:/etc/config# cat fstab-opkg
config global automount
        option from_fstab 1
        option anon_mount 1

config global autoswap
        option from_fstab 1
        option anon_swap 0

config mount
        option target   /home
        option device   /dev/sda1
        option fstype   ext3
        option options  rw,sync
        option enabled  0
        option enabled_fsck 0

config swap
        option device   /dev/sda2
        option enabled  0

root@OpenWrt:/etc/config# opkg install block-extroot
Installing block-extroot (0.0.1-2.1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/block-extroot_0.0.1-2.1_ar71xx.ipk.
Configuring block-extroot.

/etc/fstab -> /tmp/fstab
となっていてリンク切れが発生している。
Init.dのfstabがdisableになっているので、これをenableに切り替えてみた。
そして再度extrootを…
変わりませんでした。

2011年11月18日金曜日

Installing block-extroot (0.0.1-2.1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/block-extroot_0.0.1-2.1_ar71xx.ipk.
Installing block-mount (0.1.0-2.1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/block-mount_0.1.0-2.1_ar71xx.ipk.
Configuring block-mount.
Configuring block-extroot.

                    Collected errors:
 * resolve_conffiles: Existing conffile /etc/config/fstab is different from the conffile in the new package. The new conffile will be placed at /etc/config/fstab-opkg.

               
               

               

               

               
                   
extrootがうまく行かないので一旦パッケージを再インストールしてみるもののスマートに入っていってくれない。


ファームウェアイメージを設定保存しないでインストールしてみるか…

2011年11月3日木曜日

時刻の設定

パッケージのインストールを行ってntpdateコマンドで設定
:~# opkg update
:~# opkg install ntpdate
Installing ntpdate (4.2.6p3-1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc5/ar71xx/packages/ntpdate_4.2.6p3-1_ar71xx.ipk.
Configuring ntpdate.
:~# ntpdate ntp.jst.mfeed.ad.jp
 3 Nov 17:38:51 ntpdate[14372]: step time server 210.173.160.57 offset 47695053.963027 sec

2011年8月18日木曜日

OpenWrt MZK-W04NU DMAエラー?

Aug 18 06:40:10 MZKW04NU user.err kernel: ath: Failed to stop TX DMA!
Aug 18 06:40:10 MZKW04NU user.err kernel: ath: DMA failed to stop in 10 ms AR_CR=0x00000024 AR_DIAG_SW=0x42000020 DMADBG_7=0x000084c0
Aug 18 06:40:10 MZKW04NU user.err kernel: ath: Could not stop RX, we could be confusing the DMA engine when we start RX up
Aug 18 06:40:10 MZKW04NU user.err kernel: ath: DMA failed to stop in 10 ms AR_CR=0x00000024 AR_DIAG_SW=0x42000020 DMADBG_7=0x00028040
Aug 18 06:40:10 MZKW04NU user.err kernel: ath: Could not stop RX, we could be confusing the DMA engine when we start RX up
何度かエラーが出ているようです。
何が原因でしょうねぇ。

これがW04NUの無線が切れるという原因なのかもしれませんが。

2011年8月10日水曜日

USBの相性

原因がまだはっきりしないのですが、MZK-W04NUでUSBコネクタの接続に色々と相性があるように感じています。
電源を入れたときと、リセットしたときとでエラーになるかならないかが変わったりしているので本当に途方にくれています。

一つの仮説としてUSB-HUBを使えば安定するのでは?という仮説を立ててみましたが、新たにUSB-HUBを購入して使ってみたところ、これもまた微妙な結果となりました。


ELECOM U2H-P4BBU


具体的にはエラーが発生するもののリトライ回数内で接続が行われるのです。

実際に使っていたところ、途中でエラーが発生して最終的に内部的に破棄されてしまい、mountはおろかusbデバイスの認識も消えてしまいました。


SANWA SUPPLY INC. USB-HUB212DS


もう一つ手元にあったUSB-HUBを試してみましたがこちらもダメでした。


ELECOM U2H-Q4SCR

発熱問題があるためなんとか放熱対策を取らなければならないと思っている製品を使用していますが、いままで試していてこれ(U2H-Q4SCR)だけまともに動作しています。

2011年7月30日土曜日

usb 1-1: device descriptor read/64, error -71

今までは特定のUSBのみこのエラーが発生していたように感じていたが、どうも起動時にUSBを差し込んでいるとこのエラーが発生することが多々あります。

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ar71xx-ehci ar71xx-ehci: Atheros AR91xx built-in EHCI controller
ar71xx-ehci ar71xx-ehci: new USB bus registered, assigned bus number 1
ar71xx-ehci ar71xx-ehci: irq 3, io mem 0x1b000000
ar71xx-ehci ar71xx-ehci: USB 2.0 started, EHCI 1.00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
nf_conntrack version 0.5.0 (460 buckets, 1840 max)
CONFIG_NF_CT_ACCT is deprecated and will be removed soon. Please use
nf_conntrack.acct=1 kernel parameter, acct=1 nf_conntrack module option or
sysctl net.netfilter.nf_conntrack_acct=1 to enable it.
usb 1-1: new high speed USB device using ar71xx-ehci and address 2
usb 1-1: device descriptor read/64, error -71
ath_hal: module license 'Proprietary' taints kernel.
Disabling lock debugging due to kernel taint
ath_hal: 2009-05-08 (AR5210, AR5211, AR5212, AR5416, RF5111, RF5112, RF2413, RF5413, RF2133, RF2425, REGOPS_FUNC, XR)
usb 1-1: device descriptor read/64, error -71
usb 1-1: new high speed USB device using ar71xx-ehci and address 3
ath_pci: trunk
wlan: trunk
wlan: mac acl policy registered
ath_rate_minstrel: Minstrel automatic rate control algorithm 1.2 (trunk)
ath_rate_minstrel: look around rate set to 10%
ath_rate_minstrel: EWMA rolloff level set to 75%
ath_rate_minstrel: max segment size in the mrr set to 6000 us
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usb 1-1: device descriptor read/64, error -71
usb 1-1: device descriptor read/64, error -71
usb 1-1: new high speed USB device using ar71xx-ehci and address 4
usb 1-1: device descriptor read/8, error -71
usb 1-1: device descriptor read/8, error -71
usb 1-1: new high speed USB device using ar71xx-ehci and address 5
usb 1-1: device descriptor read/8, error -71
usb 1-1: device descriptor read/8, error -71
hub 1-0:1.0: unable to enumerate USB device on port 1
起動時にsleepを入れるとメッセージが変わってくるので内部電圧などが不安定なのかもしれないと感じてもいます。

上記ログは read/8 となっているところがありますが、このタイプのエラーは始めて気づきました。

この種のエラー対応として何か解決策はないかと検索してみると色々出てくるのですが
「内部USBコントローラーと接続しているUSBのコントローラーの互換性の問題
http://open-wrt.ru/dev/ticket/6779
として話を結論付け、追加するUSBを別のコントローラのものに変えるという提案で締めくくられている。
クローズされているもの自体あまり無かったが、日本語で書かれた記事でも
「原因は不明だが追加するUSBを別のものに交換したら症状は出なくなった
ということなのでやはり互換性の問題なのだろうか?
でもこのUSBは今までエラーなんて出てなかった気がするんですよねぇ…RC5に入れ替えてからだとおもうんですが…
この問題はOpenWrtだけではなく、Linux全体で発生しているようでした。

2011年7月27日水曜日

何度目かのUSB関連のパッケージ

毎回色々なトラブルがあって最低限必要なパッケージがどれなのか具体的に判別がつかなかったわけですが、初期化した後試して見ました。

OpenWrt 10.03.1-rc5で必要なパッケージは…
  • kmod-scsi-core
  • kmod-usb-storage
この2つがあれば一般的なものはつながるようになっている模様。
あとは実際に必要なフォーマットと、文字コードなどが必要になってくるでしょう。
ext3で前の環境のOpenWrtでフォーマットしたUSBをつなげるだけなので
  • kmod-fs-ext3
これだけ入れてみました。(文字コードは追い追い(笑)

2011年7月23日土曜日

OpenWrt Backfire 10.03.1-rc5 インストール直後

まだ何もしていませんけど初期状態に近い状態のログとか

今のところrootパスワードとLEDの設定を遊んでみただけです。
気がついたのはLEDのRooter ModeランプとAP Modeランプが逆になっている感じがします。