0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_44130326 来源:Linux1024 2026-02-06 16:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

1.为什么必须做压测?

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

wKgZPGkaixyAbF6WAAAy3P-rYbc808.png

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内存,运行8热复制线程,20秒后退出,命令如下:

stressapptest-s20-M256-m8-W

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

关闭测试:执行killall stressapptest

2memtester(内存正确性测试)

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

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

测试项包含:Stuck AddressRandom ValueCompare XOR18项内存校验。

注意事项: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生成75MB以内随机源数据,拷贝到$test_dir/des_test_data5个子目录,对比MD5值,循环200次。

4)待机唤醒测试

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

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

5reboot测试

执行逻辑:默认重启10000次,每次启动后8秒自动关机;若开启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接口数据各5帧,校验文件大小。

7Video测试

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

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

8Wi-Fi Bt测试

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

、性能测试

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

2U盘读写

写测试:

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

读测试:

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测试、冷启动测试。

、用户场景压测

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

示例(词典笔场景):

whiletrue;do# 模拟扫描识别(采图) 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-Fiif[ $((RANDOM %2)) -eq 0 ];then  nmcli r wifi onelse  nmcli r wifi offfidone

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

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

    关注

    5213

    文章

    20847

    浏览量

    339491
  • Linux
    +关注

    关注

    88

    文章

    11885

    浏览量

    220155
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RK3568-Linux系统使用手册(二)

    RK3568-Linux系统使用手册(二)
    的头像 发表于 01-22 10:48 3047次阅读
    <b class='flag-5'>RK3568-Linux</b><b class='flag-5'>系统</b>使用手册(二)

    Linux操作系统怎么移植到ARM平台

    目前,在嵌入式系统里基于ARM微核的嵌入式处理器以其功耗低,功能强大的优点已经成为市场的主流。与此同时,在网络上发展起来的Linux操作系统,以其功能强大,开放源代码,支持硬件种类众多的特点,越来越受到人们的青睐。然而如何把
    发表于 08-19 06:39

    RK3399使用dd命令备份根文件系统操作步骤是怎样的?

    RK3399使用dd命令备份根文件系统操作步骤是怎样的?
    发表于 03-07 07:53

    怎样在RK3399平台上去制作一种linux系统

    怎样在RK3399平台上去制作一种linux系统呢?有哪些制作步骤
    发表于 03-07 06:01

    怎样去搭建基于rk3288的android(和linux平台软件运行环境呢

    怎样去搭建基于rk3288的android(和linux平台软件运行环境呢?有哪些搭建步骤呢?
    发表于 03-09 07:42

    怎样去编译RK3288平台上的Android系统源码呢

    怎样使用Linux操作系统去搭建一种服务器环境呢?怎样去编译RK3288平台上的Android系统源码呢?
    发表于 03-10 07:28

    RK3568开发板Linux系统如何修改异显呢

    本文硬件平台采用飞凌嵌入式RK3568开发板,主要讲解Linux系统 RK3568开发板如何修改异显。R
    发表于 12-13 17:14

    Linux操作系统

    linux的教学内容1 、Linux概述 2 、Linux操作系统安装3、 Linux的内核 4 、Li
    发表于 04-10 16:54 0次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>

    Linux快速入门之安装Linux操作系统及小结

    实验内容 安装Linux(Red Hat Enterprise 4 AS版本)操作系统,查看Linux的目录结构。 3.实验步骤 (1)磁盘规划。 在这一
    发表于 10-18 14:16 0次下载

    linux中gpio复用设置操作步骤

    要向大家介绍下如何写一个python程序实现控制Arduino中才能控制的I/O接口。上篇文章也说过,如果想使用python程序,必须使用SD卡中的Linux系统。那么如何在Linux系统
    发表于 11-15 11:34 8169次阅读
    <b class='flag-5'>linux</b>中gpio复用设置<b class='flag-5'>操作</b><b class='flag-5'>步骤</b>

    linux系统更新的操作操作原理

    linux系统更新的简单操作操作原理。
    发表于 05-27 09:34 2368次阅读

    Linux操作系统的详细安装步骤

    Linux是一套免费使用和自由传播的操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约
    发表于 07-16 11:39 5254次阅读

    Rk3399麒麟Linux系统有哪些,基于linux哪个版本

    由国防科大开发的麒麟操作系统有很多,与国防科大混乱的 CPU 产品线一样,这些麒麟操作系统彼此之间技术延续性也有限,比较有名的是银河麒麟、优麒麟和中标麒麟操作系统。那么Rk3399麒麟
    发表于 01-19 15:35 5893次阅读

    迅为RK3588在 Linux 系统中使用 NPU

    迅为RK3588在 Linux 系统中使用 NPU
    的头像 发表于 09-08 14:14 2920次阅读
    迅为<b class='flag-5'>RK</b>3588在 <b class='flag-5'>Linux</b> <b class='flag-5'>系统</b>中使用 NPU

    linux操作系统安装步骤 linux操作系统的特点及组成

    Linux操作系统安装步骤 Linux操作系统是一种开源的操作系统,它以其稳定性、安全性和灵活性
    的头像 发表于 10-21 11:24 2186次阅读