“MY-IMX6-EK200 L3035测试手册”的版本间的差异

来自明远智睿的wiki
跳转至: 导航搜索
测试方法(test method)
 
第485行: 第485行:
 
  2)测试结果<br>
 
  2)测试结果<br>
 
44<br>
 
44<br>
 +
<br>
 +
 +
== '''tftp更新镜像''' ==
 +
 +
=== 测试说明 ===
 +
  可更新zImage、u-boot、u-boot环境变量。<br>
 +
 +
=== 测试方法(test method) ===
 +
  电脑端打开软件 tftpd 地址设置为需更换的文件所在的目录。<br>   
 +
  把开发板的这个网口用网线跟电脑网口连接起来。<br> 
 +
  进入u-boot命令行。<br>
 +
  1)加载环境变量<br>
 +
run load_scr; source;<br>
 +
  2)设置IP<br>
 +
  设置开发板IP:<br>
 +
setenv ipaddr 192.168.137.9<br>
 +
  设置电脑IP:<br>setenv serverip 192.168.137.99<br>
 +
  设置MAC地址:<br>setenv ethaddr 00:00:00:00:00:03<br>
 +
  测试网络: <br>ping 192.168.137.99<br>
 +
 +
* 测试结果:“host 192.168.137.99 is alive”表示测试通过<br>
 +
 +
  3)烧写zImage<br>
 +
run update_kern <br>
 +
  4)烧写u-boot环境变量<br>
 +
run update_scr <br>
 +
  5)烧写u-boot<br>
 +
run update_ubot
 +
<br>
 +
== '''复制更新镜像''' ==
 +
 +
=== 测试说明 ===
 +
  可更新zImage、u-boot环境变量。<br>
 +
 +
=== 测试方法(test method) ===
 +
  1)复制相应文件到开发板当前目录,以tftp为例<br>
 +
  电脑端打开软件 tftpd 地址设置为需更换的文件所在的目录。<br>   
 +
  把开发板的这个网口用网线跟电脑网口连接起来。<br>
 +
  2)测试连接<br>
 +
$ ping 192.168.137.99 -c 2 -w 4 <br>
 +
* 测试结果:“0% packet loss”表示测试通过<br>
 +
 +
  3)传输文件<br>
 +
$ tftp -g 192.168.137.99 -r zImage-myimx6a9 <br>
 +
$ tftp -g 192.168.137.99 -r my_environment.scr <br>
 +
  4)查看fat分区地址<br>
 +
$ fdisk -l<br>
 +
  输出信息:<br>
 +
......<br>
 +
Device Boot    Start    End    Blocks  Id System<br>
 +
/dev/mmcblk0p1            321      16320      512000  c Win95 FAT32 (LBA)<br>
 +
/dev/mmcblk0p2          19201      480896    14774272  83 Linux<br>
 +
......<br>
 +
 +
  5)手动挂载<br>
 +
$ mount /dev/mmcblk0p1 /mnt/<br>
 +
  6)复制相应的文件到/mnt目录,将原文件替换<br>
 +
$ cp zImage-myimx6a9 /mnt<br>
 +
$ cp my_environment.scr /mnt<br>
 +
  7)保存并重启<br>
 +
$ reboot<br>
 
<br>
 
<br>
  

2019年10月11日 (五) 15:51的最新版本

目录

测试前的准备


1)请按照《Linux快速启动手册》中的“Linux快速启动” -> “连接设备”进行连接。
2)请按照《Linux快速启动手册》中的“Linux快速启动” -> “启动设备”进行启动。

测试项目


网口测试

MY-I.MX6 评估板支持双网口(2个百兆网口)。

测试说明

  • 第1个以太网口位置底板正面“P4”,第2个以太网口位置底板正面“P5”。
  • 系统启动后默认开启第1个以太网口,并且默认IP为192.168.3.104。

测试方法

1) 测试第1个以太网口

  • 连接网线:用网络连接评估板“P4”与计算机网口
  • 设置计算机IP:设置计算机网口IP为192.168.3.9

