测试手册
测试概览
测试项 |
测试结果 |
测试项 |
测试结果 |
测试项 |
测试结果 |
电源指示灯 |
Pass |
TF Card |
Pass |
HDMI |
Pass |
电源开关 |
Pass |
网口一 |
Pass |
USB摄像头 |
Pass |
复位按键 |
Pass |
网口二 |
Pass |
M.2 SSD |
Pass |
系统指示灯 |
Pass |
RTC |
M.2 WiFi |
Pass |
|
内存压力测试 |
Pass |
音频 |
M.2 5G |
Pass |
|
USB 2.0 |
Pass |
Mipi摄像头 |
Pass |
||
USB 3.0 |
Pass |
电源指示灯
接口丝印:LD6
状态说明
亮:表示开发板的主电源接通。
灭:表示开发板的主电源断开。
功能测试
参考本手册 电源开关 进行测试。
电源开关
接口丝印:SW3
功能测试
说明:通过电源开关可以控制开发板的电源通断。
关闭电源
1)操作:在接通设备电源的情况下,把开发板的电源开关拨到 OFF 。
2)结果:看到开发板电源指示灯灭掉即正常。
3)提示:开发板电源指示需要几秒钟才会完全熄灭,这是正常现象。是因为通电后开发板上的电容有储电,电容放电完指示灯即完全熄灭。
开启电源
1)操作:在前面电源关闭的情况下,把开发板的电源开关拨到 ON。
2)结果:看到开发板电源指示灯亮起来即正常。
复位按键
接口丝印:SW1
功能测试
说明:短按复位按键可以使设备电源复位。
操作:在主板电源开启的情况下,短按复位按键即可使设备电源复位。
结果:按下并松开后,可以通过串口看到开发板在重启,即正常。
系统指示灯
接口丝印
心跳指示灯:LD2
用户指示灯:LD1
系统接口
心跳指示灯:/sys/class/leds/heartbeat
用户指示灯:/sys/class/leds/user
功能测试
心跳指示灯
1)说明:通过心跳指示灯用于观察系统是否正常运行。
2)操作:无
3)结果:系统启动成功后,心跳指示灯会闪烁,表示系统正常运行中,此功能正常。
用户指示灯
1)说明:用户指示灯可通常系统接口由用户控制。
2)操作:通过系统接口控制,控制命令如下:
# 灭灯
echo 0 > /sys/class/leds/user/brightness
# 亮灯
echo 1 > /sys/class/leds/user/brightness
3)结果:执行灭灯命令后,用户指示灯的熄灭。执行亮灯命令后,用户指示灯的亮起来。
内存压力测试
接口丝印:无
功能测试
说明:
1)采用内存压力测试工具进行测试。
2)内存压力测试需要的时间比较长,如果没有遇到问题,可以跳过内存测试。
3)内存空间有预分配 1917MB,具体为
Security Area - 128MB
Linux CMA - 256MB
CMA for Codec - 512MB
CMA for ISP - 384MB
OpenCVA - 125MB
DRP-AI - 512MB
操作:
1)输入下面命令进行测试
# 如果是 4GB 内存的开发板,执行这条命令
memtester 2100m 1
# 如果是 8GB 内存的开发板,执行这条命令
memtester 6100m 1
# 如果是 16GB 内存的开发板,执行这条命令
memtester 14100m 1
2)内存压力测试需要的时间比较长,测试过程中字符或光标会闪烁,同时可以看到的信息类似如下:
memtester version 4.3.0 (64-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).
pagesize is 4096
pagesizemask is 0xfffffffffffff000
want 6100MB (6396313600 bytes)
got 6100MB (6396313600 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.
结果:测试命令能够正常执行完,且输出信息符合预期即正常。
USB 2.0
接口丝印:J7
功能测试
说明:采用插拔USB存储设备(U盘)的方式进行测试
操作
1)将 U 盘插入开发板的 USB 2.0 接口,系统会输出类似如下信息:
usb 1-1: new high-speed USB device number 2 using ehci-platform
usb-storage 1-1:1.0: USB Mass Storage device detected
scsi host0: usb-storage 1-1:1.0
......
sda: sda1
sd 0:0:0:0: [sda] Attached SCSI removable disk
2)将 U 盘从开发板拔出,系统会输出类似如下信息:
usb 1-1: USB disconnect, device number 2
结果:插拔 U 盘时系统输出的信息符合预期,表示正常。
USB 3.0
接口丝印:J7
功能测试
说明:采用插拔USB存储设备(U盘)的方式进行测试
操作:
1)将 USB 3.0 盘插入开发板的 USB 3.0 接口,系统会输出类似如下信息:
usb 6-1: new SuperSpeed Gen 1 USB device number 2 using xhci-hcd
usb-storage 6-1:1.0: USB Mass Storage device detected
scsi host0: usb-storage 6-1:1.0
......
sda: sda1
sd 0:0:0:0: [sda] Attached SCSI removable disk
2)将 U 盘从开发板拔出,系统会输出类似如下信息:
usb 6-1: USB disconnect, device number 2
结果:插拔 U 盘时系统输出的信息符合预期,表示正常。
网口一
接口丝印:CN6
系统接口:eth0
功能测试
说明:采用开发板向 PC 发送 ICMP 报文的方式进行测试
操作
1)配置电脑有线网卡 IP 为 192.168.137.99。
2)把开发板的这个网口用网线跟电脑网口连接起来。
3)配置开发板网口 IP,具体配置命令如下:
ifconfig eth1 down
ifconfig eth0 up
ifconfig eth0 192.168.137.81
4)执行网口测试命令,具体命令如下:
ping 192.168.137.99 -c 2 -w 4
可以看到输出信息类似如下:
PING 192.168.137.99 (192.168.137.99): 56 data bytes
64 bytes from 192.168.137.99: seq=0 ttl=128 time=0.833 ms
64 bytes from 192.168.137.99: seq=1 ttl=128 time=0.429 ms
--- 192.168.137.99 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.429/0.631/0.833 ms
5)拔下网线,可以看到类似如下信息:
dwc-eth-dwmac 15c30000.ethernet eth0: Link is Down
结果:操作过程中,看到的输出信息符合预期,以及 ping 测试时 0% packet loss 表示网口正常。
网口二
接口丝印:CN7
系统接口:eth1
功能测试
说明:采用开发板向 PC 发送 ICMP 报文的方式进行测试
操作
1)配置电脑有线网卡 IP 为 192.168.137.99。
2)把开发板的这个网口用网线跟电脑网口连接起来。
3)配置开发板网口 IP,具体配置命令如下:
ifconfig eth0 down
ifconfig eth1 up
ifconfig eth1 192.168.137.90
4)执行网口测试命令,具体命令如下:
ping 192.168.137.99 -c 2 -w 4
可以看到输出信息类似如下:
PING 192.168.137.99 (192.168.137.99): 56 data bytes
64 bytes from 192.168.137.99: seq=0 ttl=128 time=0.849 ms
64 bytes from 192.168.137.99: seq=1 ttl=128 time=0.470 ms
--- 192.168.137.99 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.470/0.659/0.849 ms
5)拔下网线,可以看到类似如下信息:
dwc-eth-dwmac 15c40000.ethernet eth1: Link is Down
结果:操作过程中,看到的输出信息符合预期,以及 ping 测试时 0% packet loss 表示网口正常。
TF 卡
接口丝印:J10
说明:设备的 TF 卡接口支持热插拔,TF 卡座是自弹式。
功能测试
说明:通过插拔 TF 卡,看开发板能否正确识别和移除 TF 卡。
操作:
1)插入 TF 卡,这时开发板的调试口应该输出类似如下信息:
mmc1: new high speed SDHC card at address 5048
mmcblk1: mmc1:5048 SD32G 29.7 GiB
mmcblk1: p1 p2
2)弹出 TF 卡,这时开发板的调试口应该输出类似如下信息:
mmc1: card 5048 removed
结果:如果插卡和拔插时的输出信息符合预期,表示 TF 功能正常。
HDMI
接口丝印:CN5
功能测试
说明:设备会识别到 HDMI 显示设备并启用,建议使用原生 HDMI 接口的显示屏。
操作:
1)为开发板断电并连接 HDMI 显示屏。
2)为开发上电,在开机过程中,可以看到 HDMI 显示屏输出的画面。
结果:HDMI 显示屏正常显示表示功能正常。
附:可以在终端输入 fbset 命令查看 Frambuffer 信息,信息类似如下:
mode "1920x1080-0"
# D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
geometry 1920 1080 1920 1080 32
timings 0 0 0 0 0 0 0
accel true
rgba 8/16,8/8,8/0,0/0
endmode
USB 摄像头
接口丝印:J7
功能测试
说明:系统已经支持 USB 摄像头,且支持热插拔,可使用常用的 USB 摄像头进行测试。
操作:
1)连接 HDMI 显示屏并插入 USB 摄像头后,输入下面的命令查看 USB 设备:
lsusb
可以看到如下信息(提示:摄像头型号不一样,USB 总线上列出的信息会有差异):
......
Bus 001 Device 003: ID 2bdf:0297 DC474C08_P050301_SN0002 2K USB Camera
......
2)使用 gst-launch 采集摄像头图像,命令如下:
gst-launch-1.0 v4l2src device=/dev/video0 ! waylandsink
可以看到类似如下信息:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
3)命令执行后,可以在 HDMI 显示屏看看到摄像头采集到的画面。
结果:显示上正常显示 USB 摄像头采集到的图像表示正常。
M.2 SSD
接口说明:PCIe x 2 M.2 Key-M 接口,可用于连接 M.2 固态硬盘。
接口丝印:J14
系统接口:/dev/nvme0
功能测试
操作
1)为开发板断电并把 M.2 SSD 安装到开发板并固定好。
2)为开发板上电,系统启动成功并登录后,输入 lspci 命令可以看到固态硬盘的信息(这里的设备 ID 因 SSD 厂商的不同会不一样):
01:00.0 Non-Volatile memory controller: Device 1e4b:1202 (rev 01)
3)输入下面命令,查看内核信息:
dmesg | grep -i nvme
应当看到类似如下信息:
nvme nvme0: pci function 0000:01:00.0
nvme 0000:01:00.0: enabling device (0000 -> 0002)
nvme nvme0: allocated 8 MiB host memory buffer.
nvme nvme0: 4/0/0 default/read/poll queues
nvme0n1: p1
结果:查看内核信息时能够看到 SSD 的信息表示正常。
其它:
1)如果 SSD 的分区是 Linux 能支持的类型,则可以把 SSD 挂载到系统,参考命令如下:
mount /dev/nvme0n1p1 /mnt
2)如果 SSD 的分区系统不能识别,请先备份好数据,再对 SSD 创建并格式化分区,即可挂载。
M.2 WiFi
接口说明:PCIe M.2 Key-E 接口,可用于连接 M.2 WiFi 网卡。
接口丝印:J11
功能测试
操作一:更新固件和配置到开发板
1)为开发板断电并连接 Intel AC3165 网卡到 WiFi 接口。
2)为开发上电,登录开发板后输入 lspci 命令查看 PCI 总线上是否存在 3165 模块:
lspci
应当可以看到 Intel 3165 网卡的信息:
01:00.0 Network controller: Intel Corporation Wireless 3165 (rev 79)
3)把 WiFi 模块的固件解压到开发板的根目录(WiFi 固件位于 1.通用资料/1.2固件 ):
tar xf iwlwifi-7265.tar.gz -C /
4)加载 WiFi 的驱动模块,命令如下:
cd /lib/modules/$(uname -r)
depmod -a
modprobe cfg80211
modprobe mac80211
modprobe iwlwifi
modprobe iwlmvm
加载后通过 lsmod 命令查看驱动模块的状态,可以看到下面信息:
Module Size Used by
iwlmvm 299008 0
mac80211 438272 1 iwlmvm
iwlwifi 229376 1 iwlmvm
cfg80211 307200 3 iwlmvm,iwlwifi,mac80211
5)检查驱动绑定状态,命令如下:
lspci -nnk -d 8086:3165
执行命令后可以看到的信息如下:
01:00.0 Network controller [0280]: Intel Corporation Wireless 3165 [8086:3165] (rev 79)
Subsystem: Intel Corporation Wireless 3165 [8086:4410]
Kernel modules: iwlwifi
6)创建配置,命令如下:
wpa_passphrase MY-WIFI wifi_passwd > /etc/wpa_supplicant.conf
提示:“MY-WIFI” 需要修改为自己可以连接的 WiFi 网络名称,wifi_passwd 需要改为对应 WiFi 热点的密码。
操作二:测试 WiFi 功能
1)重启开发板,在系统启动成功输入 lsmod 查看 WiFi 驱动模块加载情况,这次我们可以看到驱动模块已经自动加载了,信息如下:
Module Size Used by
iwlmvm 299008 0
mac80211 438272 1 iwlmvm
iwlwifi 229376 1 iwlmvm
cfg80211 307200 3 iwlmvm,iwlwifi,mac80211
2)检查 WiFi 网卡信息,命令如下:
dmesg | grep -i iwlwifi
可以看到的信息如下:
iwlwifi 0000:01:00.0: enabling device (0000 -> 0002)
iwlwifi 0000:01:00.0: Found debug destination: EXTERNAL_DRAM
iwlwifi 0000:01:00.0: Found debug configuration: 0
iwlwifi 0000:01:00.0: loaded firmware version 29.4063824552.0 7265D-29.ucode op_mode iwlmvm
iwlwifi 0000:01:00.0: Detected Intel(R) Dual Band Wireless AC 3165, REV=0x210
iwlwifi 0000:01:00.0: Applying debug destination EXTERNAL_DRAM
iwlwifi 0000:01:00.0: Allocated 0x00400000 bytes for firmware monitor.
iwlwifi 0000:01:00.0: base HW address: a4:6b:b6:52:1c:0a
iwlwifi 0000:01:00.0 wlp1s0: renamed from wlan0
提示:可以看到 WiFi 模块在系统里注册的接口为 wlp1s0。
3)连接 WiFi 网络,命令如下:
wpa_supplicant -B -i wlp1s0 -c /etc/wpa_supplicant.conf
应当看到的信息如下:
Successfully initialized wpa_supplicant
rfkill: Cannot open RFKILL control device
4)检查连接信息,命令如下:
dmesg | grep -i -E "wlp1s0|iwlwifi"
应当看到的信息如下:
iwlwifi 0000:01:00.0: Applying debug destination EXTERNAL_DRAM
iwlwifi 0000:01:00.0: FW already configured (0) - re-configuring
......
wlp1s0: authenticated
......
wlp1s0: associated
IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
5)为 WiFi 网卡获取 IP,命令如下:
udhcpc -i wlp1s0
应当看到的信息类似如下:
udhcpc: started, v1.30.1
udhcpc: sending discover
udhcpc: sending select for 192.168.61.130
udhcpc: lease of 192.168.61.130 obtained, lease time 86400
/etc/udhcpc.d/50default: Adding DNS 192.168.60.1
结果:WiFi 网卡能获取到 IP 表示正常。
M.2 5G
接口丝印:J13
功能测试
说明:已经适配的 5G 模块型号是 Quectel RM500Q。
操作:
1)为开发板断电并连接 Quectel RM500Q 到 5G 接口。
2)为开发上电,登录开发板后输入 lsusb 命令查看 USB 总线上是否存在 RM500Q 模块:
lsusb
应当看到 RM500Q 的设备信息,类似如下:
Bus 008 Device 002: ID 2c7c:0800 Quectel Wireless Solutions Co., Ltd. RM500Q-GL
3)查看 5G 模块接口驱动加载情况,具体命令如下:
dmesg | grep ttyUSB
应当看到 GSM Modem 设备被成功连接到系统设备,信息如下:
usb 8-1: GSM modem (1-port) converter now attached to ttyUSB0
usb 8-1: GSM modem (1-port) converter now attached to ttyUSB1
usb 8-1: GSM modem (1-port) converter now attached to ttyUSB2
usb 8-1: GSM modem (1-port) converter now attached to ttyUSB3
4)检查网络接口是否成功加载,命令如下:
dmesg | grep GobiNet
应当看到 5G 模块的 GobiNet 驱动信息、注册信息、网络接口信息,如下:
GobiNet: Quectel_Linux&Android_GobiNet_Driver_V1.6
usbcore: registered new interface driver GobiNet
GobiNet 8-1:1.4 eth2: register 'GobiNet' at usb-15860000.usb-1, GobiNet Ethernet Device, 0e:0c:aa:23:b9:21
提示:这里的信息显示 5G 模块的网络接口被注册为 eth2。
5)执行 5G 模块的网络连接程序,命令如下:
./quectel-CM
提示:quectel-CM 程序位于网盘 1.通用资料/1.2-固件
执行 5G 模块的网络连接程序后,可以看到的 5G 模块有获取到 IP,信息类似如下:
QConnectManager_Linux_V1.6.5
Find /sys/bus/usb/devices/8-1 idVendor=0x2c7c idProduct=0x800, bus=0x008, dev=0x002
Auto find qmichannel = /dev/qcqmi2
Auto find usbnet_adapter = eth2
netcard driver = GobiNet, driver version = 5.10.145-cip17-yocto-standard-g
qmap_mode = 1, qmap_version = 5, qmap_size = 16384, muxid = 0x81, qmap_netcard = eth2
Modem works in QMI mode
Get clientWDS = 7
Get clientDMS = 8
Get clientNAS = 9
Get clientUIM = 10
requestBaseBandVersion RM500QGLABR10A02M4G
requestGetSIMStatus SIMStatus: SIM_READY
ctnet///0/IPV4V6
requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE
requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
ip addr flush dev eth2
ip link set dev eth2 down
requestSetupDataCall WdsConnectionIPv4Handle: 0x551fc220
ip link set dev eth2 up
busybox udhcpc -f -n -q -t 5 -i eth2
udhcpc: started, v1.30.1
udhcpc: sending discover
udhcpc: sending select for 10.23.45.204
udhcpc: lease of 10.23.45.204 obtained, lease time 7200
/etc/udhcpc.d/50default: Adding DNS 202.96.128.86
/etc/udhcpc.d/50default: Adding DNS 202.96.134.133
结果:使用 quectel-CM 程序能够成功获取到网络 IP 即正常(lease of x.x.x.x obtained)。
Mipi CSI
接口丝印:CN1(CSI0), CN2(CSI1), CN3(CSI2), CN4(CSI3)
功能测试
说明:已经适配的摄像头型号是 Sony STARVIS IMX462。
操作:
1)为开发板断电并连接 Sony STARVIS IMX462 摄像头到 MIPI-CSI 接口。
2)为开发上电,登录开发板后输入 lsmod 命令查看 ecam_imx462 是否 Used:
lsmod
可以看到的信息类似如下:
Module Size Used by
......
ecam_imx462 2125824 1
3)输入命令调用预设脚本配置摄像头(注意 CSI 接口与配置脚本对应,见后续的表格):
./gstreamer_cam_test_CAM0_CN7.sh 1920x1080
CSI 接口对应的摄像头配置脚本表如下:
CSI 接口 |
配置脚本 |
|---|---|
CSI0 |
gstreamer_cam_test_CAM0_CN7.sh |
CSI1 |
gstreamer_cam_test_CAM1_CN8.sh |
CSI2 |
gstreamer_cam_test_CAM2_CN9.sh |
CSI3 |
gstreamer_cam_test_CAM3_CN10.sh |
调用预设脚本配置时可以看到的信息类似如下:
1920x1080
imx462 0-001f: Stream ON - 1080p @60fps
Link CRU/CSI2 to imx462 0-001f with format UYVY8_2X8 and resolution 1920x1080
Available Resolutions : 1920x1080 , 1280x720 , 640x480
Usage Example: #sh gstreamer_cam_test.sh 1920x1080
提示:在 Stream ON 前面报 ISP Write Error 不影响功能,后面会 Reconfiguring ISP… 并成功 Stream ON 即可。
4)使用 gst-launch 采集并显示图像,命令如下:
gst-launch-1.0 v4l2src device=/dev/video0 ! waylandsink
可以看到的信息类似如下:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
imx462 0-001f: imx462_get_fmt code=0x2006, w/h=(1920,1080), colorspace=7, field=1
Gain doesn't work in Auto Exposure mode, change to manual exposure mode
In Auto mode, change to manual exposure mode
imx462 0-001f: Stream ON - 1080p @60fps
结果:第 4 步执行完后,可以在显示屏看看到摄像头采集到的画面即正常。
异常处理
如果大家使用 Sony STARVIS IMX462 摄像头不正常,可以提供以下命令的输出信息,我们帮你分析:
# 命令一
lsmod
# 命令二
dmesg | grep csi
# 命令三
dmesg | grep imx462
# 命令四
media-ctl -d /dev/media3 -p
提示:上面最后一条命令中的参数 /dev/media3 是依据对应 CSI 接口的序号传参,如 CSI0 则传 /dev/media0。