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
以上です。