MY-IMX6-EK200 L3035 2.1.2.1.png

  • 为 eth0 配置IP:$ ifconfig eth0 192.168.3.104
  • 执行测试命令:$ ping -I eth0 192.168.3.9 -c 2 -w 4
  • 观察测试结果:系统会输出类似如下信息:

--- 192.168.3.9 ping statistics ---
2packets transmitted, 2 packets received, 0% packet loss

  • 测试结果:“0% packet loss”表示测试通过

2) 测试第2个以太网口

  • 连接网线:拔下第1个网口的网线接口插入到评估板“P5”,网线另一端保持与计算机网口相连。
  • 设置计算机IP:设置计算机网口IP为192.168.3.9(如已经设置过可执行下一步骤)。
  • 设置第2个网口IP:$ ifconfig eth1 192.168.3.18,设置后系统会输出第2个网口的工作状态信息,类似如下:

smsc95xx 2-1.1:1.0: eth1: link up, 100Mbps, full-duplex, lpa 0xCDE1

  • 执行测试命令:$ ping -I eth1 192.168.3.9 -c 2 -w 4
  • 观察测试结果:系统会输出类似如下信息:

--- 192.168.3.9 ping statistics ---

2packets transmitted, 2 packets received, 0% packet loss

  • 测试结果:“0% packet loss”表示测试通过

附图

说明:
  第1个红框为网口1的测试命令
  第2个红框为网口1的测试结果
  第3个红框为网口2的IP配置
  第4个红框为网口2的状态信息
  第5个红框为网口2的测试命令
MY-IMX6-EK200 L3035 2.1.3.1.png


USB测试

测试说明

  MY-I.MX6 V2.5 评估板有2个USB HOST接口,位于底板正面“J8”。

测试方法

  1) 开始测试
  将USB设备插入底板USB接口,系统会输出类似如下信息:
usb *-*.*: new high speed USB device number * using fsl-ehci
……
  2) 测试结束
  将USB设备从底板拔出,系统会输出类似如下信息:
usb *-*.*: USB disconnect, device number *

附图

说明:
  图片上第1个红框为插入U盘时系统输出的信息;
  图片上第2个红框为拔出U盘时系统输出的信息;
  图片上第3个红框为插入USB鼠标时系统输出的信息;
  图片上第4个红框为拔出USB鼠标时系统输出的信息。
MY-IMX6-EK200 L3035 2.2.3.1.png


SD卡接口测试

测试说明

  SD卡接口位于底板背面“J25”。


开始测试

  1) 往SD卡槽插入设备
  插入SD卡到底板SD卡接口。系统输出以下信息(见附图)即表示SD接口正常:
mmc*: new high speed SD card at address ****
mmcblk*: mmcx:xxxx SA**G *.**GiB
mmcblk*: p*

  2)从SD卡槽弹出设备
  再次住SD卡槽按下SD卡,底板会弹出SD卡。系统输出以下信息(见附图)表示SD卡接口弹出正常:
mmc*: card **** removed

  3) 结束测试
  SD卡弹出后拨出SD卡即结束测试。


附图

MY-IMX6-EK200 L3035 2.3.3.1.png

音视频测试

测试说明

这项测试是通过播放有声视频验证评估板的音频功能和视频功能。

测试方法

1)准备测试
连接音频输出设备到底板正面的音频座子,音频座子在底板正面“J20”,丝印名称是“HP”。
2)执行测试

使用gplay播放一个视频,示例命令如下:
$ gplay /app_test/arm.flv
上面这条命令会使用gplay播放命令中指定的文件。

3)测试结果
执行上面的测试命令后会在评估板显示屏上看到播放的视频,听到音频设备输出的声音。


附图

MY-IMX6-EK200 L3035 2.4.3.1.png

LED(GPIO)测试

