Armadilloフォーラム

スクリプトの作成に関して

hirao-technoaccell

2014年7月22日 13時56分

お世話になっております。平尾と申します。

Armadillo-810にATB-A810WLANを接続し、対抗するPC-1にカメラ画像をWiFi(アドホック)を使ってストリーミング配信しようとしています。
 PC-1 -- WiFi -- Armadillo-810+ATB-A810WLAN=PC-2
WiFiの接続、およびMJPEGのストリーミングに関して各々個別にスクリプトを作成しPCでがストリーミング画像を確認することはできました。そこで、WiFiの設定とMJPEGのストリーミングのスクリプトを一つのスクリプトにまとめようとしましたが、うまく動作できません(最終的に自動起動にスクリプトを組み込みPC-2からのコマンド操作なしで動作させようとしています)。
個別のスクリプト動作の際に、WiFi設定後PC-2からのCtrlキー入力を待っているので、それが障害になっていると思われるのですがどのようにして対処してよいのかわかりません。基本的な質問で恐縮ですが、よろしくご指導のほどお願いいたします。

カーネル
atmark-dist v1.34.2 (AtmarkTechno/Armadillo-810)
Linux 3.4-at6 [armv7l arch]

・WiFi設定からMJPEG起動までのスクリプトシェル
#!/bin/sh
#adohock connecting
iwpriv awlan0 fwload
iwpriv awlan0 fwsetup
iwconfig awlan0 mode Ad-Hoc
iwconfig awlan0 essid Connectify-tanet1
iwconfig awlan0 enc 1234567890
iwpriv awlan0 set_cryptmode WEP64
iwconfig awlan0 channel 1
ifconfig awlan0 192.168.151.5 up
#stop uvc-gadget
killall uvc-gadget
#MJPG-streamer
mjpg_streamer -i "/usr/lib/mjpg_streamer/input_uvc.so --device /dev/video1 --yuv
--resolution QVGA --fps 30" -o "/usr/lib/mjpg_streamer/output_http.so --www /us
r/lib/mjpg_streamer/www"

そのときのメッセージ
[root@armadillo810-0 (ttySC2) ~]# ./wifi_avstream.sh
awl13: MAC is 00:1d:12:cf:5b:a2
awl13: WID=0x5, STATUS CODE=0x0
awl13: disconnected!
awl13: WID=0x5, STATUS CODE=0x1
awl13: WID=0x5, STATUS CODE=0x1
awl13: WID=0x5, STATUS CODE=0x0
awl13: disconnected!
awl13: WID=0x5, STATUS CODE=0x1
awl13: WID=0x5, STATUS CODE=0x0
awl13: disconnected!
awl13: WID=0x5, STATUS CODE=0x1
awl13: WID=0x5, STATUS CODE=0x0
awl13: disconnected!
awl13: WID=0x5, STATUS CODE=0x1
awl13: WID=0x5, STATUS CODE=0x0
awl13: disconnected!
awl13: WID=0x5, STATUS CODE=0x1
awl13: WID=0x5, STATUS CODE=0x0
awl13: disconnected!
awl13: WID=0x5, STATUS CODE=0x1
awl13: WID=0x5, STATUS CODE=0x0
awl13: disconnected!
awl13: WID=0x5, STATUS CODE=0x1
awl13: WID=0x5, STATUS CODE=0x1
awl13: connected!
sh_mobile_ceu sh_mobile_ceu.0: SuperH Mobile CEU driver detached from camera 0
MJPG Streamer Version.: 2.0
UVC webcam grabber: unrecognized option '--yuv
'
---------------------------------------------------------------
Help for input plugin..: UVC webcam grabber
---------------------------------------------------------------
The following parameters can be passed to this plugin:

[-d | --device ].......: video device to open (your camera)
[-r | --resolution ]...: the resolution of the video device,
can be one of the following strings:
QSIF QCIF CGA QVGA CIF VGA
SVGA XGA SXGA
or a custom value like the following
example: 640x480
[-f | --fps ]..........: frames per second
[-y | --yuv ]..........: enable YUYV format and disable MJPEG mode
[-q | --quality ]......: JPEG compression quality in percent
(activates YUYV format, disables MJPEG)
[-m | --minimum_size ].: drop frames smaller then this limit, useful
if the webcam produces small-sized garbage frames
may happen under low light conditions
[-n | --no_dynctrl ]...: do not initalize dynctrls of Linux-UVC driver
[-l | --led ]..........: switch the LED "on", "off", let it "blink" or leave
it up to the driver using the value "auto"
---------------------------------------------------------------

