ByToradex秦海
1).简介
对于一些嵌入式领域应用如医疗,车辆等,多屏显示应用是须要的,因而本文就基于NXPiMX6嵌入式ARM平台来实现双屏显示应用。
本文所采用的测试平台为来自Toradex的ARM计算机模块平台ColibriiMX6DL搭配其对应的开发载板ColibriEvaBoard.
2.打算
a).ColibriiMX6DL系统分别通过X18联接LVDSLCD屏(1024x768)和X5DVI插口联接标准DVI液晶显示器。
b).ColibriiMX6DL模块须要联接FFC排线和ColibriEvaBoardX6联接红旗linux6.0教程,如右图所示
c).ColibriiMX6DL系统使用ToradexLinuxReleaseV2.6.1,不过原生没有包含Qt库,须要基于ToradexOpenembedded环境添加Qt相关并重新编译,构建环境和编译相关请参考这儿,涉及到添加Qt5以及linuxfb支持的更改请参考下边两个patch文件,之后按照这儿说明将重新编译好的image文件更新到ColibriiMX6DL模块里面去。
./angstrom-lxde-image.bb添加Qt5X11支持库
./qtbase_git.bb添加linuxfb支持
d).ColibriiMX6DLUboot环境变量如下设置来使能双屏配置,此配置LVDS作为主屏显示X11桌面,DVI显示器作为副屏
----------------------------
ColibriiMX6#setenvvidargs‘video=mxcfb0:dev=lcd,1024x768M@60,if=RGB666mxc_hdmi.only_cea=1video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24fbmem=32M’
----------------------------
3).播放视频测试
a).借助videotestsrc元素测试DVI显示器”/dev/video18”输出
----------------------------
gst-launch-1.0-vvideotestsrc!imxv4l2sinkdevice=/dev/video18force-aspect-ratio=trueoverlay-width=1920overlay-height=1080
----------------------------
b).测试DVI显示器播放1080P高清视频“fullhdvideo.mkv”
----------------------------
gst-launch-1.0-vfilesrclocation=/home/root/fullhdvideo.mkv!video/x-matroska!aiurdemux!vpudec!imxv4l2sinkdevice=/dev/video18force-aspect-ratio=trueoverlay-width=1920overlay-height=1080
----------------------------
c).测试LVDS和DVI显示器同时播放1080P高清视频“fullhdvideo.mkv”
----------------------------
gst-launch-1.0-vfilesrclocation=/home/root/2528.mkv!video/x-matroska!aiurdemux!vpudec!imxv4l2sinkdevice=/dev/video18force-aspect-ratio=trueoverlay-width=1920overlay-height=1080&gst-launch-1.0-vfilesrclocation=/home/root/2528.mkv!video/x-matroska!aiurdemux!vpudec!imxv4l2sinkoverlay-width=1024overlay-height=768
----------------------------
4).Qt5应用程序运行
a).测试程序请参考这儿说明,文章是基于ColibriiMX7ARM计算机模块平台的,针对本文的ColibriiMX6只须要修改下边代码中”this->gpio_out”变量为数值为”38”,之后在载板前面将X10联接器SODIMM_127管脚和X21联接器LED1管脚相连。
b).将更改编译好的程序放在ColibriiMX6模块里面进行执行
----------------------------
root@colibri-imx6#./helloworldUI-platformlinuxfb:fb="/dev/fb2"
SucessfullyexportGPIO-38
SucessfullysetGPIO-38direction
GPIO-38valuesetlow
SucessfullysetGPIO-38value
GPIO-38valuesethigh
……
----------------------------
c).清除显示,执行下边命令
----------------------------
root@colibri-imx6#cat/dev/zero>/dev/fb2
----------------------------
5).总结
本文基于NXPiMX6嵌入式平台测试了双屏显示永久免费linux服务器,其模式是一个主显示,另外一个基于framebuffer来进行操作,并具体测试了播放视频以及运行Qt程序linux系统双显示器设置linux系统双显示器设置,虽然还有一定局限性,并且早已可以实现一些比较基本的双屏需求。