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

2012年6月22日金曜日

幾分まともに

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

…おかしい…

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

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

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

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

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

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

2012年6月19日火曜日

Motion用のビュワーを作成中

Motionで監視カメラを動作させ続けていますが今のところ全く問題はありません。
ただ、OpenWrtの配布形態のバイナリではMPEG変換がどうも行われないようなので再構築する必要がありそうです。

ですがどうもよく動作を理解していないので今のところWEB/PHPでとりあえず対応しています。

2つの環境で動作させているのですが、ルータではやはり処理能力が不足気味で画像も320×240で動作させて2FPS程度が限界のようです。(保存先をメモリーにすれば幾分早くなるのかもしれませんが必要以上のコマが必要とも思わないのでこれでいいのかなと。)

またファイル数が千単位に膨れ上がるとターミナルやSAMBA接続で厳しくなっているので今のところ月別のディレクトリの中にさらに日ごとに分けて保存するようにしています。
部屋で監視させているとだいたいこれで毎日2000~4000枚のJpeg画像が生成されています。

保存形態は当初から大体このような形で大丈夫かな?と言った程度です。(MPEG運用になればまた違った形になるかもしれませんが。

ざっとした雛形は1日で出来上がったのですが細かいところでいろいろと欲が出てきていていまのところサムネイル用の画像を作成させるかどうかで仕様を悩んでいるところです。

ppBlogで実感していたのですが、どうもルータに画像処理を行わせるとどうしても処理が重すぎてどうにもならない様でどうしたものかと。
PHPで画像ファイルを扱うのは非常に簡素化されているので工夫するにしても差ほど変わらないだろうというのが今のところの感触です。
たった320×240の画像から160×120のサムネイル画像(原画自体がサムネイルじゃないかと思いますけど(笑))を生成するのに処理してるのがわかるぐらい待たされました。
画像のリサイズを行う方法は2つあり、一つは全ピクセル情報をつかってのリサンプリングしリサイズを行う方法。もう一つは単純にピクセルを間引いてリサイズを行う方法。
WindowsXPのころからこの様な処理はどちらにしてもほとんどがハードウェアなどで処理されたりCPU自体の処理能力の向上によって体感速度はあまりかわらないものなのですが、ルータでは明らかに前者よりも単純に間引いてリサイズするほうが処理時間が短く済みます。
出来上がった画像は当然不自然にはなりますが処理時間とのトレードオフと考えれば十分考える余地があります。(このへんの処理もppBlogで手を加えると処理時間が短くサクサク動くようになるのかも?とかちょっと目論んでいますがどうなることやら(笑))

2012年6月2日土曜日

cal_days_in_month はどこで定義されているのだろう?

<?php
$num 
= cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31echo "2003 年 8 月の日数は $num 日です";?>
 
Fatal error: Call to undefined function cal_days_in_month() in /home/htdocs/test_cal.php on line 2
 ちょっと使いたかったんですが、見当たらないようです。
どこで定義されているんでしょうかねぇ? 

2012年5月21日月曜日

コンパイル環境

やはりバイナリイメージを動かしていたのでは限界が見えてきたのでコンパイル環境をなんとかならないかと右往左往していましたが最終的にVirtualBoxとUbuntu11.10で落ち着いた感じです。

ただVirtualBoxが悪いのかUbuntuが悪いのかわかりませんがどうもmake中で各サイトから必要なリソースを引っ張ってくるところで何度もVM自体がフリーズしていました。

makeするときにV=99をつけると細かいメッセージまで表示されるのである程度は判断がつくようになり判断がつく限り直接ダウンロードしたものをdlフォルダに入れて対応したところまともにコンパイルが通るようになりました。

色々躓きはしましたが…。

直接的な部分ではuhttpdを手直しして使いたいだけなのでパッケージだけでもコンパイルできればとおもって始めたのですが最終的には全コンパイルをかけていました。

VMなのでコンパイルにはかなり時間がかかりました。
ざっとデフォルトで2,3時間。そこから全パッケージがまた2,3時間。
CPUを半分以上ほかのものが使用していたとは思いますが(笑)

Ubuntuはかなり今風のつくりになっていてターミナルを開くのにも一苦労です。
[ALT]+[F2]でファイル名を指定して実行できるのでそれが救いでした。(最初はどうしようかと(笑))

失敗談としてはCygwinでできるかな?と頑張っては見たのですがOpenWrtのHowToにもかいてありますが無理でした。svnでソースは持ってこれるのですが、makeをしようとするとroot権限を持っているといろいろダメみたいでした。FORCE=1をつけてやったりもしましたが…

ただ最初はfeedとかもいれてなかったし色々足りなかったのは確か。

2012年5月18日金曜日

uhttpd: index_pageの指定は一つしかできない

昨日uhttpdでindex_pageの指定で複数のファイル名を設定できたと勘違いして記事を書いてみたのですが後から見直すとどうもやはり一つしか対応できないようで、本格的にソースを見てみました。

まずソースは/package/uhttpd/srcの中にあり適当に見てみます。
$ grep "index.html" *
uhttpd-utils.c: "index.html",
コンスタントで定義されているのはuhttpd-utils.cの中ということがわかります。
static char *uh_index_files[] = {
    "index.html",
    "index.htm",
    "default.html",
    "default.htm"
};
と定義されています。確かに4つデフォルト値が配列として定義されているようです。
次にuh_index_filesはどこで使われているかというと、
 $ grep "uh_index_files" *
uhttpd-utils.c:static char *uh_index_files[] = {
uhttpd-utils.c:                         for( i = 0; i < array_size(uh_index_files); i++ )
uhttpd-utils.c:                                 strncat(buffer, uh_index_files[i], sizeof(buffer));
同ファイルの中で使用されているというのはわかります。
その部分を実際に見てみると
            else if( cl->server->conf->index_file )
            {
                strncat(buffer, cl->server->conf->index_file, sizeof(buffer));

                if( !stat(buffer, &s) && (s.st_mode & S_IFREG) )
                {
                    memcpy(path_phys, buffer, sizeof(path_phys));
                    memcpy(&p.stat, &s, sizeof(p.stat));
                }
            }
            else
            {
                for( i = 0; i < array_size(uh_index_files); i++ )
                {
                    strncat(buffer, uh_index_files[i], sizeof(buffer));

                    if( !stat(buffer, &s) && (s.st_mode & S_IFREG) )
                    {
                        memcpy(path_phys, buffer, sizeof(path_phys));
                        memcpy(&p.stat, &s, sizeof(p.stat));
                        break;
                    }

                    *pathptr = 0;
                }
            }
ここで残念なことが発覚します。
定義されているものは配列でcl->server->conf->index_fileが定義されている場合はどうやら一つしか対応できないようです。

必死に複数の指定をしていたのですが残念な結果となりました。
蛇足ですがこの index_fileは2箇所で設定されていてコマンドラインの引数と/etc/httpd.confなどの設定ファイルから取得するようになっているようでした。(細かくは見ていませんが)

やはりソースを見るのが一番早いですね。

2012年5月16日水曜日

proftp: 起動時にエラー

rebootしたときにftpがつながらなかったので気になっていたのですが、システムログに
May 16 20:56:22 mzkw04nu user.info sysinit:  - Fatal: error processing configuration file '/etc/proftpd.conf'
とエラーと表示されていました。

/etc/init.d/proftp start

として起動するので細かい点は気にしていませんでしたが、rebootで起動しないのは問題があるので少し調べてみましょう。

まず原因がわからないのでとりあえず openwrt proftp で検索してみると
OpenWrt / proftpd not work
で、「DefaultAddress  127.0.0.1」を追加すれば良いということなので/etc/proftpd.confに追加して再起動してみました。
May 16 21:06:20 mzkw04nu user.info sysinit: udhcpc: ifconfig wlan0 *.*.*.* netmask *.*.*.* broadcast +
May 16 21:06:21 mzkw04nu user.info sysinit:  - setting default address to 127.0.0.1
May 16 21:06:21 mzkw04nu user.info sysinit: udhcpc: setting default routers: *.*.*.*
May 16 21:06:21 mzkw04nu daemon.notice proftpd[1295]: localhost. - ProFTPD 1.3.3e (maint) (built Mon Nov 14 2011 19:08:02 CET) standalone mode STARTUP
May 16 21:06:21 mzkw04nu user.info sysinit: udhcpc: setting dns servers: *.*.*.*
確かに起動するようにはなりました。
が、気になるのはデフォルトアドレスをローカルとする理由はおそらく実行時にゲートウェイがあるネットワークのIPアドレスが確定していないということなので、単純に起動順序の調整で話は終わりそうです。

追加したDefaultAddressをコメントにして、/etc/init.d/proftpdのSTARTを50からntpdと同じ65に下げてみます。
その後 /etc/rc.dのリンクを再作成するためにluciのスタートアップから(/etc/init.dの変更を行うと無効になっていますがS50proftpdのリンクは存在したままです。)有効に変更します。
それから再起動。
May 16 22:00:24 mzkw04nu daemon.notice proftpd[1479]: mzkw04nu.lan - ProFTPD 1.3.3e (maint) (built Mon Nov 14 2011 19:08:02 CET) standalone mode STARTUP
問題なく起動しました。
解決方法としてデフォルトアドレスをconfに追加するか、udhcpcが起動したあと起動すればよいということでしょうね。

2012年5月8日火曜日

proftpd

sambaの接続でお茶を濁していたファイル転送ですがいろいろな意味でftpでファイル転送ができないのは好ましくないので色々試してみました。

実際にopenwrtで導入例が検索してもこれと言ったものが引っかからないので途方にくれていました。
接続まではできるもののログインしようと試すとログインできなかったわけですが。

大まかなインストールから設定までは
http://www.ksknet.net/proftpd/proftpd.html
で紹介されている通り。

opkgでバイナリインストールした場合は何もしなくてもluciのSystem/StertUpで有効にして開始すれば自動的に起動まではするのですが、問題はそこから。
有効なユーザーでログインしてログインできず。
システムログを見てみると
daemon.info proftpd[18438]: mzkw04nu.lan (192.168.250.151[192.168.250.151]) - FTP session opened.
authpriv.notice proftpd[18438]: mzkw04nu.lan (192.168.250.151[192.168.250.151]) - USER siriuth (Login failed): No such user found.
authpriv.notice proftpd[18438]: mzkw04nu.lan (192.168.250.151[192.168.250.151]) - USER siriuth (Login failed): No such user found.
authpriv.notice proftpd[18438]: mzkw04nu.lan (192.168.250.151[192.168.250.151]) - USER siriuth (Login failed): No such user found.
authpriv.notice proftpd[18438]: mzkw04nu.lan (192.168.250.151[192.168.250.151]) - Maximum login attempts (3) exceeded, connection refused
daemon.info proftpd[18438]: mzkw04nu.lan (192.168.250.151[192.168.250.151]) - FTP session closed.
という形でユーザー自体の認識ができていない状態。
rootでログインしようとすると
authpriv.crit proftpd[18423]: mzkw04nu.lan (192.168.250.151[192.168.250.151]) - SECURITY VIOLATION: root login attempted.
となっていてスーパーユーザーと一般ユーザーで反応が違っていた。

エラーメッセージとopenwrt、proftpなどで検索してみると
https://forum.openwrt.org/viewtopic.php?id=31429
のページが引っかかった。
中を見てみるとどうも同じ状況のようで最後に

AuthUserFile /etc/passwd

を追加すれば改善できたとのこと。
早速/etc/proftpd.confに追記してみると、この状態でrootはログインできなかったが一般ユーザーはログインできるように。

(shadow passwordを入れれば動くのかもしれない?)

http://www.proftpd.org/docs/directives/linked/config_ref_AuthUserFile.html

とてつもなく危険ですが内部的には設定時に
RootLogin on
でrootのログインを許可できます。

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日火曜日

suが一般ユーザーで使えない

何度やっても、rootグループに追加しても一般ユーザーからrootにスイッチできない。
siriuth@mzkw04u:/tmp$ su
Password:
su: incorrect password
siriuth@mzkw04u:/tmp$

エラーメッセージで検索したところLinuxではいくつかの制御が行われているらしい。
http://www.atmarkit.co.jp/fsecurity/rensai/unix_sec04/unix_sec01.html
一つは0(wheel)グループに所属しないとsuコマンドで拒否される方法。エラーは下記のようになるようだ。
su: you are not listed in the correct secondary group (wheel) to su root.
この場合は使用したいユーザーをグループに所属させるだけ。
エラーの内容が違うがとりあえず/etc/groupを編集しrootグループにユーザーを追加させてみたがだめ、デーモンの再起動ということでリブートしてみたけどやっぱりダメでした。
もう一つはPAM(Pluggable Authentication Module)という仕組みがあるらしく、こちらでは細かい制限が行われるようだ。が、OpenWrtにそれらしいパッケージも無く、それらしいモジュールも組み込まれていない様子。

再度検索してみたところOpenWrtのフォーラムでも上がっていた。
https://forum.openwrt.org/viewtopic.php?pid=91779
実際の解決策はbusyBoxのリコンパイルが有力だが、最後に全く違う視点のアプローチ
ssh 127.0.0.1 -l root
という考え方。
ありといえばありだがちょっと残念?

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

負荷テストをやっているわけではないが、どうもメモリを使い切ったときにハングアップ状態に陥って最終的にリセットがかかっているように思える現象に陥った。
ターミナルでファイルが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

2012年2月9日木曜日

apacheのプロセスの調整

メモリーが逼迫している環境ではできる限り不要なプロセスは起動しないほうが良いに決まっている。
(そもそもOpenWrtでapacheという選択肢も問題ですが(笑))

/etc/apache/httpd.conf
# Server-pool management (MPM specific)
#Include /etc/apache/extra/httpd-mpm.conf
コメントされている行をコメントアウト。
あとは/etc/apache/extra/httpd-mpm.confを好きなように調整
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
#    StartServers          5
    StartServers          1
#    MinSpareServers       5
    MinSpareServers       1
#    MaxSpareServers      10
    MaxSpareServers       2
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
外部からの接続をほとんど考えていないのでできる限り小規模にしてみた。

2012年1月28日土曜日

postgreSQL

バージョンは違いますが、この操作で使用する環境になりました。
https://forum.openwrt.org/viewtopic.php?id=11812
パッケージは既に導入済みなのでその他の設定から。
BusyBox v1.15.3 (2011-10-29 04:41:06 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 Backfire (10.03.1-RC6, r28680) --------------------
  * 1/3 shot Kahlua    In a shot glass, layer Kahlua
  * 1/3 shot Bailey's  on the bottom, then Bailey's,
  * 1/3 shot Vodka     then Vodka.
 ---------------------------------------------------
root@PRIME400:~# uci set postgresql.config.PGDATA=/srv/postgresql/data
root@PRIME400:~# uci set postgresql.config.PGLOG=/srv/postgresql/data/postgresql.log
root@PRIME400:~# uci commit
root@PRIME400:~# mkdir -p /srv/postgresql/data
root@PRIME400:~# chown postgres /srv/postgresql/data
root@PRIME400:~# su - postgres


BusyBox v1.15.3 (2011-10-29 04:41:06 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 Backfire (10.03.1-RC6, r28680) --------------------
  * 1/3 shot Kahlua    In a shot glass, layer Kahlua
  * 1/3 shot Bailey's  on the bottom, then Bailey's,
  * 1/3 shot Vodka     then Vodka.
 ---------------------------------------------------
postgres@PRIME400:~$ LC_COLLATE="C" initdb --pwprompt -D /srv/postgresql/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale C.
The default database encoding has accordingly been set to SQL_ASCII.
The default text search configuration will be set to "english".

fixing permissions on existing directory /srv/postgresql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 28MB
creating configuration files ... ok
creating template1 database in /srv/postgresql/data/base/1 ... ok
initializing pg_authid ... ok
Enter new superuser password:[ここでDBのパスワードを設定]
Enter it again:[ここでDBのパスワードを再入力]
setting password ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    postgres -D /srv/postgresql/data
or
    pg_ctl -D /srv/postgresql/data -l logfile start
postgres@PRIME400:~$ exit
root@PRIME400:/# /etc/init.d/postgresql start
starting postgres...
ok
root@PRIME400:/# /etc/init.d/postgresql enable
root@PRIME400:/# su - postgresql
postgres@PRIME400:~$ psql
psql (9.0.1)
Type "help" for help.

postgres=#
これで無事動く状態になりました。

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月4日金曜日

OpenWrt Backfire 10.03.1-rc6 リリース

OpenWrt Backfire 10.03.1-rc6 がリリースされていました。
日付を見ると11月1日にリリースされていたようです。

また試してみましょうかねぇ…。

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