测试说明

  LED(GPIO)测试使用的CPU的管脚为“NANDF_CS0”,连接到底板上的“J4的4号管脚”,运行测试程序后GPIO会被测试程序控制输出高低电平。高低电平变化间隔为1秒。
  提示:LED(GPIO)测试需要使用到万用表,没有万用表的用户可以使用跳过进行下一项测试。


测试方法

  1)执行测试程序
  在终端下键入命令执行测试程序,示例如下:
  $ /app_test/led
  这时测试程序会控制GPIO输出高低电平,并且输出类似以下信息
Write=0
Write=1
……

  2)检测测试结果
  把万用表的地连接到开发板的地,万用表的另一条线连接到J4的4号管脚,会看到万用表的电压跳变。
  3)结束测试
  按计算机上的“Ctrl”+“C”可结束按键测试程序。


附图

MY-IMX6-EK200 L3035 2.5.3.1.png

按键测试

测试说明

  MY-I.MX6底板有4个按键,其中3个为自定义功能按键(SW2:WAKE UP,SW3:V+,SW4:V-),以及1个复位按键(SW1:nRE)。测试程序key_test可以对3个功能按键进行测试。


测试方法

  1)执行测试程序
  在终端下键入命令执行测试程序,示例如下:
  $ /app_test/key_test

  2)进行交互测试
  分别按SW4、SW3、SW2,系统会输出相应的事件信息,如:
key*** Pressed
key*** Released
  其中“key*** Pressed”信息是在按键被按下的时候被输出,“key*** Released”信息是在按键被松开的时候被输出。
  3)结束测试
  按计算机上的“Ctrl”+“C”可结束按键测试程序。
注:按下SW1(系统会复位重启)。


附图

MY-IMX6-EK200 L3035 2.6.3.1.png

串口测试

  MY-I.MX6评估板有5个串口,其中4个为用户串口(位于底板正面“J1”位置,丝印名称为“TTL_UART”),1个为调试串口(位于底板正面“P2”位置)。


测试说明

系统设备文件说明:
  • 调试串口的在系统中的设备文件是ttymxc0,用户串口的设备文件是ttymxc1、ttymxc2、ttymxc3、ttymxc4。
串口收发管脚及对应的设备文件说明:
  • UART2:发送 7,接收 9,ttymxc1。
  • UART3:发送 11,接收 13,ttymxc2。
  • UART4:发送 17,接收 15,ttymxc3。
  • UART5:发送 18,接收 16,ttymxc4。

提示:这里列出串口的收发管脚,串口所有管脚的定义请看原理图。


测试方法

  采用串口自发自收的方式进行。
  提示:这里以串口5为例,其它3个用户串口参照串口的测试方法进行测试

  1)准备测试
  短接串口5的发送发接收管脚(J1的16和18号)。

  2)执行测试
  $ ~/my-demo/linux-3.0.35/uart_test.out /dev/ttymxc4 "www.myzr.com.cn"

  3)测试结果
  如果串口正常,终端上会显示类似如下的信息:
Read Test Data finished,Read Test Data is-------www.myzr.com.cn


附图

MY-IMX6-EK200 L3035 2.7.3.1.png

RTC测试

测试说明

  受快递运输影响,MY-I.MX6 评估板发货时不带电池。测试RTC前请自备纽扣电池并安装到底板背面“BT1”上(在丝印“RTC”旁边)。


测试方法

  1)断电重启设备,查看当前系统时间和硬件时间。
  查看当前系统时钟命令如下:
$ date
  系统输出信息如下:
Thu Jan 1 00:00:59 UTC 1970
  查看当前RTC芯片时钟命令如下:
$ hwclock
  系统输出信息如下:
Tue Nov 30 00:00:00 1999 0.000000 seconds
  2)设置系统时钟,并同步到RTC芯片
  设置系统时钟命令参考如下:
$ date -s "2015-04-27 12:34:56"
  将系统时钟写入硬件时钟命令如下:
$ hwclock –w
  3)断电重启评估板,查看当前系统时钟和硬件时钟
  请参考第1步
  4)测试结果
  执行第3步以后看到的时钟为新设定的时钟。

