ブログ

Armadillo-840のLCD描画内容をHDMIにコピーする

at_takuya.sasaki
2016年10月30日 10時37分

Armadillo-840には、表示出力がLCDとHDMIの2系統あります。 LCD側に表示している内容を、そのままHDMI側にもコピーして出力する方法を検討してみました。

1. GStreamerを使う

以下のようなパイプラインで試してみました。メリットはHDMI側の解像度に合わせてスケーリングができることですが、デメリットはCPU使用率がほぼ100%近く占有してしまいます。

[root@armadillo840-0 (ttySC2) ~]#gst-launch-1.0 -e multifilesrc location=/dev/fb1 ! \ 
"video/x-raw,width=800,height=480,format=BGRx,framerate=1/30" ! \
videoconvert ! videoscale ! video/x-raw,width=1366,height=768 ! fbdevsink device=/dev/fb0

2. ddを使う

ddを使ってコピーする方法を試しました。HDMI側の解像度はLCD側に合わせる必要がありますが、 CPU使用率は数%に収まります。

まずは解像度をLCD側に合わせます。縦はLCD側と同じでなくても大丈夫そうです。

[root@armadillo840-0 (ttySC2) ~]# echo "V:800x600p-60" > /sys/class/graphics/fb0/mode

あとは、以下のようなシェルスクリプトを実行するだけです。

#/bin/sh
while true
do
        dd if=/dev/fb1 of=/dev/fb0 > /dev/null 2>&1 bs=3200 count=480
done

以上です。