OKMX6ULL-C开发平台试用体验

电子说

1.3w人已加入

描述

飞凌OKMX6ULL-C开发平台试用体验

非常荣幸能够试用体验飞凌OKMX6ULL-C开发平台。

飞凌OKMX6ULL-C开发平台核心板和底板采用接插件的连接方式。其中核心板(型号FETMX6ULL-C)采用恩智浦公司的的NXP i.MX6ULL处理器开发设计,采用低功耗的ARM Cortex-A7架构,运行速度高达800MHz;原生支持8路UART、2路Ethernet、2路CAN-Bus总线、2路USB2.0、LCD等常用接口。

开发板飞凌OKMX6ULL-C开发平台-资源

1. 开箱

1.1 配件

飞凌OKMX6ULL-C开发平台配件包括:USB转Type-C调试串口线(115200bps)、电源线、飞凌OKMX6ULL-C开发板。

(WIFI天线自备,或者直接忽略)

开发板飞凌OKMX6ULL-C开发平台-开箱

1.2 接口说明

飞凌OKMX6ULL-C开发平台如图所示:

开发板飞凌OKMX6ULL-C开发平台-接口

1.3 开发资料

飞凌OKMX6ULL-C开发平台提供了非常详尽的开发资料(飞凌已经提供了网盘企业服务,下载不限速,YYDS)。

 

//------软件资料(Linux4.1.15+Qt5.6)
下载链接: https://pan.baidu.com/s/1Vuw-po6Hl6wHUKa538SDuA
提取码: xn8u
//------硬件资料/产品资料
下载链接: https://pan.baidu.com/s/1A1TcSa-oeBJPPqzaoqVlyg
提取码: eepg 
//------开发环境(虚拟机Ubuntu-18.04,登录账户forlinx,密码forlinx)
下载链接: https://pan.baidu.com/s/1V6PRy3S0G7cYR5plDhL9RQ
提取码: gef8
//------证书和测试报告
下载链接: https://pan.baidu.com/s/1Q_oP8w1R2XutAk1IrsVZEA
提取码: h7kp
开发板飞凌OKMX6ULL-C开发平台-开发资料

 

2. 系统登陆与网络功能配置

2.1 系统登陆

初次上电建议使用Type-C串口(波特率115200)进行系统登陆。

 

//------系统登陆
账户:root
密码:无
//------Log
< 此处省略大部分开机Log >
Running local boot scripts (/etc/rc.local).
Freescale i.MX Release Distro 4.1.15-2.0.1 fl-imx6ull /dev/ttymxc0
fl-imx6ull login: root
Password:
root@fl-imx6ull:~# uname -a
Linux fl-imx6ull 4.1.15-00050-ge85def2 #1 SMP PREEMPT Mon Apr 18 17:42:50 CST 2022 armv7l armv7l armv7l GNU/Linux
root@fl-imx6ull:~# pstree
init-+-S01xserver-nodm---xinit-+-Xorg
     |                         `-matchbox-window-+-Xsession---matchbox-keyboa
     |                                           |-at-spi-bus-laun-+-dbus-daemon
     |                                           |                 |-{gdbus}
     |                                           |                 `-{gmain) S 561 561
     |                                           |-connman-applet
     |                                           |-matchbox-deskto
     |                                           `-matchbox-panel
     |-atd
     |-avahi-daemon---avahi-daemon
     |-connmand
     |-crond
     |-2*[dbus-daemon]
     |-dbus-launch
     |-dropbear
     |-gconfd-2
     |-getty
     |-klogd
     |-ofonod
     |-rpc.statd
     |-rpcbind
     |-settings-daemon
     |-start_getty---bash---pstree
     |-syslogd
     |-udevd
     `-vsftpd
root@fl-imx6ull:~#

 

//------U-Boot信息截图:

开发板U-Boot

2.2 WIFI功能配置

WIFI连接可以选择SMA天线、FPC天线或者不用。

 

