如何确定 AMD A6 上是否启用了 NX?

如何确定 AMD A6 上是否启用了 NX?

如何确定 NX 位是否已启用?我现在正在尝试运行 rdmsr,但出现错误:

rdmsr:pread: Input/output error

这是我这样做的时候:

rdmsr 0x1a0

CPU 是带有 Radeon HD Graphics 的 AMD A6 3400M APU。

我正在运行 Fedora 18,我想要检查 NX 位是否启用的原因是因为我在尝试在 Gnome Boxes 上安装 Windows 8 时收到错误代码 0x0000005D。

答案1

您使用 rdmsr 工具的方式不正确。您指定的地址正确。

你应该像这样使用它:

sudo rdmsr -f 11:11 0xc00000080

这将为您提供正确的位值,否则您每次都会得到 0 而没有任何错误。

wrmsr现在您可以按照相同的方式使用该工具设置值。

sudo wrmsr -p processor_no address value

所以在这种情况下应该是这样的

sudo wrmsr 0xc0000080 0xvalue

在 AMD 上测试过..

答案2

我找到了如何做到这一点的方法,或者至少我认为我找到了。如果我错了,请纠正我。

阅读《AMD64 架构程序员手册第 2 卷:系统编程》第 55 页(http://support.amd.com/us/Processor_TechDocs/24593_APM_v2.pdf#G11.1043852),我在维基百科上找到了一个链接(https://en.wikipedia.org/wiki/Control_register),我了解到扩展功能启用寄存器(NXE 位所在的位置)的地址是 C0000_0080h,而不是 0x1a0。基于此,我做了以下事情:

sudo rdmsr -f 11:11 C0000_0080h

返回零(0),根据手册,这意味着该位未启用。

这并不能完全解决我在 Gnome Boxes 上安装 Windows 8 的问题,但我认为它回答了如何确定 AMD A6 芯片上是否启用了 NX 位的问题。

相关内容