input_init() return value signals to exit[root@armadillo810-0 (ttySC2) ~]#

以上

コメント

hirao-technoaccell

2014年7月22日 16時31分

お世話になっております。平尾です。
申し訳ありません、一点記述を間違えましたので訂正いたします。

〔誤り〕
個別のスクリプト動作の際に、WiFi設定後PC-2からのCtrlキー入力を待っているので
〔訂正〕
個別のスクリプト動作の際に、WiFi設定後PC-2からのEnterキー入力を待っているので

よろしくお願いいたします。

以上

> お世話になっております。平尾と申します。
>
> Armadillo-810にATB-A810WLANを接続し、対抗するPC-1にカメラ画像をWiFi(アドホック)を使ってストリーミング配信しようとしています。
>  PC-1 -- WiFi -- Armadillo-810+ATB-A810WLAN=PC-2
> WiFiの接続、およびMJPEGのストリーミングに関して各々個別にスクリプトを作成しPCでがストリーミング画像を確認することはできました。そこで、WiFiの設定とMJPEGのストリーミングのスクリプトを一つのスクリプトにまとめようとしましたが、うまく動作できません(最終的に自動起動にスクリプトを組み込みPC-2からのコマンド操作なしで動作させようとしています)。
> 個別のスクリプト動作の際に、WiFi設定後PC-2からのCtrlキー入力を待っているので、それが障害になっていると思われるのですがどのようにして対処してよいのかわかりません。基本的な質問で恐縮ですが、よろしくご指導のほどお願いいたします。
>
> カーネル
> atmark-dist v1.34.2 (AtmarkTechno/Armadillo-810)
> Linux 3.4-at6 [armv7l arch]
>
> ・WiFi設定からMJPEG起動までのスクリプトシェル
> #!/bin/sh
> #adohock connecting
> iwpriv awlan0 fwload
> iwpriv awlan0 fwsetup
> iwconfig awlan0 mode Ad-Hoc
> iwconfig awlan0 essid Connectify-tanet1
> iwconfig awlan0 enc 1234567890
> iwpriv awlan0 set_cryptmode WEP64
> iwconfig awlan0 channel 1
> ifconfig awlan0 192.168.151.5 up
> #stop uvc-gadget
> killall uvc-gadget
> #MJPG-streamer
> mjpg_streamer -i "/usr/lib/mjpg_streamer/input_uvc.so --device /dev/video1 --yuv
> --resolution QVGA --fps 30" -o "/usr/lib/mjpg_streamer/output_http.so --www /us
> r/lib/mjpg_streamer/www"
>
> そのときのメッセージ
> [root@armadillo810-0 (ttySC2) ~]# ./wifi_avstream.sh
> awl13: MAC is 00:1d:12:cf:5b:a2
> awl13: WID=0x5, STATUS CODE=0x0
> awl13: disconnected!
> awl13: WID=0x5, STATUS CODE=0x1
> awl13: WID=0x5, STATUS CODE=0x1
> awl13: WID=0x5, STATUS CODE=0x0
> awl13: disconnected!
> awl13: WID=0x5, STATUS CODE=0x1
> awl13: WID=0x5, STATUS CODE=0x0
> awl13: disconnected!
> awl13: WID=0x5, STATUS CODE=0x1
> awl13: WID=0x5, STATUS CODE=0x0
> awl13: disconnected!
> awl13: WID=0x5, STATUS CODE=0x1
> awl13: WID=0x5, STATUS CODE=0x0
> awl13: disconnected!
> awl13: WID=0x5, STATUS CODE=0x1
> awl13: WID=0x5, STATUS CODE=0x0
> awl13: disconnected!
> awl13: WID=0x5, STATUS CODE=0x1
> awl13: WID=0x5, STATUS CODE=0x0
> awl13: disconnected!
> awl13: WID=0x5, STATUS CODE=0x1
> awl13: WID=0x5, STATUS CODE=0x1
> awl13: connected!
> sh_mobile_ceu sh_mobile_ceu.0: SuperH Mobile CEU driver detached from camera 0
> MJPG Streamer Version.: 2.0
> UVC webcam grabber: unrecognized option '--yuv
> '
> ---------------------------------------------------------------
> Help for input plugin..: UVC webcam grabber
> ---------------------------------------------------------------
> The following parameters can be passed to this plugin:
>
> [-d | --device ].......: video device to open (your camera)
> [-r | --resolution ]...: the resolution of the video device,
> can be one of the following strings:
> QSIF QCIF CGA QVGA CIF VGA
> SVGA XGA SXGA
> or a custom value like the following
> example: 640x480
> [-f | --fps ]..........: frames per second
> [-y | --yuv ]..........: enable YUYV format and disable MJPEG mode
> [-q | --quality ]......: JPEG compression quality in percent
> (activates YUYV format, disables MJPEG)
> [-m | --minimum_size ].: drop frames smaller then this limit, useful
> if the webcam produces small-sized garbage frames
> may happen under low light conditions
> [-n | --no_dynctrl ]...: do not initalize dynctrls of Linux-UVC driver
> [-l | --led ]..........: switch the LED "on", "off", let it "blink" or leave
> it up to the driver using the value "auto"
> ---------------------------------------------------------------
>
> input_init() return value signals to exit[root@armadillo810-0 (ttySC2) ~]#
>
> 以上
>

