tomoyuki
2014年8月4日 18時44分
基本的なことを教えてください。
スタートアップガイドの「5.5. AVコーデックミドルウェア」にある mp4 のLCD画面での再生で
gstreamerがエラーになります。
[root@armadillo840-0 (ttySC2) ~]# gst-launch-1.0 filesrc location=/mnt/big-buck-bunny-30sec-800x480.mp4 \ > ! qtdemux name=demux0 \ > demux0.audio_0 ! queue ! acmaacdec ! audioresample ! audio/x-raw,rate=48000,channels=2 \ > ! alsasink device=hw:1 \ > demux0.video_0 ! queue ! acmh264dec ! acmfbdevsink device=/dev/fb1 Setting pipeline to PAUSED ... ERROR: Pipeline doesn't want to pause. ERROR: from element /GstPipeline:pipeline0/GstAcmH264Dec:acmh264dec0: Resource not found. Additional debug info: gstacmh264dec.c(581): gst_acm_h264_dec_open (): /GstPipeline:pipeline0/GstAcmH264Dec:acmh264dec0: Failed open device (null). (Bad address) Setting pipeline to NULL ... Freeing pipeline ...
現在のarmadilloの環境は以下です。
・linux-a840-v1.04.bin.gz
・romfs-a840-v1.03.img.gz
コメント
tomoyuki
佐々木さん
rc.localは編集していません。
https://armadillo.atmark-techno.com/forum/armadillo/801 に同様の症状を見つけました。
ただし、ここの記載されている対策では解決しておりません。
■もともとの状態
・linux-3.4-at8
・atmark-dist-20140602.tar.gz
[root@armadillo840-0 (ttySC2) ~]# cat /sys/devices/platform/acm.0/codec decoder encoder [none] [root@armadillo840-0 (ttySC2) ~]# echo decoder > /sys/devices/platform/acm.0/codec [root@armadillo840-0 (ttySC2) ~]# acm acm.0: failed to request firmware
■ACMデバドラが入っている(はず)のパッケージ linux-3.4-at6 をビルド
[root@armadillo840-0 (ttySC2) ~]# cat /proc/version Linux version 3.4-at6 (atmark@atde5) (gcc version 4.6.3 (Debian 4.6.3-14atmark1) ) #1 PREEMPT Thu Aug 7 15:50:43 JST 2014
dmesg見ると、起動時にdecoderのロードを失敗している。
load decoder firmware: acm acm.0: failed to request firmware
■標準イメージを使用
http://armadillo.atmark-techno.com/armadillo-840/downloads
・linux-a840-v1.05.bin.gz
・romfs-a840-v1.03.img.gz
やはり起動時にdecoderのロード失敗。
[root@armadillo840-0 (ttySC2) ~]# zcat /proc/config.gz | grep ACM CONFIG_VIDEO_ACM=y CONFIG_VIDEO_ACM_DECODER=y CONFIG_VIDEO_ACM_ENCODER=y # CONFIG_FB_MACMODES is not set # CONFIG_USB_ACM is not set # CONFIG_USB_G_ACM_MS is not set # CONFIG_USB_G_UVC_ACM_ETHER is not set
[root@armadillo840-0 (ttySC2) ~]# cat /sys/devices/platform/acm.0/codec decoder encoder [none] [root@armadillo840-0 (ttySC2) ~]# echo decoder > /sys/devices/platform/acm.0/codec [root@armadillo840-0 (ttySC2) ~]# acm acm.0: failed to request firmware
--
たなか
at_daisuke.sasaki
佐々木大輔です。
引用して頂いた別スレッド(https://armadillo.atmark-techno.com/forum/armadillo/801)の対策では
解決していないとの事ですが、、、
問題箇所の切り分けのため、起動時のログを見せて頂けますか?
tomoyuki
佐々木さま
たなかです。お世話になっております。
> 問題箇所の切り分けのため、起動時のログを見せて頂けますか?
dmesgを添付します。
ファイル | ファイルの説明 |
---|---|
dmesg.20140811.txt | |
var_log_messages.20140811.txt | |
proc_cpuinfo.20140811.txt |
tomoyuki
佐々木さま
たなかです。お世話になっております。
Firmware を再度書き換えた所 (squashfs-a800-firmware-v3.00.img)、
codecがロードされ、gst-launchが動作しました。
お手数をお掛けしました。
ファイル | ファイルの説明 |
---|---|
dmesg.20140812.txt |
at_daisuke.sasaki
佐々木大輔です。
> Firmware を再度書き換えた所 (squashfs-a800-firmware-v3.00.img)、
> codecがロードされ、gst-launchが動作しました。
問題が解決されたとの事で安心しました。
現在出荷されているArmadillo-800シリーズを使用し、
AVコーデックミドルウェアを使った製品マニュアルの手順を行う場合は、
ファームウェアを更新する必要があります。
#すぐに気付かずすみません。。。
他の方も同様の問題に当たる可能性があるので、
本スレッドにファームウェアの更新手順を記載しておきます。
1. ATDE5にファームウェアをダウンロードする。
ATDE5のブラウザで以下にアクセスし、ファームウェアをダウンロードしておく。
https://users.atmark-techno.com/download/armadillo-840
→Armadillo-800シリーズ Firmwareパーティション用イメージファイル
ダウンロードファイル:squashfs-a800-firmware-v3.00.img
ファイルはATDE5の/var/www/に格納してください。
※本ファイルをダウンロードするためには、購入製品登録が必要です。
購入製品登録の方法については、以下のマニュアルを参照ください。
http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
2. Armadillo-810/Armadillo-840のnetflashコマンドによりファームウェアを書き込む
Armadillo上で以下のコマンドを実施しファームウェアを更新する。
[armadillo ~]# echo 0 > /sys/class/mtd/mtd3/ro [armadillo ~]# netflash -b -k -n -u -s -r /dev/flash/firmware http://{ATDE5のIPアドレス}/squashfs-a800-firmware-v3.00.img
ファームウェアの更新が完了したらArmadilloを再起動し、ファームウェアがマウントされる事を確認してください。
ファームウェアを含むFlashの書き換え方法の詳細については、以下を参照してください。
http://manual.atmark-techno.com/armadillo-810/armadillo-810_product_man…
at_daisuke.sasaki
2014年8月6日 21時17分
佐々木大輔です。
以下のコマンドを実行した結果はどうなっていますか?
H.264デコーダを使用する場合は、この設定がdecoderになっている必要があります。
設定が異っている場合、記載していただいたエラーメッセージが出力されます。
※別の原因もあるかもしれません。
以下のようにするとdecoderに変更する事ができます。
上記の原因で正しい場合ですが、
Armadillo-840を使用している場合には、通常起動時に「/etc/config/rc.local」により
decoderに設定されるはずです。
rc.localは変更していますか?