RK平台Linux系统压测操作步骤

电子说

1.4w人已加入

描述

 

 

一、压测的重要性与核心目的

 

1. 为什么必须做压测?

 

RK 平台多应用于嵌入式设备(如工业控制器、智能终端、消费电子),这类设备常面临复杂工况(高低温、高负载、长期运行)与严苛可靠性要求,压测是量产前不可或缺的风险拦截环节,核心原因包括:

L

 

1.硬件隐患提前暴露:避免因 IO 电压不匹配、DDR 信号干扰、电源纹波超标等问题,导致设备量产后面临死机、重启、硬件烧毁等故障;

 

 

2.软件稳定性验证:排查多模块协同(如 CPU+DDR+Wi-Fi)、长期高负载下的内存泄漏、线程死锁、驱动兼容性问题;

 

 

3.性能达标保障:确保磁盘读写、GPU 渲染、CPU 算力等关键指标满足产品设计需求,避免用户使用时出现卡顿、响应慢等体验问题;

 

 

4.成本风险控制:若未做压测,设备量产后面临售后维修、召回,成本是前期压测投入的 10-100 倍,且损害品牌口碑。

 

 

2. 压测的核心价值

 

5.被动修复” 转为 主动预防:在实验室环境模拟设备全生命周期可能遇到的极端场景,提前解决 90% 以上的稳定性问题;

 

 

6.量化设备可靠性:通过“10 台设备 ×24 小时”“高低温循环” 等标准化压测,验证设备连续运行无故障时长,为量产提供数据支撑;

 

 

7.适配场景拓展:通过用户场景压测,确保设备在真实使用场景(如词典笔扫描 翻译 待机、工业设备 数据采集 传输 存储)下稳定运行。

 

 

、压测前准备

 

8.开启测试工具配置:在 Buildroot 中启用所需测试包,执行如下配置命令,确保 CPU、内存、音频、Wi-Fi 等测试功能可用:

 

 

 
  •  
  •  
  •  
  •  
  •  
  •  
# 启用CPU和内存压力测试工具BR2_PACKAGE_STRESSAPPTEST=y# 启用内存正确性测试工具BR2_PACKAGE_MEMTESTER=y# 启用包含多模块测试的套件BR2_PACKAGE_ROCKCHIP_TEST=y

1.配置测试目录权限:确保/userdata/rockchip-test目录具备可读写权限,用于存储压测日志和数据。

 

 

2.开启串口日志保存:连接产品串口,开启串口上位机的保存所有日志” 功能,便于后续问题分析。

 

 

、软件稳定性压测

 

1. 基础工具使用

 

1stressapptest(内存 磁盘压力测试)

 

典型执行命令:测试 256MB 内存,运行 个 热复制” 线程,20 秒后退出,命令如下:

 

 

  •  
stressapptest -s 20 -M 256 -m 8 -W

常用参数说明:-M指定测试 RAM 大小,-s指定运行秒数,-m指定内存复制线程数,-l指定日志输出文件。

 

 

关闭测试:执行killall stressapptest

 

 

2memtester(内存正确性测试)

 

执行命令格式:指定测试内存大小(单位 B/K/M/G)和循环次数,示例如下:

 

 

  •  
memtester [-p 物理地址基址 [-d 设备]] <内存大小>[B/K/M/G] [循环次数]

测试项包含:Stuck AddressRandom ValueCompare XOR 等 18 项内存校验。

 

 

注意事项:memtester 出错不会自动停止,需实时观测程序打印;关闭测试执行killall memtester

 

 

2. 多模块专项测试(基于 Rockchip test 套件)

 

1DDR 测试

 

执行方式一:通过套件脚本启动

 

 

a.运行套件入口脚本:bash /rockchip-test/rockchip_test.sh

 

 

b.输入“1” 选择 DDR 测试,再根据设备变频能力选场景(不支持变频选 “3”,支持选 “5”);

 

 

c.输入“1” 选择 memtester 测试,开始执行。

 

 

执行方式二:直接运行脚本:执行bash /rockchip-test/ddr/memtester_test.sh,默认测试系统可用内存的一半。

 

 

DDR 变频测试

 

 

自动变频:bash /rockchip-test/ddr/ddr_freq_scaling.sh,脚本会循环切换频率(如 528000000 Hz324000000 Hz);

 

 

指定频率:bash /rockchip-test/ddr/ddr_freq_scaling.sh 528000000,频率需在支持列表内,否则会打印可用频率;

 

 

关闭变频测试:killall bash

 

 

2CPU 测试

 

启动测试:运行bash /rockchip-test/rockchip_test.sh,输入“2” 选择 CPU 测试,根据变频能力选场景(不支持选 “1”,支持选 “3”)。

 

 

CPU 变频测试

 

 

自动变频:bash /rockchip-test/cpu/cpu_freq_scaling.sh,切换频率如 816000 KHz1104000 KHz

 

 

指定频率:bash /rockchip-test/cpu/cpu_freq_scaling.sh 1104000,频率不在支持列表时会打印可用值;

 

 

