Как определить, включен ли NX на AMD A6?
Как я могу определить, включен ли бит NX? Сейчас я пытаюсь запустить rdmsr, но получаю ошибку:
rdmsr:pread: Input/output error
Это когда я делаю:
rdmsr 0x1a0
Процессор представляет собой AMD A6 3400M APU с Radeon HD Graphics.
Я использую Fedora 18, и причина, по которой я хочу проверить, включен ли бит NX, заключается в том, что я получаю код ошибки 0x0000005D при попытке установить Windows 8 на Gnome Boxes.
2 ответа
Я узнал, как это сделать, или, по крайней мере, я так думаю. Если я не прав, пожалуйста, поправьте меня.
Чтение на странице 55 "Руководства по программированию для архитектуры AMD64, том 2: Системное программирование" ( http://support.amd.com/us/Processor_TechDocs/24593_APM_v2.pdf), на которое я нашел ссылку в Википедии ( https://en.wikipedia.org/wiki/Control_register), я узнал, что адрес регистра включения расширенных функций, в котором находится бит NXE, - это C0000_0080h, а не 0x1a0. Исходя из этого, я сделал это:
sudo rdmsr -f 11:11 C0000_0080h
Что возвращает ноль (0), что в соответствии с руководством означает, что бит не включен.
Это не совсем решает мою проблему с установкой Windows 8 на Gnome Boxes, но я думаю, что это отвечает на вопрос, как определить, включен ли бит NX на чипах AMD A6.
То, как вы используете инструмент rdmsr, неверно. Вы правильно указали адрес.
Вы должны использовать это так:
sudo rdmsr -f 11:11 0xc00000080
Это даст вам правильное значение бита, иначе вы получите 0 каждый раз без какой-либо ошибки.
Теперь вы можете установить значение, используя wrmsr
инструмент так же.
sudo wrmsr -p processor_no address value
Так что в этом случае это должно быть так
sudo wrmsr 0xc0000080 0xvalue
Проверено на AMD..