hirao-technoaccell

2014年7月22日 18時28分

お世話になっております。平尾です。
下記の件、解決いたしました。スクリプトを作成した際のコピペでMJPEGのコマンドラインにゴミが入っていたようです。

#adohock connecting
iwpriv awlan0 fwload
iwpriv awlan0 fwsetup
iwconfig awlan0 mode Ad-Hoc
iwconfig awlan0 essid Connectify-tanet1
iwconfig awlan0 enc 1234567890
iwpriv awlan0 set_cryptmode WEP64
iwconfig awlan0 channel 1
ifconfig awlan0 192.168.151.5 up
sleep 10s
#stop uvc-gadget
killall uvc-gadget
#MJPG-streamer
mjpg_streamer -i "/usr/lib/mjpg_streamer/input_uvc.so --device /dev/video1 --yuv --resolution QVGA --fps 30" -o "/usr/lib/mjpg_streamer/output_http.so --www /usr/lib/mjpg_streamer/www"

のスクリプトで、WiFiの設定に続いてMJPEGのストリーミング配信も問題なくできました。
お騒がせして申し訳ありませんでした。お詫びいたします。

以上

> お世話になっております。平尾です。
> 申し訳ありません、一点記述を間違えましたので訂正いたします。
>
> 〔誤り〕
> 個別のスクリプト動作の際に、WiFi設定後PC-2からのCtrlキー入力を待っているので
> 〔訂正〕
> 個別のスクリプト動作の際に、WiFi設定後PC-2からのEnterキー入力を待っているので
>
> よろしくお願いいたします。
>
> 以上
>
> > お世話になっております。平尾と申します。
> >
> > Armadillo-810にATB-A810WLANを接続し、対抗するPC-1にカメラ画像をWiFi(アドホック)を使ってストリーミング配信しようとしています。
> >  PC-1 -- WiFi -- Armadillo-810+ATB-A810WLAN=PC-2
> > WiFiの接続、およびMJPEGのストリーミングに関して各々個別にスクリプトを作成しPCでがストリーミング画像を確認することはできました。そこで、WiFiの設定とMJPEGのストリーミングのスクリプトを一つのスクリプトにまとめようとしましたが、うまく動作できません(最終的に自動起動にスクリプトを組み込みPC-2からのコマンド操作なしで動作させようとしています)。
> > 個別のスクリプト動作の際に、WiFi設定後PC-2からのCtrlキー入力を待っているので、それが障害になっていると思われるのですがどのようにして対処してよいのかわかりません。基本的な質問で恐縮ですが、よろしくご指導のほどお願いいたします。
> >
> > カーネル
> > atmark-dist v1.34.2 (AtmarkTechno/Armadillo-810)
> > Linux 3.4-at6 [armv7l arch]
> >
> > ・WiFi設定からMJPEG起動までのスクリプトシェル
> > #!/bin/sh
> > #adohock connecting
> > iwpriv awlan0 fwload
> > iwpriv awlan0 fwsetup
> > iwconfig awlan0 mode Ad-Hoc
> > iwconfig awlan0 essid Connectify-tanet1
> > iwconfig awlan0 enc 1234567890
> > iwpriv awlan0 set_cryptmode WEP64
> > iwconfig awlan0 channel 1
> > ifconfig awlan0 192.168.151.5 up
> > #stop uvc-gadget
> > killall uvc-gadget
> > #MJPG-streamer
> > mjpg_streamer -i "/usr/lib/mjpg_streamer/input_uvc.so --device /dev/video1 --yuv
> > --resolution QVGA --fps 30" -o "/usr/lib/mjpg_streamer/output_http.so --www /us
> > r/lib/mjpg_streamer/www"
> >
> > そのときのメッセージ
> > [root@armadillo810-0 (ttySC2) ~]# ./wifi_avstream.sh
> > awl13: MAC is 00:1d:12:cf:5b:a2
> > awl13: WID=0x5, STATUS CODE=0x0
> > awl13: disconnected!
> > awl13: WID=0x5, STATUS CODE=0x1
> > awl13: WID=0x5, STATUS CODE=0x1
> > awl13: WID=0x5, STATUS CODE=0x0
> > awl13: disconnected!
> > awl13: WID=0x5, STATUS CODE=0x1
> > awl13: WID=0x5, STATUS CODE=0x0
> > awl13: disconnected!
> > awl13: WID=0x5, STATUS CODE=0x1
> > awl13: WID=0x5, STATUS CODE=0x0
> > awl13: disconnected!
> > awl13: WID=0x5, STATUS CODE=0x1
> > awl13: WID=0x5, STATUS CODE=0x0
> > awl13: disconnected!
> > awl13: WID=0x5, STATUS CODE=0x1
> > awl13: WID=0x5, STATUS CODE=0x0
> > awl13: disconnected!
> > awl13: WID=0x5, STATUS CODE=0x1
> > awl13: WID=0x5, STATUS CODE=0x0
> > awl13: disconnected!
> > awl13: WID=0x5, STATUS CODE=0x1
> > awl13: WID=0x5, STATUS CODE=0x1
> > awl13: connected!
> > sh_mobile_ceu sh_mobile_ceu.0: SuperH Mobile CEU driver detached from camera 0
> > MJPG Streamer Version.: 2.0
> > UVC webcam grabber: unrecognized option '--yuv
> > '
> > ---------------------------------------------------------------
> > Help for input plugin..: UVC webcam grabber
> > ---------------------------------------------------------------
> > The following parameters can be passed to this plugin:
> >
> > [-d | --device ].......: video device to open (your camera)
> > [-r | --resolution ]...: the resolution of the video device,
> > can be one of the following strings:
> > QSIF QCIF CGA QVGA CIF VGA
> > SVGA XGA SXGA
> > or a custom value like the following
> > example: 640x480
> > [-f | --fps ]..........: frames per second
> > [-y | --yuv ]..........: enable YUYV format and disable MJPEG mode
> > [-q | --quality ]......: JPEG compression quality in percent
> > (activates YUYV format, disables MJPEG)
> > [-m | --minimum_size ].: drop frames smaller then this limit, useful
> > if the webcam produces small-sized garbage frames
> > may happen under low light conditions
> > [-n | --no_dynctrl ]...: do not initalize dynctrls of Linux-UVC driver
> > [-l | --led ]..........: switch the LED "on", "off", let it "blink" or leave
> > it up to the driver using the value "auto"
> > ---------------------------------------------------------------
> >
> > input_init() return value signals to exit[root@armadillo810-0 (ttySC2) ~]#
> >
> > 以上
> >