附图

下图为测试方法中步骤1和2的截图
MY-IMX6-EK200 L3035 2.8.3.1.png

   下图为测试方法中步骤3的截图

MY-IMX6-EK200 L3035 2.8.3.2.png


WatchDog测试

测试说明

  WatchDog测试包括2项:一项是复位测试,一项是喂狗测试。


复位测试

  1)测试说明
  复位测试将启动WatchDog,但是并不喂狗,60秒后系统将会复位。

  2)执行测试
  运行/app_test/watdogrestart,示例命令如下:
$ /app_test/watdogrestart
  3)测试结果
  运行测试命令后等待60秒后,WatchDog超时,系统被复位。将会在终端看到系统重新启动输出的信息。


喂狗测试

  1)测试说明
  喂狗测试将启动WatchDog,并且每1秒钟进行1次喂狗,系统将不会因为WatchDog超时而复位。

  2)执行测试
  运行/app_test/watdogtest &,示例命令如下:
$ /app_test/watdogtest &

  3)测试结果
  运行测试命令后,系统依然正常工作,并不会因为WatchDog超时而复位。

  4)附图
MY-IMX6-EK200 L3035 2.9.3.1.png


SPI测试

  MY-I.MX6 V2.5底板上有一组SPI接口,在“J7”位置,丝印为“SPI”。


测试说明

  测试需要用到SPI接口的MISO和MOSI管脚。SPI接口的 MISO管脚在底板“J7的8号”,MOSI管脚为“J7的10号”。


测试方法

采用SPI自发送(输出)自接收(输入)的方式。
1)准备测试
短接SPI的MISO和MISO管脚,即短接底板上J7的8号和10号管脚。
2)执行测试
$ ~/my-demo/linux-3.0.35/spidev_test.out -D /dev/spidev1.0
3)测试结果
如果SPI正常,在终端上会看到如下字符:

FF FF FF FF FF FF
40 00 00 00 00 95
FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF
DE AD BE EF BA AD
F0 0D


附图

MY-IMX6-EK200 L3035 2.10.3.1.png

CAN接口测试

测试说明

  CAN测试需要用到示波器,没有示波器的客户请跳过CAN测试。

测试方法

  1)配置CAN0
  示例命令如下:
$ ip link set can0 up type can bitrate 250000

  2)配置连接示波器
将示波器的CH1和CH2连接到评估板的“R83”(在底板正面最上面的绿色座子)。
配置示波器(不会使用示波器的客户请找硬件工程师协助)。
  3)执行测试命令
$ /app_test/client_test
  4)测试结果
  执行测试命令的同时会在示波器上看到波形的变化。


附图

MY-IMX6-EK200 L3035 2.11.3.1.png

PCIE接口测试

测试说明

  系统已添加PCI接口的驱动,在启动过程中系统会检测PCI-E接口上的设备。


测试方法

  复位系统,观察系统启动输出的信息
  1)PCI-E驱动程序输出信息
  在系统启动过程中输出如下信息表示PCI-E接口驱动加载没有问题:
iMX6 PCIe PCIe RC mode imx_pcie_pltfm_probe entering.
PCIE: imx_pcie_pltfm_probe start link up.

  2)不连接PCI-E设备时的输出信息
  在系统启动过程中,如果PCI-E接口上没有连接有效的设备,系统会提示PCI-E端口“link down!”,类似如下:
link up failed, DB_R0:0x00361900, DB_R1:0x08200000!
IMX PCIe port: link down!

  3)连接有效PCI-E设备时的输出信息(这里以Intel 4965AGN为例)
  在系统启动过程中,如果PCI-E接口上检测到有效的设备,并且设备模块正常,系统会提示PCI-E端口“link up”,如下:
IMX PCIe port: link up.

  4)Linux测试命令:$ lspci
  如果在PCI-E接口上插入了有效的PCI-E设备,使用lspci将会得到该模块相关的信息,类似如下(这里连接的是Intel 4965AGN):
