跳到主要内容

13. 查看板卡系统信息

1. 查看系统总体信息

# armsom终端中执行以下命令
neofetch

可见以下信息:

image

其含义为:

  • OS: armbian 25.2.0版本
  • Host: 板卡名字 armsom sige5
  • Kernel: 内核版本 6.1.84版本
  • Uptime: 板卡在线时长 4min
  • Package: 已安装1392个安装包
  • Shell: 表明armsom使用的shell环境为bash 5.2.21版本
  • Resolution: 屏幕分辨率位1200*1920
  • Terminal: 终端使用/dev/ttyFIQ0
  • CPU: 8核,由于使用的是大小核架构,不能显示真实的CPU的频率
  • Memory: 总共7920MiB(8G),目前使用了498MiB

2. 查看文件系统

#使用命令
df -h

# 实机运行如下
armsom@armsom-sige5:/$ df -h
文件系统 容量 已用 可用 已用% 挂载点
Filesystem Size Used Avail Use% Mounted on
tmpfs 793M 9.5M 783M 2% /run
/dev/mmcblk1p1 57G 5.1G 51G 9% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 8.0K 3.9G 1% /tmp
/dev/zram1 47M 2.9M 41M 7% /var/log
tmpfs 792M 68K 792M 1% /run/user/112
tmpfs 792M 56K 792M 1% /run/user/1000

3. 性能监控工具

3.1. top

板卡自带的一个监控工具,可以查看进程的一些基本信息

#使用命令
top

image

3.2. htop

htop 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses。 与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。
#使用命令
htop

image

htop的一些详细用法(点击跳转链接)

4. 查看cpu信息

/proc/cpuinfo文件存储了CPU的信息,可通过如下命令查看:

armsom@armsom-sige5:~$ cat /proc/cpuinfo
processor : 0
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4

processor : 1
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4

processor : 2
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4

processor : 3
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4

processor : 4
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x1
CPU part : 0xd08
CPU revision : 0

processor : 5
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x1
CPU part : 0xd08
CPU revision : 0

processor : 6
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x1
CPU part : 0xd08
CPU revision : 0

processor : 7
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x1
CPU part : 0xd08
CPU revision : 0

Serial : ef3fdfea9ac14db7
//ARM_CPU_PART的定义

#define ARM_CPU_PART_AEM_V8 0xD0F
#define ARM_CPU_PART_FOUNDATION 0xD00
#define ARM_CPU_PART_CORTEX_A57 0xD07
#define ARM_CPU_PART_CORTEX_A72 0xD08
#define ARM_CPU_PART_CORTEX_A53 0xD03
#define ARM_CPU_PART_CORTEX_A73 0xD09
#define ARM_CPU_PART_CORTEX_A75 0xD0A
#define ARM_CPU_PART_CORTEX_A35 0xD04
#define ARM_CPU_PART_CORTEX_A55 0xD05
#define ARM_CPU_PART_CORTEX_A76 0xD0B
#define ARM_CPU_PART_NEOVERSE_N1 0xD0C
#define ARM_CPU_PART_CORTEX_A77 0xD0D
#define ARM_CPU_PART_NEOVERSE_V1 0xD40
#define ARM_CPU_PART_CORTEX_A78 0xD41
#define ARM_CPU_PART_CORTEX_A78AE 0xD42
#define ARM_CPU_PART_CORTEX_X1 0xD44
#define ARM_CPU_PART_CORTEX_A510 0xD46
#define ARM_CPU_PART_CORTEX_A710 0xD47
#define ARM_CPU_PART_CORTEX_X2 0xD48
#define ARM_CPU_PART_NEOVERSE_N2 0xD49
#define ARM_CPU_PART_CORTEX_A78C 0xD4B

由上面的信息,可以看到armsom sige5的cpu内有8个核心

  • 0-3的核心用的是0xD05,查阅上面的ARM_CPU_PART定义可知该为 CORTEX_A53。
  • 4-7的核心用的是0xD0B,查阅上面的ARM_CPU_PART定义可知该为 CORTEX_A72
  • 可得RK3576系列芯片由4xCORTEX_A72+4xCORTEX_A53相组成

5. 查看soc频率

  • 查看soc频率

默认为变频模式,频率的会随当前的应用的变化而变化

armsom@armsom-sige5:/sys/devices/system/cpu$ cat cpu*/cpufreq/scaling_cur_freq
408000
408000
408000
408000
408000
408000
408000
408000
  • 查看gpu频率

默认为变频模式,频率的会随当前的应用的变化而变化

armsom@armsom-sige5:/$ cat /sys/class/devfreq/27700000.npu/cur_freq
300000000
  • 查看npu频率

默认为变频模式,频率的会随当前的应用的变化而变化

