电子说
飞凌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
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !