3 显示功能测试
· 特别说明:
当U-Boot 版本u-boot-2016.03 svn315及以上
内核 版本 linux-3.0.35 svn31及以上
linux-3.14.52 svn369及以上
linux-3.14.52 svn368及以上
烧录工具 MfgTool-MYIMX6A9-L* svn181及以上
请参考《MY-IMX6-A9系列:显示功能测试》进行测试
· 一般情况下则按照如下方法测试
说明:每项显示功能测试都需要重启系统进入到u-boot命令行,输入命令并按确认键。
示例如下:
3.1 单屏显示
说明:输入命令并按确定键,观察系统启动过程中显示屏的显示内容,即可看到Linux Logo。
LVDS1
将显示屏排线插入LVDS1(位于底板正面“J22”位置,丝印名称为“LVDS1”),启动系统,进入u-boot命令行,输入下面命令并按确定键:
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
LVDS0
将显示屏排线插入LVDS0(位于底板正面“J24”位置,丝印名称为“LVDS0”),运行系统进入u-boot命令行,输入下面命令并按确定键:
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 ldb=sin0; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
HDMI
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
提示:HDMI显示在启动过程中屏幕无Linux Logo显示。进入系统后可以使用gplay命令播放视频,可以看到视频转出在显示屏上。
视频播放命令示例如下:
$ gplay /unit_tests/akiyo.mp4
RGB
进入u-boot命令行,输入下面命令并按确定键:
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=lcd,SEIKO-WVGA,if=RGB24; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
3.2 双屏同步骤显示(dual screens synchronous display)
说明:输入命令并按确定键,在内核启动过程中可以看到两个屏幕都显示Linux Logo,并且其它对显示屏的操作也会同样显示在两个屏幕上。
LVDS1+LVDS0同步显示(LVDS1+LVDS0 synchronous display)
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 ldb=dul0 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
3.3 双屏异步显示会用到的测试命令
· 打开主显示屏的背光
$ echo 0 > /sys/class/graphics/fb0/blank
· 打开第2显示屏的背光
$ echo 0 > /sys/class/graphics/fb2/blank
· 播放指定的视频文件到视频设备(这里video17关联到主显示屏)
$ gst-launch playbin2 uri=file:///unit_tests/akiyo.mp4
video-sink="mfw_v4lsink device=/dev/video17"
· 播放指定的视频文件到视频设备(这里video18关联到第2显示屏)
$ gst-launch playbin2 uri=file:///unit_tests/akiyo.mp4
video-sink="mfw_v4lsink device=/dev/video18"
测试方法说明
1)进入u-boot命令行输入命令并按确认键待系统启动完成。
示例如下:
2)执行命令打开对应显示屏的背光。
示例如下:
3)执行视频播放命令播放视频到显示屏。
示例如下:
说明:双屏异步显示模式下,系统启动后第2显示屏的背光默认是关闭的,所以需要执行步骤2)。
LVDS1作为主屏
· LVDS1+LVDS0双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
· LVDS1+RGB双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 video=mxcfb1:dev=lcd, SEIKO-WVGA,if=RGB24; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
· LVDS1+HDMI双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
LVDS0作为主屏
· LVDS0+LVDS1双屏异步显示:
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 ldb=sep0 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
· LVDS0+RGB双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 ldb=sin0 video=mxcfb1:dev=lcd,SEIKO-WVGA,if=RGB24; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
· LVDS0+HDMI双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 ldb=sin0 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
RGB作为主屏
· RGB+LVDS1双屏异步显示:
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=lcd,SEIKO-WVGA,if=RGB24 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
· RGB+LVDS0双屏异步显示:
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=lcd,SEIKO-WVGA,if=RGB24 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666 ldb=sin0; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
HDMI作为主屏
· HDMI+LVDS1双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
· HDMI+LVDS0双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666 ldb=sin0; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
4 关于环境变量的说明
MY-IMX6系列开发板环境变量的特点
MY-IMX6 系列开发板的环境变量具有以下特点:
1. 从引导内核的介质来区说,有:eMMC、网络(tftp)。
2. 从引导文件系统的介质来说,有:eMMC、网络(NFS)。
3. 从显示设备的配置来说,有 LVDS0、LVDS1、HDMI、RGB,以及双屏不同的组合。
这时候,如果环境变量把上面三种都组合,会有不少于60条的 bootcmd 环境变量,所以我们对环境变量进行了抽象分离及重组。
再由于 bootargs 环境变量里包括 console、video、ip、root 等其它参数,所以每一种 bootcmd 对 bootargs 有很强的依赖性,以及不同的 bootcmd 之间的差别较大。无疑,bootargs 是不能通用的。
bootcmd_xxx 环境变量的流程
我们对 bootcmd 及 bootargs 按引导设备进行了抽象,抽象后 bootcmd_xxx 的流程是这样的:
1. 通过 bootargs_base 重设 bootargs,这样确保 bootargs 中不存在冲突;
2. 通过 bootargs_xxx 在 bootargs 后面添加与引导设备对应的参数;
再就 bootcmd_xxx 中“;”之后的内容就是大家很容易理解的了。
环境变量的正确设置方法
关于对环境变量正确设置的方法:
首先需要注意的是,正常情况下直接对 bootargs 设置是会无效的,因为 bootargs_base 会重设 bootargs。
需要把 bootargs 的设置写到 bootargs_base 的命令当中。
bootargs_base 所包含的内容应当只是 console 和 video,再其它的参数应当写到 bootargs_mmc 或 bootcmd_tftp 或 bootargs_nfs 中。
环境变量的正确设置方法举例
如需要设置“HDMI+LVDS1双屏异步显示”并保存环境变量,则:
1. setenv bootargs_base 'setenv bootargs console=ttymxc0,115200 video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666'
2. saveenv
上面两条命令即可。