//------WIFI连接
//---指令
fltest_cmd_wifi.sh -i 8723du -s YUSUR-YF -p 2018YUSURserver
//---含义
“-i 8723du” :wifi驱动为8723du
“-s YUSUR-YF”:wifi名称
“-p 2018YUSURserver”:wifi密码
//---校验驱动(查看wlan0驱动)
ethtool -i wlan0
lsmod
//---ping测试
ping www.baidu.com
//------Log信息
root@fl-imx6ull:~# fltest_cmd_wifi.sh -i 8723du -s YUSUR-YF -p 2018YUSURserver
wifi 8723du
ssid YUSUR-YF
pasw 2018YUSURserver
usbcore: deregistering interface driver rtl8723du
usbcore: registered new interface driver rtl8723du
IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
Successfully initialized wpa_supplicant
rfkill: Cannot open RFKILL control device
udhcpc (v1.24.1) started
Sending discover...
wlan0: Trying to associate with d4:d5:1b:e4:13:13 (SSID='YUSUR-YF' freq=2452 MHz)
IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
wlan0: Associated with d4:d5:1b:e4:13:13
wlan0: WPA: Key negotiation completed with d4:d5:1b:e4:13:13 [PTK=CCMP GTK=CCMP]
wlan0: CTRL-EVENT-CONNECTED - Connection to d4:d5:1b:e4:13:13 completed [id=0 id_str=]
wlan0: WPA: Group rekeying completed with d4:d5:1b:e4:13:13 [GTK=CCMP]
nf_conntrack: automatic helper assignment is deprecated and it will be removed soon. Use the iptables CT target to attach helpers instead.
Sending discover...
Sending select for 192.168.7.213...
Lease of 192.168.7.213 obtained, lease time 259200
/etc/udhcpc.d/50default: Adding DNS 192.168.7.249
/etc/udhcpc.d/50default: Adding DNS 192.168.7.250
WLAN Finshed!
root@fl-imx6ull:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 26:54:f3:65:34:f0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth1      Link encap:Ethernet  HWaddr ea:27:54:f3:65:34
          UP BROADCAST MULTICAST DYNAMIC  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)

wlan0     Link encap:Ethernet  HWaddr b4:6d:c2:2e:b1:94
          inet addr:192.168.7.213  Bcast:192.168.7.255  Mask:255.255.252.0
          inet6 addr: fe80::b66d:c2ff:fe2e:b194/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:103 errors:0 dropped:0 overruns:0 frame:0
          TX packets:41 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:26199 (25.5 KiB)  TX bytes:9211 (8.9 KiB)

root@fl-imx6ull:~# ethtool -i wlan0
driver: rtl8723du
version:
firmware-version:
expansion-rom-version:
bus-info: 1-1.4:1.2
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
root@fl-imx6ull:~# lsmod
Module                  Size  Used by
8723du               1302499  0
root@fl-imx6ull:~#
开发板wifi

 

3. CPU与DDR性能测试

3.1 CPU性能测试

3.1.1 查看CPU信息

查看CPU信息,反馈结果是ARMv7 Processor(单核处理器),位宽32bit。 

 

//------查看CPU信息:lscpu
//---指令
cat /proc/cpuinfo
//---结果
指令集:ARMv7 Processor rev 5 (v7l)
单核CPU:编号0
//---注意:
lscpu指令并不支持。其他可以查看CPU核数的指令是
		ls -la /sys/bus/cpu/devices/
反馈信息只有cpu0,即单核。
//------查看CPU频率:
//---指令(当前频率、最高频率、最低频率)
cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_cur_freq
cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_max_freq
cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_min_freq
//------查看CPU温度
cat /sys/class/thermal/thermal_zone0/temp
在U-Boot中显示CPU工作温度范围(-40C to 105C),设置节温为105摄氏度。
//------Log信息
root@fl-imx6ull:~# cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 3.00
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

Hardware        : Freescale i.MX6 Ultralite (Device Tree)
Revision        : 0000
Serial          : 172041d75d5b170c
root@fl-imx6ull:~# ls -la /sys/bus/cpu/devices/
drwxr-xr-x    2 root     root             0 Dec 16 10:34 .
drwxr-xr-x    4 root     root             0 Dec 16 10:34 ..
lrwxrwxrwx    1 root     root             0 Dec 16 10:34 cpu0 - > ../../../devices/system/cpu/cpu0
root@fl-imx6ull:~# ls /sys/bus/cpu/devices/
cpu0
root@fl-imx6ull:~# cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_cur_freq
198000
root@fl-imx6ull:~# cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_max_freq
792000
root@fl-imx6ull:~# cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_min_freq
198000
root@fl-imx6ull:/sys/bus/cpu/devices#  cat /sys/class/thermal/thermal_zone0/temp
52178
root@fl-imx6ull:~#

 