at_daisuke.sasaki

2014年7月22日 18時33分

佐々木大輔です。

問題発生時のログを見て気になったのですが、
以下のログで--yuvのオプションがunrecognized optionとなっています。

> MJPG Streamer Version.: 2.0
> UVC webcam grabber: unrecognized option '--yuv

従い、mjpg_streamerの実行コマンドがおかしいのではないでしょうか?

以下のコマンド部分ですが、2行に分かれてしまっていませんか?

> mjpg_streamer -i "/usr/lib/mjpg_streamer/input_uvc.so --device /dev/video1 --yuv
> --resolution QVGA --fps 30" -o "/usr/lib/mjpg_streamer/output_http.so --www /us
> r/lib/mjpg_streamer/www"

シェルは、ひとつづきのコマンドは改行を入れずに記載する必要があります。
可読性などの観点から2行に分けたい場合には、行末に"\\"を入れる必要があります。

mjpg_streamer -i "/usr/lib/mjpg_streamer/input_uvc.so --device /dev/video1 --yuv \
 --resolution QVGA --fps 30" -o "/usr/lib/mjpg_streamer/output_http.so --www /us

試しに、コマンドを2行に分けると同じエラーがでました。

コマンドを修正し、再度試してみて頂けますか?

at_daisuke.sasaki

2014年7月22日 18時39分

佐々木大輔です。

回答タイミングの差で、既に解決されていたようですね。
解決したようで、よかったです。

hirao-technoaccell

2014年7月22日 19時14分

佐々木様

お世話になっております。平尾です。
ご指摘のとおりでした。お手を煩わせて申し訳ありませんでした。
今後共宜しくお願い致します。

以上

> 佐々木大輔です。
>
> 回答タイミングの差で、既に解決されていたようですね。
> 解決したようで、よかったです。