我拥有 Intel Haswell G3420。其 iGPU 的出厂默认频率为 1.15 GHz。在我的 UEFI 中,我将 iGPU 超频至 1.5 GHz 并增加了电压。但是超频后,基准测试和游戏中的帧速率相同。我曾经读到,由于 Linux 内核中的 turbo boost 存在一些问题,Intel iGPU OC 在 Linux 上不起作用。我想检查游戏时的频率是否达到 1.5 Ghz 或是否保持在 1.15 GHz 不变。所以我需要一种方法来检查当前的 Intel iGPU 频率。我知道 Nvidia 二进制驱动程序可以做到这一点,但是我不知道如何使用 Intel iGPU 检查它。
总结
如何在 Linux 上检查 Intel iGPU 当前频率?
谢谢
答案1
使用lshw
。如果尚未安装,请使用sudo yum install lshw
(Redhat/Fedora/CentOS) 或sudo apt-get install lshw
(Debian/Ubuntu/etc) 安装。
lshw -c display
在我的一台(旧)机器上,它输出:
*-display UNCLAIMED
description: VGA compatible controller
product: K8M800/K8N800/K8N800A [S3 UniChrome Pro]
vendor: VIA Technologies, Inc.
physical id: 0
bus info: pci@0000:01:00.0
version: 01
width: 32 bits
clock: 66MHz
capabilities: pm agp agp-3.0 vga_controller bus_master cap_list
configuration: latency=32 mingnt=2
resources: memory:f0000000-f3ffffff memory:f4000000-f4ffffff memory:f5000000-f500ffff
倒数第四行显示时钟速度信息。
答案2
如果您的发行版尚未安装虚拟文件系统,则您需要安装它debugfs
(它的标准位置是):/sys/kernel/debug/
sudo mount -t debugfs none /sys/kernel/debug
(您可以输入任何内容来代替none
:该参数必须存在,但不用于虚拟文件系统。)
安装后debugfs
,您可以在 处找到 iGPU 时钟频率信息/sys/kernel/debug/dri/<GPU number>/i915_frequency_info
。您需要 root 权限才能访问它。通常,Intel iGPU 显示为 GPU #0,因此:
sudo grep Hz /sys/kernel/debug/dri/0/i915_frequency_info
答案取决于 iGPU 型号,但可能是这样的:
RPNSWREQ: 350MHz
CAGF: 350MHz
Lowest (RPN) frequency: 350MHz
Nominal (RP1) frequency: 350MHz
Max non-overclocked (RP0) frequency: 1150MHz
Max overclocked frequency: 1150MHz <--- Looking for
Current freq: 350 MHz <--- these values?
Actual freq: 350 MHz
Idle freq: 350 MHz
Min freq: 350 MHz
Boost freq: 1150 MHz <--- These might
Max freq: 1150 MHz <--- help too.
efficient (RPe) frequency: 350 MHz
Current CD clock frequency: 337500 kHz
Max CD clock frequency: 675000 kHz
Max pixel clock frequency: 675000 kHz
在这个例子中,我的笔记本电脑的 iGPU 完全处于空闲状态,因为盖子是关闭的,并且只使用连接到独立 Nvidia GPU 的外部显示器。