3.1.2 CPU 压力测试

CPU 的压力的测试方式有很多,我们通过 bc 命令来计算圆周率方法来测试 CPU 在运算过程中的稳定性。

 

//------CPU压力测试:PI(派)运算
//---执行PI(派)运算
echo "scale=500; 4*a(1)" | bc -l -q
	或者
echo "scale=500; 4*a(1)" | bc -l -q &
//---计时模式执行PI(派)运算:统计时间只能当作参考
time echo "scale=500; 4*a(1)" | bc -l -q &
	或者
time echo "scale=5000; 4*a(1)" | bc -l -q &
上述命令将在后台计算的 PI,并精确到小数点后 500位 或 5000位,计算过程需要一段时间。
圆周率500位计算时间约0.53秒,圆周率5000位计算时间约2分24秒后。
在计算期间 CPU 使用率达到 100%,没有发生异常,说明 CPU 压力测试通过。还可以继续增加精确值,可进一步提高测试压力。
//------Log信息
root@fl-imx6ull:~# echo "scale=500; 4*a(1)" | bc -l -q
3.141592653589793238462643383279502884197169399375105820974944592307
81640628620899862803482534211706798214808651328230664709384460955058
22317253594081284811174502841027019385211055596446229489549303819644
28810975665933446128475648233786783165271201909145648566923460348610
45432664821339360726024914127372458700660631558817488152092096282925
40917153643678925903600113305305488204665213841469519415116094330572
70365759591953092186117381932611793105118548074462379962749567351885
75272489122793818301194912
root@fl-imx6ull:~# time echo "scale=500; 4*a(1)" | bc -l -q
3.141592653589793238462643383279502884197169399375105820974944592307
81640628620899862803482534211706798214808651328230664709384460955058
22317253594081284811174502841027019385211055596446229489549303819644
28810975665933446128475648233786783165271201909145648566923460348610
45432664821339360726024914127372458700660631558817488152092096282925
40917153643678925903600113305305488204665213841469519415116094330572
70365759591953092186117381932611793105118548074462379962749567351885
75272489122793818301194912

real    0m0.531s
user    0m0.500s
sys     0m0.020s
root@fl-imx6ull:~# time echo "scale=5000; 4*a(1)" | bc -l -q
3.141592653589793238462643383279502884197169399375105820974944592307
(此处省略部分数字)
74351362222477158915049530984448933309634087807693259939780541934144
73774418426312986080998886874132604720

real    2m24.559s
user    2m24.060s
sys     0m0.020s
root@fl-imx6ull:~#

 

3.1.3 SHELL脚本实现温度监测

通过将读取的温度值进行浮点除法运算,即可将温度直观的转换为常用的摄氏度;添加sleep的1秒延时,可以实现一秒一次温度打印输出。

温度读取脚本“run_cpu_thermal.sh”内容如下:

 

#!/bin/bash
# ------
dividend=1000 ;
while true
do
echo "***********************************"
date
# echo "Board_Temperature is :"
# cat /sys/class/thermal/thermal_zone0/temp
echo ""
temp=/sys/class/thermal/thermal_zone0/temp ;
divisor=$(cat $temp) ;
echo "Board_Temperature is : $bd_temp"
bd_temp= awk 'BEGIN{printf " %.4f ℃ n",'$divisor' '/' '$dividend'}'
sleep 1
done

 

3.2 DDR内存性能测试  

飞凌OKMX6ULL-C开发平台采用 512MB DDR-SDRAM ,下面进行内存测试。  

3.2.1 DDR内存基本信息

通过“free -h”指令读取内存DDR的使用情况。

 

//------测试工具
free
//---测试指令
free -h
或者
free -m
//---参数解析
-h 参数代表单位为 GByte
-m 参数代表单位为 MByte
total :内存总量
used :被使用的内存量
free :可使用的内存量
//------Log信息
root@fl-imx6ull:~# free -h
              total        used        free      shared  buff/cache   available
Mem:           477M         31M        373M        1.1M         73M        368M
Swap:            0B          0B          0B
root@fl-imx6ull:~# 

 

