获取树莓派4系统信息

树莓派有许多系统信息,类似 CPU 细节、处理器的当前温度、内存大小。但不是所有的信息都放在一个地方,我们来学习一些方法,如何找到树莓派中这些有趣的数据。

/proc 下的信息

除了标准系统资源工具,好像 ps、 df、 top 和其他一些有用的命令,如: htop、 iotop、 glances, 系统信息可以在 /proc 文件系统下找到。一个最常用的就是 cpuinfo 文件, 包含了系统 CPU 数据。输入一下命令:

cat /proc/cpuinfo

结果是这样的:
图片
从输出可以看出,使用的是 BCM2385 处理器,应该是4核的,并且是居于Arm7的构架。
除了 cupinfo ,在 /proc 文件系统下面还有一些有价值的信息:
图片
如上所示:meminfo、partitions、version 等。这些都可以用 cat 命令来查看:
图片

vcgencmd 命令

Linux 系统可以使用 /proc 来获取系统信息,树莓派还有一些这对这块板子的专有命令,例如: vcgencmd。vcgencmd 表示的是 ‘VideoCore general commands (视频核心通用命令)’,它可以发送命令给 VideoCore。 VideoCore 是树莓派中的低功耗多媒体处理器。 vcgencmd 功能强大,用下面的命令可以查看支持的功能参数:

vcgencmd commands

效果是这样的:
图片
可以看出, vcgencmd 支持测量时钟频率、电压、核心温度等。

测量温度

树莓派设计为一种小型低功耗的电脑,最大温度不能超过 85° 摄氏度。如果高于这个温度就存在设备受到永久性损坏的风险。因此有必要学习如何测量树莓派的核心温度。
这个方法很简单,登陆到树莓派,然后运行如下命令:

vcgencmd measure_temp

结果如下图所示:
图片
如果,你想提取里面的数字应用到程序中,还可以这样:

vcgencmd measure_temp | sed -En "s/temp=(.*)'C/\1/p"

结果应该是像下面图中的样子:
图片

时钟频率

另一个有用的信息是 CPU 的当前频率和最小、最大频率:

cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq

图片
也可以查看单核的频率(cpu0 - cpu3):

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

图片
600MHz ~ 1.5GHz,当前运行在最小频率,看来使用率还很低。
也可以使用 vcgencmd 来查询时钟频率:

vcgencmd measure_clock CLOCKNAME

其中,CLOCKNAME 可以是 h264, isp, v3d, uart, pwm, emmc, pixel, vec, hdmi, or dpi。也可以用脚本全部打印出来:

for src in arm core h264 isp v3d uart pwm emmc pixel vec hdmi dpi ; do \
echo -e "$src:\t$(vcgencmd measure_clock $src)" ; \
done

图片

电压

使用 vcgencmd 还可以查询 core, sdram_c, sdram_i, and sdram_p 的电压:

vcgencmd measure_volts core

同样,也可以使用脚本全部列出:

for id in core sdram_c sdram_i sdram_p ; do \
echo -e "$id:\t$(vcgencmd measure_volts $id)" ; \
done

图片

硬编码

想看看硬编码打开了吗,支持这些H264, MPG2, WVC1, MPG4, MJPG, or WMV9:

vcgencmd codec_enabled H264

同样也有简便方法看全部:

for codec in H264 MPG2 WVC1 MPG4 MJPG WMV9 ; do \
echo -e "$codec:\t$(vcgencmd codec_enabled $codec)" ; \
done

图片

配置项

使用 get_config 参数可以打印出配置信息:

get_config [config|int|str]
  • config - 列出指定的配置参数. 例如: vcgencmd get_config arm_freq
  • int - 列出所有已设置的整形配置参数(非零)
  • str - 列出所有已设置的字符型配置参数(非零)

图片

内存分配

想知道在 CPU 和 GPU 之间的内存分配情况吗?可以使用如下命令:

vcgencmd get_mem arm && vcgencmd get_mem gpu

图片

OTP

显示一次性可编程(OTP)内存的内容:

vcgencmd otp_dump

图片
位置28和30存储/proc/cpuinfo显示的序列值和修订号(序列值还用于确定以太网MAC地址),位置32存储质保位的值。其他位置的值用途未知。

空闲内存

看看有多少空闲内存供系统使用:

free -m -h

图片

视频输出控制

打开关闭视频输出:

# 关闭视频输出
vcgencmd display_power 0
# 打开视频输出
vcgencmd display_power 1

欢迎加入

在这里插入图片描述

发布了195 篇原创文章 · 获赞 47 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/rocshaw/article/details/101595935
今日推荐