00:00.0 Class 0604: 16c3:abcd
01:00.0 Class 0280: 8086:4229
  如果PCI-E接口上没有连接设备,使用lspci系统将没有信息输出。


附图

下图为未连接PCI-E设备时系统输出的信息
MY-IMX6-EK200 L3035 2.12.3.1.png

下图为连接Intel 4965AGN时系统输出的信息
MY-IMX6-EK200 L3035 2.12.3.2.png

下图为连接Intel 4965AGN后,进入系统使用lspci得到的信息
MY-IMX6-EK200 L3035 2.12.3.3.png


WIFI测试

测试说明

  MY-I.MX6 评估板使用的WIFI芯片型号为RTL8188EUS。

测试方法(test method)

  1)加载WIFI模块驱动
  示例命令如下:
$ insmod /lib/modules/wifi/wlan.ko

  2)生成WIFI的config文件
  参考命令如下:
$ wpa_passphrase MYZR_TP-LINK myzrd2302 > /etc/wpa_supplicant.conf
  这条命令指定的WIFI名称是和密码是“MYZR_TP-LINK myzrd2302”,需要替换成自己可连接的WIFI名称和密码。

  3)连接WIFI网络
  示例命令如下:
$ wpa_supplicant -B –c /etc/wpa_supplicant.conf -iwlan0

4)自动获取IP
  示例命令如下:
$ udhcpc -i wlan0
  注意:这里需要确认所在的WIFI网络已启用DHCP功能。
  5)测试WIFI网络连接
  示例命令如下:
$ ping -I wlan0 www.baidu.com -c 2
  6)测试结果
  执行步骤5能ping通则表示WIFI模块工作正常。


附图

MY-IMX6-EK200 L3035 2.13.3.1.png

MY-IMX6-EK200 L3035 2.13.3.2.png


IPU测试

测试说明

整个IPU测试过程完成需要十几分钟。


测试方法

  1)执行测试
  进入测试程序所在目录(一定要进入测试程序所在目录才能正常执行测试脚本)
$ cd /unit_tests/
  执行测试脚本
$ ./autorun-ipu.sh
  2)测试结果
  在整个测试过程中,可以看到显示屏显示的内容在不停的变化。
  测试完成后,在终端上可以看到类似如下信息:
test stop at Thu Jan 1 00:33:38 UTC 1970


附图

MY-IMX6-EK200 L3035 2.14.3.1.png

MY-IMX6-EK200 L3035 2.14.3.2.png

GPU测试

测试说明

  测试具体内容请跟踪 /unit_tests/gpu.sh 文件。


测试方法

  1)执行测试
  进入测试程序所在目录(一定要进入测试程序所在目录才能正常执行测试脚本)
$ cd /unit_tests/
  * 执行测试脚本
$ ./gpu.sh
  2)测试过程
  在整个测试过程中,可以看到显示屏显示的内容在不停的变化。
  3)退出测试
  终端输出“press ESC to escape...”,按ESC可退出测试。


附图

MY-IMX6-EK200 L3035 2.15.3.1.png

VPU测试

测试说明

  测试过程将使用VPU解码视频文件并输出到显示设备。

测试方法(test method)

  1)执行测试
  进入测试程序所在目录(一定要进入测试程序所在目录才能正常执行测试脚本)
$ cd /unit_tests/
  * 执行测试脚本
$ ./autorun-vpu.sh
  2)测试过程
  在整个测试过程中,从显示屏上可以看到VPU解码的视频。

背光测试

测试说明

  测试过程通过设置背光亮度值验证评估板的背光功能。

测试方法(test method)

  1)查看最大亮度
$ cat /sys/class/backlight/pwm-backlight.0/max_brightness

  2)设置亮度
$ echo 200 >/sys/class/backlight/pwm-backlight.0/brightness
  在整个测试过程中,执行上面的测试命令后会看到显示屏的亮度发生变化。

usb识别为U盘测试

测试说明

  通过mini usb线在PC识别开发板为U盘。

