如何解决 Ubuntu 16.04 上 Powertop 的“未知操作”错误?

如何解决 Ubuntu 16.04 上 Powertop 的“未知操作”错误?

当我输入:

sudo powertop

我收到以下错误:

unknown op '{'
            Model-specific registers (MSR)           not found (try enabling CONFIG_X86_MSR).
                     read_msr cpu2 0x60d : No such file or directory

有人可以帮忙吗?

答案1

这是一个已知的错误,对程序没有影响。

PowerTop 2.7 详细信息

已知错误(我们计划在未来的版本中修复这些错误):

  • traceevent lib 出现问题,它会打印字符串:未知操作“{”。此错误不会影响 PowerTOP 的正确功能。

  • PowerTOP 显示所有 CPU 的空闲率为 99%,即使在执行工作负载时,600 MHz 也始终处于 1% 左右。将频率统计设置为省电调节器时会发生这种情况。

  • PowerTOP 摘要 CPU 使用率超过 100%

答案2

powertop命令需要msr内核模块。错误消息中提到的CONFIG_X86_MSR是对内核配置选项的引用。在我的 Ubuntu 系统上,它的定义如下:

CONFIG_X86_MSR=m

这意味着它配置为内核模块。当我运行 powertop 时,我的msr内核模块会自动加载。值为y而不是m会直接编译msr到内核中,而值为n则会完全禁用它。

您应该能够CONFIG_X86_MSR通过查看正确的/boot/config-*文件来确定 Ubuntu 系统上的 值。例如,在我的 Ubuntu 系统上,相关文件是/boot/config-4.4.0-31-generic。如果您有多个这样的文件, 的输出uname -r应该会告诉您哪一个对应于您正在运行的内核。

首先要确定 的值CONFIG_X86_MSR。如果您没有构建自定义内核,m则可能是该值。如果值为 ,n您可能需要构建一个配置不同的新内核,或者启动CONFIG_X86_MSR启用了 的普通内核(使用ym)。如果值为m,则应检查 是否msr已加载。如果没有加载,modprobe msr则应加载它(如果安装正确)。

另一件值得检查的事情是您正在运行的内核是否与最新安装的内核相对应。如果您的内核升级后没有重新启动,则可能会阻止模块msr正确加载。

相关内容