Как контролировать напряжение VCore

Я создал новый ПК и быть дешевым, я не купил Windows, таким образом, я пробую Linux впервые Ubuntu 16.04. Я понимаю, что lm-датчики являются стандартным методом получить доступ к информации, которую я хочу, который является действительно просто напряжениями, особенно VCore. Я хотел бы смочь контролировать напряжение VCore для упрощения разгона (поскольку моя материнская плата не позволяет постоянное напряжение, я не могу контролировать для опасных напряжений автоматическим VID).

У меня есть следующие соответствующие установленные пакеты: lm-датчики (v. 1:3.4.0-2), libsensors4 (v. 3:4.0-2), libsensors-applet-plugin0 (v. 3.0.0+git5-0.1ubuntu1)

ЦП является i5-6600K, и материнской платой является ASRock Z170A-X1/3.1

Я работал sensors-detect и единственный датчик, который это нашло, был coretemp. Это было добавлено к моим модулям, и это хорошо работает для температур. Вот демонстрационный вывод от рабочих датчиков:

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +47.0°C  (high = +80.0°C, crit = +100.0°C)
Core 0:         +46.0°C  (high = +80.0°C, crit = +100.0°C)
Core 1:         +47.0°C  (high = +80.0°C, crit = +100.0°C)
Core 2:         +34.0°C  (high = +80.0°C, crit = +100.0°C)
Core 3:         +45.0°C  (high = +80.0°C, crit = +100.0°C)

Я хотел бы достигнуть стандартного поведения (больше информации), такой как показано здесь или здесь.

Я подозреваю, что дополнительный датчик необходим для доступа к напряжениям, потому что большинство руководств показывает sensors-detect приведение к большему количеству модулей, добавляемых, чем просто coretemp. В моем случае было одно найденное неизвестное устройство, который это подозревает, мог быть датчик....

Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no): y
Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               Yes
Found unknown chip with ID 0xd121
    (logical device B has address 0x290, could be sensors)
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      No

Я использовал dmesg смотреть на упомянутый адрес 0x290 в кольцевом буфере ядра и нашло эту строку, которая главным образом непостижима мне, но я поместил здесь для Вашей информации.

[    0.206389] system 00:00: [io  0x0290-0x029f] has been reserved

Кроме того, у меня есть другие приложения, которые ограничены в информации, которую они могут показать. Например, I-NEX, который несколько похож на ЦП-Z в Windows (предлагают что-то лучше, если Вы знаете это), ограничен основным материалом CPUID, таким как строка идентификатора процессора, литография, тип сокета, поддерживавшие функции, и т.д. Ни о чем не сообщают для VCore ЦП и других полей. Тактовая частота, скорость BLCK, о множителе, turboclock сообщают, поскольку запас оценивает независимо от моих настроек разгона BIOS (неправильный, поскольку я могу контролировать скорость ЦП с Системным монитором). Инструменты как это, вероятно, все полагаются на lm-датчики, которые я думаю, в корне моей проблемы здесь, таким образом, это не слишком удивительно.

Я также судил рабочий ЦП-Z, использующий ВИНО, но оно приводит к по существу той же ситуации: показывает основной материал CPUID, но не более подробный материал датчика, который я ищу. Это после ошибки происходят во время инициализации: код ошибки 0x2 (2).

Это - просто случай неподдерживаемой материнской платы? Если так, поддержка будет когда-либо добавляться? Есть ли некоторый способ, которым я мог вручную добавить поддержку? Действительно ли там кто-либо альтернативен к lm-датчикам? Существует ли иначе к, например, вручную станьте ближе к аппаратному уровню и получите доступ к напряжению так или иначе через удар? Я должен просто по существу попытаться переустановить различные версии/дистрибутивы? Если так, я обязательно потеряю эту установку и ее файлы?

3
задан 26 January 2017 в 03:30

2 ответа

Вино не позволит Вам достигнуть ring0 своего процессора. Место, где инструкции по полномочию могут быть выполнены.

Linux обеспечивает модуль ядра msr.ko, который позволяет модели чтения-записи определенные регистры, описанные в Руководствах Разработчика программного обеспечения архитектур Intel. То же с AMD в его BIOS и Руководство разработчика

Ядра https://software.intel.com/en-us/articles/intel-sdm

http://developer.amd.com/resources/developer-guides-manuals/

Для 6600K, можно к счастью найти информацию о напряжении в ее таблицы данных. PCI будет запрошен для получения значений.

Вы будете программировать алгоритмы с помощью регистров MSR и листов инструкции CPUID получить отношения процессора Turbo и оценить BCLK с двумя чтениями TSC, выбранными через определенный интервал.

Турбо частота является продуктом Отношения и Основных Часов

, я запрограммировал CoreFreq, который около vcore отобразит частоты и состояния ожидания. Не стесняйтесь рыть алгоритмы в исходном коде:

https://github.com/cyring/CoreFreq

2
ответ дан 1 December 2019 в 16:56

Вы можете контролировать напряжение ядра на самых последних (SNB и более поздних) процессорах Intel с помощью следующего1:

watch -n1 'echo "scale=2; $(sudo rdmsr 0x198 -u --bitfield 47:32)/8192" | bc'

Разбивка:

sudo rdmsr 0x198 -u --bitfield 47:32

Это считывает MSR_PERF_STATUS MSR и извлекает биты 32. до 47 в десятичном виде, которые содержат напряжение ядра:

From Intel SDM Vol 4

Далее мы передаем это в bc, чтобы разделить на 8192:

echo "scale=2; $(...)/8192" | bc

scale=2 указывает 2 десятичных знака , так как по умолчанию 0 будет показывать вам 1 В все время!

Наконец, мы передаем все это в watch -n1, который повторно выполняет команду (раз в секунду) и показывает результат. Если вы хотите получить только напряжение, вам просто нужна часть внутри одинарных кавычек.


1 После установки msr-tools, необходимого для команды rdmsr.

2
ответ дан 11 January 2020 в 22:30

Другие вопросы по тегам:

Похожие вопросы: