自从升级到 Ubuntu 16.04 以来,我无法让 wrmsr 在任何地址上运行:
$ sudo rdmsr 0x1a4
0
$ sudo wrmsr 0x1a4 0
wrmsr: pwrite: Operation not permitted
此站点中有一个类似的问题,但接受的答案仅针对 Turbo Boost 提供了解决方法:
有什么想法吗?这与能力有关吗?
答案1
我找到了一种解决方法,即将我的内核从默认内核(4.4.0-24-generic)升级:
$ sudo rdmsr 0x1a4
rdmsr: open: No such file or directory
$ sudo modprobe msr
$ sudo rdmsr 0x1a4
0
$ sudo wrmsr 0x1a4 0
$ uname -r
4.6.0-040600-generic
我也在4.6.2上证实了这一点:
$ uname -r
4.6.2-040602-generic
我后来在 4.4.0-24-generic 上再次重现了这个问题。
答案2
据我了解,rdmsr 和 wrmsr 使用 msr 内核模块通过 /dev/cpu/0/msr 进行读取/写入 - 该模块是否已安装?
sudo modprobe msr
sudo wrmsr 0x1a4 0