armsom@armsom-sige5:/$ sudo cat /sys/kernel/debug/clk/clk_summary | grep npu*
scmi_clk_npu 0 0 0 200000000 0 0 50000 Y
tclk_npu_wdt 0 0 0 24000000 0 0 50000 N
clk_nputimer_root 0 0 0 24000000 0 0 50000 N
clk_nputimer1 0 0 0 24000000 0 0 50000 N
clk_nputimer0 0 0 0 24000000 0 0 50000 N
clk_npu_cm0_rtc 0 0 0 32768 0 0 50000 N
hclk_npu_cm0_root 0 0 0 396000000 0 0 50000 N
fclk_npu_cm0_core 0 0 0 396000000 0 0 50000 N
pclk_nputop_root 0 0 0 100000000 0 0 50000 N
pclk_npu_wdt 0 0 0 100000000 0 0 50000 N
pclk_npu_timer 0 0 0 100000000 0 0 50000 N
  • 查看DDR频率

默认为变频模式,频率的会随当前的应用的变化而变化

armsom@armsom-sige5:/$ cat /sys/class/devfreq/dmc/cur_freq
2112000000

6. 查看soc温度

使用Thermal来对芯片的温度进行监测

# 列出thermal的所有的设备
ls /sys/class/thermal
armsom@armsom-sige5:~$ ls /sys/class/thermal
cooling_device0 cooling_device2 thermal_zone0 thermal_zone2 thermal_zone4
cooling_device1 cooling_device3 thermal_zone1 thermal_zone3 thermal_zone5
  • 可以看到文件里面有四个cooling_device,6个thermal_zone

cooling_device是当SOC达到温控时,SOC降低自身设备的一些功耗,用于降低温度

  1. cooling_device0对应的SOC的四个小核的降频设备
  2. cooling_device1对应的SOC的其中两个大核的降频设备
  3. cooling_device2对应的SOC的另外两个大核的降频设备
  4. cooling_device3对应的SOC的GPU的降频设备

thermal_zone是SOC内部的温度监控点

  1. thermal_zone0对应的是SOC主要的温度监控,cooling_device的启动和关闭都是依赖该设备
  2. thermal_zone1对应的是SOC的其中两个大核的温度监控
  3. thermal_zone2对应的是SOC的另外两个大核的温度监控
  4. thermal_zone3对应的是SOC的四个小核的温度监控
  5. thermal_zone4对应的是芯片中心温度监控
  6. thermal_zone5对应的是SOC的GPU的温度监控
cat /sys/class/thermal/thermal_zone0/temp
# 其他的温控监察点也可以像上面一样操作查看温度

7. 查看或修改soc调度策略

armsom使用的rk3576的CPU调度策略(簇)不是单独控制每个个核心变频的,rk将8个核心分为2簇

armsom@armsom-sige5:~$ ls /sys/devices/system/cpu/cpufreq/
policy0 policy4
  1. 4个CORTEX_A53核心 – policy0
  2. 4个CORTEX_A72核心 – policy4

这样的话控制就方便很多,通过控制簇来实现对SOC整体性能的控制

配置这些簇定频的方法很简单

# 查看当前的SOC的调度策略
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

# 实机运行如下(当前SOC的调频策略为ondemand)
armsom@armsom-sige5:~$ cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
ondemand
armsom@armsom-sige5:~$

# 查看SOC所有的调度策略
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_governors

# 实机运行如下(有7种)
armsom@armsom-sige5:~$ cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_governors
interactive conservative ondemand userspace powersave performance schedutil
armsom@armsom-sige5:~$
  • conservative:根据 CPU 负载动态调频,按一定的比例平滑的升高或降低频率。
  • ondemand:根据 CPU 负载动态调频,调频幅度比较大,可直接调到最高频或最低频。
  • interactive:根据 CPU 负载动态调频,相比 ondemand,响应时间更快,可配置参数更多,更灵活。
  • userspace:提供相应接口供用户态应用程序调整频率。
  • powersave:功耗优先,始终将频率设置在最低值。
  • performance:性能优先,始终将频率设置为最高值。
  • schedutil:EAS 使用 governor。EAS(Energy Aware Scheduling)是新一代的任务调度策略, 结合 CPUFreq和 CPUIdle 的策略, 在为某个任务选择运行 CPU 时, 同时考虑了性能和功耗, 保证了系统能耗最低,并且不会对性能造成影响。 Schedutil 调度策略就是专门给 EAS 使用的 CPU 调频策略

簇调度策略设置(以policy0为例):

# 该配置需要使用root用户进行操作
su root
# 输入你的密码(默认为"root")

# 查看支持的调度策略
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_governors

# 调整为你需要要的调度策略(以performance为例)
echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

簇定频策略设置(以policy0为例):

# 该配置需要使用root用户进行操作
su root
# 输入你的密码(默认为"root")

# 将策略调整为 ``userspace``
echo userspace > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

# 查看 CPU 可用频率
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies

# 实机运行如下(有8种)
armsom@armsom-sige5:~$ cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies
408000 600000 816000 1008000 1200000 1416000 1608000 1800000
armsom@armsom-sige5:~$

# 设置频率(设置为600MHz)
echo 600000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_setspeed

以上是临时生效,重启失效,如果需要永久固定,可以在/etc/init.d/boot_init.sh末尾添加以上命令。