Безопасно ли использовать драйвер Linux it87 с ASUS M5A99FX?

421
Петр Александров

Может ли it87 драйвер Linux конфликтовать с BIOS или аппаратными устройствами (материнская плата ASUS M5A99FX PRO 2)? Например, в драйвере Linux есть функция (drivers / hwmon / it87.c):

/* * Must be called with data->update_lock held, except during initialization. * We ignore the IT87 BUSY flag at this moment - it could lead to deadlocks, * would slow down the IT87 access and should not be necessary. */ static int it87_read_value(struct it87_data *data, u8 reg) { outb_p(reg, data->addr + IT87_ADDR_REG_OFFSET); return inb_p(data->addr + IT87_DATA_REG_OFFSET); } 

Возможна ли следующая ситуация? Микропрограмма, работающая на ядре 0 в многоядерной системе, записывается в регистр «data-> addr + IT87_ADDR_REG_OFFSET». Затем драйвер Linux, работающий на ядре 1, выполняет it87_read_value и, таким образом, изменяет регистр «data-> addr + IT87_ADDR_REG_OFFSET». Затем микропрограмма пытается прочитать «data-> addr + IT87_DATA_REG_OFFSET» и получает неверные данные.

Также драйвер it87 поддерживает аварийные сигналы: «Если аварийный сигнал срабатывает, он будет оставаться активированным до тех пор, пока аппаратный регистр не будет прочитан хотя бы один раз. Это означает, что причина аварийного сигнала, возможно, уже исчезла! Обратите внимание, что в текущей реализации все аппаратные регистры читаются всякий раз, когда считываются какие-либо данные (если они не истекли менее 1,5 секунд с момента последнего обновления). Это означает, что вы можете легко пропустить однократные тревоги. " (Ядро Linux, документация / hwmon / it87). Возможно ли, что прошивка пропустит сигнал тревоги, если драйвер Linux считывает регистр сигналов тревоги?

Похоже, чипом аппаратного мониторинга является IT8721F.

Также материнская плата ASUS M5A99FX PRO 2 содержит TPU (процессор с турбонаддувом) и EPU (процессор с энергопотреблением). Эти микросхемы взаимодействуют с IT8721F и может ли возникнуть ситуация, аналогичная описанной?

Известно ли, как ASUS Ai Suite взаимодействует с оборудованием? Существует ли специальный интерфейс ACPI для считывания температуры, скорости вращения вентилятора и т. Д., Который не реализован в Linux?

Вывод команды «датчики» (модуль it87 загружен вручную):

it8721-isa-0290 Adapter: ISA adapter in0: +2.82 V (min = +1.96 V, max = +3.04 V) in1: +2.84 V (min = +1.27 V, max = +2.78 V) ALARM in2: +0.95 V (min = +3.02 V, max = +2.10 V) ALARM +3.3V: +3.29 V (min = +2.71 V, max = +4.61 V) in4: +1.02 V (min = +2.92 V, max = +2.41 V) ALARM in5: +2.52 V (min = +3.04 V, max = +2.23 V) ALARM in6: +1.92 V (min = +1.48 V, max = +1.75 V) ALARM 3VSB: +2.04 V (min = +1.94 V, max = +5.93 V) Vbat: +3.29 V  fan1: 903 RPM (min = 22 RPM) fan2: 0 RPM (min = 11 RPM) ALARM fan3: 0 RPM (min = 10 RPM) ALARM temp1: +33.0°C (low = -62.0°C, high = +109.0°C) sensor = thermistor temp2: +32.0°C (low = -72.0°C, high = +60.0°C) sensor = thermistor temp3: -128.0°C (low = -33.0°C, high = -125.0°C) sensor = disabled intrusion0: OK 

Fan2 и Fan3 отсутствуют, поэтому 0 об / мин является правильным.

Я не видел никаких реальных проблем, пока загружается модуль "it87" и считываются данные о температуре. Но я не уверен, что такой проблемы не возникнет.

0
Какую «прошивку» вы представляете для запуска на ядре 0? Единственное, что должно работать, - это один экземпляр драйвера Linux, поэтому не должно быть ошибок параллелизма. dirkt 7 лет назад 0
Обработчик прерываний управления системой (часть BIOS). Он имеет больше привилегий, чем ядро ​​ОС, и может работать во время работы ОС. Я не знаю, получает ли он доступ к чипу аппаратного мониторинга во время работы ОС. Возможно, обработчик SMI блокирует доступ к чипу во время работы с ним. Исходный код BIOS закрыт. Петр Александров 7 лет назад 0
Вы всегда можете (1) отключить SMI или (2) занести в черный список драйвер Linux it87. Принцип «только одна часть программного обеспечения должна контролировать конкретную часть оборудования» также применим к драйверам SMI / Linux. Хотя худшее, что может произойти из-за проблем с параллелизмом, - это (единственное) незаконное значение, которое не опасно. Если что-то перегревается, следующее чтение поймает это. Тепловые процессы протекают медленно. dirkt 7 лет назад 0
Можно (и безопасно) отключить прерывания управления системой и как лучше это сделать? Используя настройки BIOS, возможно, отключить управление вентилятором? Но управление вентилятором может быть реализовано аппаратно без SMI. Микросхема аппаратного мониторинга также обеспечивает мониторинг напряжения. Возможно ли, что из-за проблем с параллелизмом будет установлено неправильное напряжение? Петр Александров 7 лет назад 0

0 ответов на вопрос

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