关闭测试:killall bash

 

 

3Flash 测试

 

执行逻辑:在$test_dir/src_test_data生成 7 个 5MB 以内随机源数据,拷贝到$test_dir/des_test_data 5 个子目录,对比 MD5 值,循环 200 次。

 

 

4)待机唤醒测试

 

前提条件:系统需有正常工作的 RTC

 

 

执行逻辑:默认循环 10000 次,每次待机唤醒时间为 3-6 秒随机值。

 

 

5reboot 测试

 

执行逻辑:默认重启 10000 次,每次启动后 秒自动关机;若开启CONFIG_PSTORE_RAM,会检查每次关机日志是否有崩溃异常;

 

 

提前关闭:执行echo off > /userdata/rockchip_test/reboot_cnt

 

 

6Camera 测试

 

方式一:rkisp_demo 脚本

 

 

a.启用配置:

BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_RKISP_DEMO=y

 

 

b.执行脚本:

bash /rockchip-test/camera/camera_stresstest_rkisp_demo.sh,循环抓取 ISP CIF 接口数据各 100 帧。

 

 

方式二:v4l2 脚本

 

 

a.启用配置:

BR2_PACKAGE_LIBV4L_UTILS=y

 

 

b.执行脚本:

bash /rockchip-test/camera/camera_stresstest_v4l2.sh,以 640x480 分辨率循环抓取 USB ISP CIF 接口数据各 帧,校验文件大小。

 

 

7Video 测试

 

准备工作:将测试视频文件放入/userdata/videos(优先)或/mnt/udisk/videos

 

 

执行测试:运行 Video 测试脚本,循环播放目标目录下的视频文件。

 

 

8Wi-Fi Bt 测试

 

执行逻辑:运行对应测试脚本,自动循环执行 Wi-Fi 和 Bt 的开启、关闭操作。

 

 

、性能测试

 

1. 磁盘读写测试

 

1eMMC 读写

 

前提:用fdisk -l查看可读写分区(如 mmcblk0p8);

 

 

写测试:

dd if=/dev/zero of=/dev/mmcblk0p8 bs=1M count=2000 oflag=direct,nonblock

 

 

读测试:

dd if=/dev/mmcblk0p8 of=/dev/null bs=1M count=2000 iflag=direct,nonblock

 

 

2盘读写

 

写测试:

dd if=/dev/zero of=/dev/sda1 bs=1M count=2000 oflag=direct,nonblock/dev/sda1 为 盘分区);

 

 

读测试:

dd if=/dev/sda1 of=/dev/null bs=1M count=2000 iflag=direct,nonblock

 

 

2. 性能模式设置

 

开启高性能模式:echo performance | tee $(find /sys/ -name *governor)

 

 

3. CPU/DDR 频率查看

 

执行命令:cat /sys/kernel/debug/clk/clk_summary |grep -E "cpu|arm|ddr"

 

 

4. GPU 跑分

 

全屏跑分:sh /rockchip-test/gpu/test_fullscreen_glmark2.sh

 

 

后台跑分(不显示画面):sh /rockchip-test/gpu/test_offscreen_glmark2.sh

 

 

、硬件稳定性测试

 

1. IO-DOMAINS 检查

 

核心要求:确保所有 GPIO 电源域的软件配置电压与硬件供电一致(如软件设 1.8V 则硬件需供 1.8V);

 

 

参考文档:对应芯片平台文档(如 RK3568 参考Rockchip_RK356X_Introduction_IO_Power_Domains_Configuration_CN.pdf)。

 

 

2. 电源测试

 

测试内容:若电源方案偏离参考设计(如用分立电源),需测试冷启动 / 重启时的上电时序、高负载下电源纹波,重点关注 VDD_LOGICVDD_ARM 等核心电源。

 

 

3. 信号测试

 

设计要求:DDR 设计按对应模板,颗粒选 AVL 列表(通过 redmine 获取);

 

 

图纸审核:硬件图纸完成后,提交审核(如通过 redmine)。

 

 

4. 高低温测试

 

测试环境:产品工作温度的高温上限和低温下限;

 

 

测试内容:在高低温下执行 CPU 压力测试、DDR 压力测试、reboot 测试、冷启动测试。

 

 

、用户场景压测

 

构建逻辑:结合产品实际功能,用基础脚本组合场景;

 

 

示例(词典笔场景):

 

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
while truedo  # 模拟扫描识别(采图)  v4l2-ctl --stream-mmap --stream-to=/tmp/scan.jpg --stream-count=1  # 模拟播放翻译结果  aplay /tmp/translate.wav  # 模拟待机  pm-suspend  # 模拟RTC唤醒(10秒后唤醒)  rtcwake -m no -s 10  # 随机开关Wi-Fi  if [ $((RANDOM % 2)) -eq 0 ]; then    nmcli r wifi on  else    nmcli r wifi off  fidone

核心思路:覆盖开机 核心功能 待机 唤醒 辅助功能(如 Wi-Fi” 的完整用户操作链。

 

 

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

全部0条评论

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

×
20
完善资料,
赚取积分