SoC信息
查看总体信息
# 安装工具 neofetch
sudo apt update
sudo apt install neofetch
# 运行命令
neofetch
执行结果如下所示
- OS :aarch64 架构的 Debian11 的根文件系统
- Host :Rockchip RK3588 TOYBRICK X10 Board
- Kernel :5.10.110 的 linux 内核
- Uptime :在线时间 21 分钟
- Packages :已安装了 1688 个安装包
- Shell :使用 bash 5.1.4
- Resolution :屏幕显示的分辨率 1536x864
- CPU :8 核,由于使用的是大小核架构,不能显示真实的 CPU 的频率
- Memory :总共 7920MiB(8G), 目前使用了 784MiB
查看文件系统
# 使用如下命令查看文件系统
toybrick@debian:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 29G 4.4G 23G 16% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 1.6G 19M 1.6G 2% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/mmcblk0p3 63M 37M 24M 61% /boot
tmpfs 792M 92K 792M 1% /run/user/1000
SoC信息监控
top命令
开发板自带top监控工具,可以查看进程的一些基本信息,按'q'键退出
# 使用top命令
top
htop命令
htop 是 Linux 系统中的一个互动的进程查看器,与 Linux 传统的 top 相比,htop 更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。
# 使用htop命令
htop
htop的详细使用方法(点击跳转)
查看CPU信息
# 命令cat /proc/cpuinfo 用于查看 CPU 的信息:
cat /proc/cpuinfo
通过ARM_CPU_PART的定义,可以查看对应的CPU核信息
//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
查看内存信息
- 方式1
# 通过/proc/meminfo查看内存相关信息:
cat /proc/meminfo
- 方式2:
# 通过free查看内存相关信息
toybrick@debian:~$ free -h
查看SoC频率
查看CPU频率
默认为变频模式,频率的会随当前的应用的变化而变化
# 命令cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq查看当前CPU频率
# 查看CPU频率(合计8个核,具体核顺序可参考cat /proc/cpuinfo)
toybrick@debian:~$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
816000
816000
816000
816000
408000
408000
408000
408000
修改CPU频率模式,可跳转参考
查看GPU的频率
默认为变频模式,频率的会随当前的应用的变化而变化
# 命令cat /sys/class/devfreq/fb000000.gpu/cur_freq查看当前GPU频率
# GPU 当前的频率为 300MHz
toybrick@debian:~$ cat /sys/class/devfreq/fb000000.gpu/cur_freq
300000000
查看NPU的频率
默认为变频模式,频率的会随当前的应用的变化而变化
# 命令sudo cat /sys/kernel/debug/clk/clk_summary | grep clk_npu_dsu0查看当前NPU的频率
# NPU当前的频率为250MHz(需要超级用户权限)
toybrick@debian:~$ sudo cat /sys/kernel/debug/clk/clk_summary | grep clk_npu_dsu0
clk_npu_dsu0 0 6 0 250000000 0 0 50000
查看DDR的频率
默认为变频模式,频率的会随当前的应用的变化而变化
# 命令cat /sys/class/devfreq/dmc/cur_freq查看当前DDR的频率
# DDR当前的频率为528MHz
toybrick@debian:~$ cat /sys/class/devfreq/dmc/cur_freq
528000000
查看SoC温度
通过thermal进行芯片温度的检测
# 命令ls /sys/class/thermal列出 thermal 的所有的设备
toybrick@debian:~$ ls /sys/class/thermal
cooling_device0 cooling_device3 thermal_zone2 thermal_zone5
cooling_device1 thermal_zone0 thermal_zone3 thermal_zone6
cooling_device2 thermal_zone1 thermal_zone4
可以看到文件里面有四个 cooling_device,7 个 thermal_zone。
cooling_device 是当 SOC 达到温控时,SOC 降低自身设备的一些功耗,用于降低温度
- cooling_device0 对应的 SOC 的四个小核的降频设备
- cooling_device1 对应的 SOC 的其中两个大核的降频设备
- cooling_device2 对应的 SOC 的另外两个大核的降频设备
- cooling_device3 对应的 SOC 的 GPU 的降频设备
thermal_zone 是 SOC 内部的温度监控点
- thermal_zone0 对应的是 SOC 主要的温度监控,cooling_device 的启动和关闭都是依赖该设备
- thermal_zone1 对应的是 SOC 的其中两个大核的温度监控
- thermal_zone2 对应的是 SOC 的另外两个大核的温度监控
- thermal_zone3 对应的是 SOC 的四个小核的温度监控
- thermal_zone4 对应的是芯片中心温度监控
- thermal_zone5 对应的是 SOC 的 GPU 的温度监控
- thermal_zone6 对应的是 SOC 的 npu 的温度监控
# 命令cat /sys/class/thermal/thermal_zone0/temp查看当前SoC主要的温度监控
# 当前温度39.769℃
toybrick@debian:~$ cat /sys/class/thermal/thermal_zone0/temp
39769
# 其他的温控监察点也可以像上面一样操作查看温度
SoC调度
CPU 调度策略 (簇)
CPU 调度策略 (簇) 不是单独控制每个个核心变频的,我们将 8 个核心分为 3 簇
# 可以看到共分为 3 簇,分别对应上面的核心配置
ls /sys/devices/system/cpu/cpufreq/
policy0 policy4 policy6
- 四个 CORTEX_A55 核心–policy0
- 两个 CORTEX_A76 核心–policy4
- 两个 CORTEX_A76 核心–policy6
通过控制簇来实现对 SOC 整体性能的控制
# 查看当前的 SOC 的调度策略
# cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
# 当前 SOC 的调频策略为schedutil
toybrick@debian:~$ cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
schedutil
# 查看 SOC 所有的调度策略
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_governors
# 总共有7种调度策略
interactive conservative ondemand userspace powersave performance schedutil