2011年8月16日火曜日

OpenWrt x86 mjpg-streamer のその後

何度か起動を繰り返しているうちにUSBカメラを差し込んだ状態で起動しているとuvcvideoのエラーが表示されていないことに気づきました。

さらにLuciに接続しようとしたところうまくつながりません。

いままでLuciはhttpd用にあらかじめ8080ポートに移動していたのですが、http返される内容は

501: Not Implemented!
no www-folder configured
となっていて、mjpg-streamerが8080ポートで動作している気配がします。
さらにUSBカメラのLEDがついています。いやはや、これがインターネットに垂れ流されてると思うと怖いですがそんなことはありません(笑)

ちょっとづつ確認していきましょうか。
Luciの System/Startup を見ると mjpg-streamer は disabled になっているのですが、Status/Processesで確認すると mjpg-streamer のプロセスが居ます。
少し怖いのがmjpg-streamerがどうも/wwwディレクトリを使用している感じがすることです。
しかし一体どこで立ち上がっているのでしょうか、、、

System Logを確認すると firewall, dropbear, dnsmasq,が起動された後、MJPEG-streamerが起動されているようです。
抜き出してみると、

user.info MJPG-streamer [938]: starting application
user.info MJPG-streamer [938]: MJPG Streamer Version: svn rev: exported
user.info MJPG-streamer [938]: Using V4L2 device.: /dev/video0
user.info MJPG-streamer [938]: Desired Resolution: 640 x 480
user.info MJPG-streamer [938]: Frames Per Second.: 5
user.info MJPG-streamer [938]: Format............: MJPEG
user.info MJPG-streamer [938]: www-folder-path...: disabled
user.info MJPG-streamer [938]: HTTP TCP port.....: 8080
user.info MJPG-streamer [938]: username:password.: disabled
user.info MJPG-streamer [938]: commands..........: enabled
user.info MJPG-streamer [938]: starting input plugin input_uvc.so
user.info MJPG-streamer [938]: starting output plugin: output_http.so (ID: 00)
確かに8080ポートで起動しているようです。安心したのはwww-folder-pathがdisabledになっているので破壊することはないでしょう。(出力されているか不明なので無用な心配なのかもしれませんが)

起動時パラメータのこともあるので、実際にどこで起動がかかってしまうのか突き止める必要があります。
ためしに、System/StartupでDisabledになっている状態で遊び心に Stop をさせてみると、画面が崩れました。
xmlのスタイル適用がないようです。
リモートでpsを確認してみるとなくなっています。
httpの崩れた画面をブラウザの「戻る」で戻し再表示させてみると変化はないのでつぎはStatus/Processesです。
コマンドに0% smbd -D と表示されていたりその行のMemory usageが1988とか意味不明な表示になっているのは気にしないことにして、mjpg-streamerが立ち上がっていることを示す断片は無いようです。
webcamもこの状態でLEDのランプが消えています。ちゃんと落ちている感じがします。
ほんとに誰が起動しているのでしょう。

System/Startupの画面で止められたということは少なくてもinit.dの中で起動されている感じがします。何度も言いますが、Linuxの知識はほとんど無いので感だけが頼りとなります(笑)

何度か再起動してみます。
usbcamのLEDが点灯しています。

何も変わっていないですからね(笑)
なにもわからないまま/etcを覗いてみると、mjpg-streamerというものがいらっしゃいます。
cat mjpg-streamer

config mjpg-streamer core
        option device           "/dev/video0"
        option resolution       "640x480"
        option fps              "5"
        option port             "8080"
        option enabled          "true"
option enabledがtrueになっているのが明らかに怪しいです。
viで編集してみました。
config mjpg-streamer core
        option device           "/dev/video0"
        option resolution       "640x480"
        option fps              "5"
        option port             "8080"
#       option enabled          "true"
        option enabled          "false"
再起動してみましょうか。
usbcamのLEDは消えたままです。起動は止まったようです。
System Logを確認しても  mjpg-streamer 関連のものはなくなりました。

とめることには成功したのでコマンドで実際にたたいて見ましょう。
mjpg_streamer  -i "input_uvc.so -f 15"  -o "output_http.so -w /mnt/temp/mjpg-streamer-r63/www -p 8088"
以前の状況なので/mnt/tempの中にはダウンロードしたパッケージが展開されています。
httpからアクセスすると正しく表示されました。
エラーが出ていないのでもしかしたら、コントロールができるかもとボタンを押してみましたが無反応でした。
やはりuvcドライバの様子を見るしかありませんねぇ。
気になるCPUリソースはほとんど消費していなく、帯域に関しては現状のネットワーク環境で十分そうです。

(追記)
そして…止まるようにはなりましたが、System/Startupからも 起動できなくなりました(笑)
設定ポイントが間違ってそうですねぇ。

0 件のコメント:

コメントを投稿