Программно вентилятор процессора доступа на ноутбуке? (Windows)

Вы можете использовать метод API для связи обеих платформ. Жадность - хороший случай, чтобы справиться с обоими.

Сторона Laravel будет запрашивать API у Python, а затем результат запроса, который вы можете отобразить с помощью Laravel Blade.

18
задан Sopalajo de Arrierez 10 June 2014 в 22:40
поделиться

4 ответа

В данный момент я работаю над проектом, который, помимо прочего, контролирует компьютерные вентиляторы. В основном, вентиляторы контролируются микросхемой superIO вашего компьютера. Мы получаем доступ к микросхеме напрямую, используя ввод-вывод с отображением портов, и оттуда мы можем перейти к логическому вентиляторному устройству. Использование ввода-вывода с отображением портов требует, чтобы код работал в режиме ядра, но Windows не предоставляет никаких драйверов для общего ввода-вывода порта (по уважительной причине, поскольку это очень мощный инструмент), поэтому мы написали наш собственный драйвер и использовали его.

Если вы хотите пойти по этому пути, вам в основном необходимы знания в двух областях: разработка драйверов и способы доступа и интерпретации информации о микросхеме SuperIO. Когда мы начали проект, мы ничего не знали ни в одной из этих областей, поэтому мы учились, просматривая, читая и, наконец, делая. Чтобы получить знания, нам особенно помогли просмотр этих ссылок:

  1. WDK , который представляет собой набор драйверов для Windows. Это необходимо для компиляции любого драйвера, который вы пишете для Windows. Вместе с ним поставляется много исходного кода, например драйверов, включая драйвер для общего ввода-вывода с отображением портов, называемый portio.
  2. WinIO имеет исходный код для драйвера на C, dll на C, которая программно устанавливает и загружает этот драйвер, и некоторый код C # для графического интерфейса пользователя, который загружает dll и читает / записывает в порты. Драйвер очень похож на тот, что в порту.
  3. lm-сенсоры - это проект Linux, который, помимо прочего, обнаруживает ваш чип SuperIO. / prog / detect / sensor-detect - это программа на perl, которая выполняет обнаружение, и мы потратили некоторое время на просмотр кода, чтобы увидеть, как взаимодействовать с чипом superIO.
  4. Когда мы просматривали код lm-сенсоров, было очень приятно иметь такие инструменты, как RapidDriver и RW-everything , поскольку они позволяли нам моделировать серию сенсоров. -обнаружить. Последний является более мощным и очень полезным для визуализации пространства ввода-вывода, в то время как первый обеспечивает более легкий доступ к некоторым операциям, которые лучше соответствуют операциям в обнаружении датчиков (чтение / запись байта в порт)
  5. Наконец, вы нужно найти техническое описание вашего чипа SuperIO. Из примеров, которые я видел, контроллеры среды каждого чипа обеспечивают схожую функциональность (скорость вращения вентилятора, температура чтения, напряжение чипа чтения), но различаются в том, в какие регистры вы должны писать, чтобы получить эту функциональность. . В этом месте были все необходимые нам спецификации.
22
ответ дан 30 November 2019 в 08:22
поделиться

Да, Это был бы ACPI, и к моему знанию окна не дают много/любой контроль над этим от пространства пользователя. Таким образом, необходимо было бы начать унавоживать с драйверами, который почти невозможен на окнах.

Тем не менее Google показывает существует несколько библиотек окон с открытым исходным кодом для этого для определенных аппаратных средств... так в зависимости от Ваших аппаратных средств, Вы смогли находить что-то.

2
ответ дан 30 November 2019 в 08:22
поделиться

ACPI может или не может позволить Вам корректировать настройки вентилятора. Некоторые реализации BIOS не могут позволить то управление, хотя - они могут вызвать управление в зависимости от настроек BIOS/CMOS. Можно было бы испытывать проблемы с хорош вариант использования, где управление BIOS (даже настроенный) недостаточно. Я столкнулся с ситуациями, где управление BIOS действительно было недостаточно, но не для всех возможных платформ материнской платы.

0
ответ дан 30 November 2019 в 08:22
поделиться

Библиотека WIndows Management Instrumentation (WMI) действительно обеспечивает Класс Win32_Fan и даже метод SetSpeed. Увы, в документах говорится, что это не реализовано, таким образом, я предполагаю, что это не очень полезно. Но Вы можете управлять вещами путем установки состояния электропитания.

0
ответ дан 30 November 2019 в 08:22
поделиться
Другие вопросы по тегам:

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