3.2.2 查看内存信息

读取系统中的内存的参数信息,则可以通过/proc/meminfo 文件得到。

 

//------查看内存信息
cat /proc/meminfo
//---参数解析
MemTotal:所有可用的 RAM 大小,物理内存减去预留位和内核使用
MemFree :LowFree + HighFree
Buffers:用来给块设备做缓存的大小
Cached:文件的缓冲区大小
SwapCached:已经被交换出来的内存。与 I/O 相关
Active:经常(最近)被使用的内存
Inactive:最近不常使用的内存
//------Log信息
root@fl-imx6ull:~# cat /proc/meminfo
MemTotal:         489380 kB
MemFree:          382032 kB
MemAvailable:     377844 kB
Buffers:           15772 kB
Cached:            43064 kB
SwapCached:            0 kB
Active:            54068 kB
Inactive:          27196 kB
Active(anon):      22648 kB
Inactive(anon):      864 kB
Active(file):      31420 kB
Inactive(file):    26332 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:             0 kB
HighFree:              0 kB
LowTotal:         489380 kB
LowFree:          382032 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         22428 kB
Mapped:            24564 kB
Shmem:              1084 kB
Slab:              16620 kB
SReclaimable:       9384 kB
SUnreclaim:         7236 kB
KernelStack:         728 kB
PageTables:         1024 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      244688 kB
Committed_AS:      76468 kB
VmallocTotal:    1548288 kB
VmallocUsed:       37188 kB
VmallocChunk:    1329932 kB
CmaTotal:         327680 kB
CmaFree:          326632 kB
root@fl-imx6ull:~# 

 

3.2.3 内存功能压力测试-memtester

内存功能压力测试-memtester

通过给定测试内存的大小和次数, 可以对系统现有的内存进行压力上的测试。可使用系统工具 memtester 进行测试,如指定内存大小 128MB,测试次数为 10,测试命令为“memtester 128M 10"。

下列以使用 128MB 内存空间,单次测试为例:

 