测试方法(test method)

  1)创建一个10M大小的文件
$ dd if=/dev/zero of=/dev/shm/disk bs=1024 count=10240

  2)载入模块
$ modprobe g_file_storage stall=0 file=/dev/shm/disk removable=1
  3)识别U盘
  此时PC“我的电脑”会出现U盘的驱动器,将其格式化后,便可对其读写
  4)挂载
$ mount /dev/shm/disk /mnt
在/mnt/下看到在电脑写入的文件,在开发板写入文件,重新插拔MINI USB可在PC看到在开发板写入的新文件。

usb识别为网口测试

测试说明

  通过mini usb线将usb识别为网口。

测试方法(test method)

  1)载入模块
$ modprobe g_ether
  2)设置IP
$ ifconfig usb0 192.168.7.2
将PC识别的rndis的本地连接IP设置为192.168.7.8
  3)测试网口
$ ping 192.168.7.8 -c 2 -w 4

“0% packet loss”表示测试通过

注:若WIN10识别rndis为COM口,则需要下载驱动kindle_rndis.inf_amd64-v1.0.0.1.zip 解压后,以管理员权限执行5-runasadmin_register-CA-cer.cmd,然后在COM口处双击,在计算机中查找解压的驱动程序,这样就会有rndis网络了。

CPU温度测试

测试说明

  查看CPU的温度

测试方法(test method)

  1)执行测试
$ cat /sys/class/thermal/thermal_zone0/temp
  2)测试结果
44

tftp更新镜像

测试说明

  可更新zImage、u-boot、u-boot环境变量。

测试方法(test method)

  电脑端打开软件 tftpd 地址设置为需更换的文件所在的目录。
  把开发板的这个网口用网线跟电脑网口连接起来。
  进入u-boot命令行。
  1)加载环境变量
run load_scr; source;
  2)设置IP
  设置开发板IP:
setenv ipaddr 192.168.137.9
  设置电脑IP:
setenv serverip 192.168.137.99
  设置MAC地址:
setenv ethaddr 00:00:00:00:00:03
  测试网络:
ping 192.168.137.99

  • 测试结果:“host 192.168.137.99 is alive”表示测试通过

  3)烧写zImage
run update_kern
  4)烧写u-boot环境变量
run update_scr
  5)烧写u-boot
run update_ubot

复制更新镜像

测试说明

  可更新zImage、u-boot环境变量。

测试方法(test method)

  1)复制相应文件到开发板当前目录,以tftp为例
  电脑端打开软件 tftpd 地址设置为需更换的文件所在的目录。
  把开发板的这个网口用网线跟电脑网口连接起来。
  2)测试连接
$ ping 192.168.137.99 -c 2 -w 4

  • 测试结果:“0% packet loss”表示测试通过

  3)传输文件
$ tftp -g 192.168.137.99 -r zImage-myimx6a9
$ tftp -g 192.168.137.99 -r my_environment.scr
  4)查看fat分区地址
$ fdisk -l
  输出信息:
......
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 321 16320 512000 c Win95 FAT32 (LBA)
/dev/mmcblk0p2 19201 480896 14774272 83 Linux
......

  5)手动挂载
$ mount /dev/mmcblk0p1 /mnt/
  6)复制相应的文件到/mnt目录,将原文件替换
$ cp zImage-myimx6a9 /mnt
$ cp my_environment.scr /mnt
  7)保存并重启
$ reboot

显示功能测试


  • 特别说明:
    当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命令行,输入命令并按确认键。
  示例如下:

单屏显示

  说明:输入命令并按确定键,观察系统启动过程中显示屏的显示内容,即可看到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,[email protected],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


双屏同步骤显示(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


双屏异步显示

会用到的测试命令

  • 打开主显示屏的背光

$ 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,[email protected],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,[email protected],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,[email protected],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,[email protected],if=RGB24 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666 ldb=sin0; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm

关于环境变量的说明


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,[email protected],if=RGB24 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666'
  2. saveenv
  上面两条命令即可。