//------测试工具
memtester
//------测试指令
memtester 128M 1
//---指令说明
指定内存大小 128MB,测试次数为 1
//------Log信息
root@fl-imx6ull:~# memtester
memtester version 4.3.0 (32-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
need memory argument, in MB

Usage: memtester [-p physaddrbase [-d device]] < mem >[B|K|M|G] [loops]
root@fl-imx6ull:~# memtester 128M 1
memtester version 4.3.0 (32-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 128MB (134217728 bytes)
got  128MB (134217728 bytes), trying mlock ...locked.
Loop 1/1:
  Stuck Address       : ok
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok
  Block Sequential    : ok
  Checkerboard        : ok
  Bit Spread          : ok
  Bit Flip            : ok
  Walking Ones        : ok
  Walking Zeroes      : ok

Done.
root@fl-imx6ull:~#

 

//------memtester测试截图:

开发板memtester

3.2.4 内存带宽测试-bw_mem

内存带宽测试-bw_mem工具可以对内存RAM进行指定容量读写测试。

 

//------测试工具
bw_mem
//---测试指令(容量根据实际情况指定)
bw_mem 100m rd
bw_mem 100m wr
//---测试结果
WR写带宽:455.97MB/S
RD读带宽:917.36MB/S
//------Log信息
root@fl-imx6ull:~# bw_mem 100M wr
100.00 455.97
root@fl-imx6ull:~# bw_mem 100M rd
100.00 917.36
root@fl-imx6ull:~#

 

4. 存储功能测试

飞凌OKMX6ULL-C开发平台的存储介质包括eMMC、TF卡(自备TF卡)和USB2.0(自备U盘)。

4.1 eMMC测试

简单测试 eMMC。

 

//------eMMC信息查询:
dmesg | grep mmc
//------WR写入测试:40.1MB/S
dd if=/dev/zero of=/test bs=1M count=500 conv=fsync
//------RD读取测试:52.7MB/S
dd if=/test of=/dev/zero bs=1M count=500
//---Log信息
root@fl-imx6ull:~# dmesg | grep mmc
[    0.000000] Kernel command line: console=ttymxc0,115200 calibrate= cma=64M root=/dev/mmcblk1p2 rootwait rw
[    3.082278] sdhci-esdhc-imx 2190000.usdhc: No vqmmc regulator found
[    3.135344] mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA
[    3.156792] sdhci-esdhc-imx 2194000.usdhc: No vmmc regulator found
[    3.161708] sdhci-esdhc-imx 2194000.usdhc: No vqmmc regulator found
[    3.213904] mmc1: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA
[    3.318388] mmc1: MAN_BKOPS_EN bit is not set
[    3.351543] mmc1: new DDR MMC card at address 0001
[    3.356257] mmcblk1: mmc1:0001 88A398 7.28 GiB
[    3.359897] mmcblk1boot0: mmc1:0001 88A398 partition 1 4.00 MiB
[    3.365047] mmcblk1boot1: mmc1:0001 88A398 partition 2 4.00 MiB
[    3.370035] mmcblk1rpmb: mmc1:0001 88A398 partition 3 4.00 MiB
[    3.376503]  mmcblk1: p1 p2
[    3.838887] EXT3-fs (mmcblk1p2): using internal journal
[    3.843337] EXT3-fs (mmcblk1p2): recovery complete
[    3.846845] EXT3-fs (mmcblk1p2): mounted filesystem with ordered data mode
[    8.107465] FAT-fs (mmcblk1p1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
[    8.190005] FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
root@fl-imx6ull:~# dd if=/dev/zero of=/test bs=1M count=500 conv=fsync
500+0 records in
500+0 records out
524288000 bytes (524 MB, 500 MiB) copied, 13.081 s, 40.1 MB/s
root@fl-imx6ull:~# dd if=/test of=/dev/zero bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB, 500 MiB) copied, 9.9576 s, 52.7 MB/s
root@fl-imx6ull:~#

 

//------eMMC测试:

开发板eMMC测试

4.2 TF卡测试

将 TF 卡插入开发板底板上的 TF 卡插槽,正常情况下开发板终端默认无打印信息使用 dmesg 命令可以看到信息。

 

//------TF卡第一分区为FAT32格式
|---mmcblk1p1:FAT32
|---mmcblk1p2:EXT4
//------WR写入测试:10.3MB/S
dd if=/dev/zero of=/mnt/sd_0/largefile bs=1M count=512 conv=fsync
//------RD读取测试:22.2MB/S
dd if=/mnt/sd_0/largefile of=/dev/zero bs=1M count=512

 

4.3 U盘测试

将U盘插入任意一个USB2.0接口,系统自动挂载 /run/media/ 目录。

 

//------USB2.0接口插入USB3.0的U盘
//------WR写入测试:25.4MB/S
dd if=/dev/zero of=/run/media/sda2/test bs=1M count=500 conv=fsync oflag=direct
//------RD读取测试: 33.2MB/S
dd if=/run/media/sda2/test of=/dev/zero bs=1M count=512

 

5. USB摄像头

飞凌OKMX6ULL-C开发平台并未预留MIPI-CSI摄像头接口,不过它支持常见的USB摄像头(UVC)。

 

//------UVC / USB-Camera
UVC通俗的讲就是USB摄像头,全称为USB Video Class,即:USB视频类,是一种为USB视频捕获设备定义的协议标准。

 

5.1 摄像头接口设备

摄像头设备位于” /dev/video*“。一般情况下, /dev/video0为USB摄像头。

 

//------查看摄像头设备节点
a.通过设备列表查看
ls -la /dev/video*
b.通过v4l2-ctl工具查看
v4l2-ctl --list-devices
//------Log信息
root@fl-imx6ull:~# ls -la /dev/video*
crw-rw----    1 root     video      81,   0 Dec 16 10:34 /dev/video0
crw-rw----    1 root     video      81,   1 Dec 16 11:56 /dev/video1
root@fl-imx6ull:~# ls /dev/video*
/dev/video0  /dev/video1
root@fl-imx6ull:~# v4l2-ctl --list-devices
pxp (pxp_v4l2):
        /dev/video0

HD 720P webcam (usb-ci_hdrc.1-1.2):
        /dev/video1

root@fl-imx6ull:~#

 

5.2 USB摄像头拍照测试

将USB摄像头插入开发板,将自动安装 uvc 添加设备节点。

 

//------USB-Camera(某宝几十块买的USB摄像头)
a.确认USB摄像头的设备节点,此处为/dev/video1。
v4l2-ctl --list-devices
b.查看摄像头支持的格式与分辨率(此处打印信息较多)
v4l2-ctl --list-formats-ext -d /dev/video1
c..摄像头预览(拍照)
gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=3 ! jpegenc ! filesink location=~/pic_of_video1.jpg
(由于没有显示屏,只能将照片拷贝到U盘后在电脑查看……)
e.USB-Camera设备信息(查看硬件变动信息即可)
dmesg | tail -11
//------示例Log信息:
root@fl-imx6ull:~# v4l2-ctl --list-devices
pxp (pxp_v4l2):
        /dev/video0

HD 720P webcam (usb-ci_hdrc.1-1.2):
        /dev/video1

root@fl-imx6ull:~# gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=3 ! jpegenc ! filesink location=~/pic_of_video1.jpg
Setting pipeline to PAUSED ...
uvcvideo: Failed to query (GET_DEF) UVC control 1 on unit 2: -110 (exp. 2).
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:00:04.654356001
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
root@fl-imx6ull:~# lsusb
Bus 001 Device 003: ID 0bda:d723
Bus 001 Device 004: ID 1bcf:2701
Bus 001 Device 002: ID 1a40:0101
Bus 001 Device 001: ID 1d6b:0002
root@fl-imx6ull:~#
root@fl-imx6ull:~# dmesg | tail -11
[ 4953.560706] uvcvideo: Found UVC 1.00 device HD 720P webcam (1bcf:2701)
[ 4953.590650] input: HD 720P webcam as /devices/platform/soc/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.2/1-1.2:1.0/input/input3
[ 4953.792335] usb 1-1.2: 3:1: cannot get freq at ep 0x86
[ 4953.851710] usb 1-1.2: 3:2: cannot get freq at ep 0x86
[ 4953.912622] usb 1-1.2: 3:3: cannot get freq at ep 0x86
[ 4953.973263] usb 1-1.2: 3:4: cannot get freq at ep 0x86
[ 4954.017584] usb 1-1.2: Warning! Unlikely big volume range (=4096), cval- >res is probably wrong.
[ 4954.025174] usb 1-1.2: [7] FU [Mic Capture Volume] ch = 1, val = 0/4096/1
[ 4954.046983] usbcore: registered new interface driver snd-usb-audio
[ 5144.468020] uvcvideo: Failed to query (GET_DEF) UVC control 6 on unit 2: -32 (exp. 2).
[ 5144.476376] uvcvideo: Failed to query (GET_DEF) UVC control 6 on unit 2: -32 (exp. 2).
root@fl-imx6ull:~#

 

5.3 USB摄像头视频测试

USB摄像头视频测试。

 

//------USB摄像头视频测试
摄像头预览(视频)
gst-launch-1.0 v4l2src device=/dev/video1 io-mode=2 ! 
'video/x-raw, format=YUY2, 
width=640, height=480, framerate=30/1' ! 
waylandsink window-x=0 window-y=0 window-width=1024 window-height=600
	或者
ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video1

 

6. 音频测试

飞凌OKMX6ULL-C开发平台在硬件上采用WM8960音频芯片,软件上使用主流音频框架ALSA(Advanced Linux Sound Arhitechture),为应用层提供了alsa-lib,应用程序调用系统提供的API就可以完成对底层的操作。用户可以使用文件系统自带的ALSA进行音频录制、播放和配置。

飞凌OKMX6ULL-C开发平台提供了一个3.5mm音频插座,支持左右声道播放和MIC录音。

此处各测试项的详细内容参考Log日志记录。

6.1 声卡检测

声卡检测通过“aplay -l”或者“aplay -L”可以查看。通过Log信息可以看到只有一个声卡:card-0。

功能:card-0用于处理多媒体、系统和伴流等音频流。

至于系统中声卡的具体原理还没有深入研究,应该和设备树、驱动相关,汗……

 

//------声卡检测
aplay -l
	或者
aplay -L
//------Log信息
root@fl-imx6ull:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: wm8960audio [wm8960-audio], device 0: HiFi wm8960-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: wm8960audio [wm8960-audio], device 1: HiFi-ASRC-FE (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root@fl-imx6ull:~# aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
sysdefault:CARD=wm8960audio
    wm8960-audio,
    Default Audio Device
root@fl-imx6ull:~# 

 

6.2 音频参数设置

音频参数主要包括音量、声道等内容。

 

//------音频参数配置
//---3.5mm耳机音量
amixer sset Headphone 110,110
amixer cset name='Playback Volume' 255,255
amixer cset name='Capture Volume' 0,31
amixer sset name='Left Output Mixer PCM' on
amixer sset name='Right Output Mixer PCM' on
amixer cset name='Capture Volume' 63,63
//---配置播放音量
amixer sset Headphone 110,110
amixer cset name='ADC PCM Capture Volume' 220,220
amixer cset name='Left Input Boost Mixer LINPUT2 Volume' 7
amixer cset name='Left Input Boost Mixer LINPUT3 Volume' 7
amixer cset name='Right Input Boost Mixer LINPUT1 Volume' 7
amixer cset name='Right Input Boost Mixer LINPUT2 Volume' 7

 

6.3 播放与录音测试

音频播放使用aplay指令(详细指令参考“ aplay -h ”),录音使用arecord指令(详细指令参考“ arecord -h ”)。

 

//------播放与录音测试
//---播放测试
aplay ~/test.wav
//---录音测试
arecord -r 44100 -f S16_LE -c 2 -d 10 record.wav
说明:-r 采样频率;-f 声音效果模式;-c 通道设置;-d 设置录音时间(单位秒);record.wav 文件名。
//------Log信息
root@fl-imx6ull:~# aplay ~/test.wav
Playing WAVE '/home/root/test.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Stereo
root@fl-imx6ull:~# arecord -r 44100 -f S16_LE -c 2 -d 10 record.wav
Recording WAVE 'record.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
root@fl-imx6ull:~#

 

7. 网络丢包测试

飞凌OKMX6ULL-C开发平台包括两个100M有线网口eth0和eth1,可以使用iperf3工具进行丢包测试。

7.1 分配IP地址

测试前需要给两个网口配置ip地址。

 

//------配置IP地址
ifconfig eth0 192.168.1.100
ifconfig eth1 192.168.1.101
//------Log信息
root@fl-imx6ull:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 26:54:f3:65:34:f0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth1      Link encap:Ethernet  HWaddr ea:27:54:f3:65:34
          UP BROADCAST MULTICAST DYNAMIC  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)

root@fl-imx6ull:~# ifconfig eth0 192.168.1.100
root@fl-imx6ull:~# ifconfig eth1 192.168.1.101
root@fl-imx6ull:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 26:54:f3:65:34:f0
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth1      Link encap:Ethernet  HWaddr ea:27:54:f3:65:34
          inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST DYNAMIC  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)

root@fl-imx6ull:~# fec 20b4000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
fec 2188000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

root@fl-imx6ull:~#

 

7.2 UDP模式丢包测试

UDP模式丢包测试。

 

//------UDP模式丢包测试
#服务器端执行命令
iperf3 -u -s
#客户端执行命令
iperf3 -u -c 192.168.1.100(服务端IP) -b 100M -t 60
//在udp模式下,以100Mbps为数据发送速率,客户端到服务器192.168.1.100上传带宽测试,测试时间为60秒。
iperf3 -u -c 192.168.1.100 -b 5M -P 30 -t 60
//客户端同时向服务器端发起30个连接线程,以5Mbps为数据发送速率。
iperf3 -u -c 192.168.1.100 -b 100M -d -t 60
//以100M为数据发送速率,进行上下行带宽测试。

 

7.3 TCP模式

TCP模式丢包测试。

 

//------TCP模式丢包测试
#服务器端执行命令
iperf3 -s
#客户端执行命令
iperf3 -c 192.168.1.100(服务端IP) -t 60
//在tcp模式下,客户端到服务器192.168.20.249. 上传带宽测试,测试时间为60秒。
iperf3 -c 192.168.1.100 -P 30 -t 60
//客户端同时向服务器端发起30个连接线程。
iperf3 -c 192.168.1.100 -d -t 60
//进行上下行带宽测试。

 

测试完一轮将服务端和客户端对换,再测一遍。

测试结束后使用ifconfig命令查看是否丢包,RX errors和TX errors 所在行各项数值全为零才是正常。

//------END

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分