Wie ist der Stand der Linux-Kernelunterstützung für Intel Quiet System Technology (Intel QST)?

8

Ich versuche einen Weg zu finden, um über Linux auf einem Intel Q45 Express / ICH10DO-Chipsatz auf die Lüftergeschwindigkeit zuzugreifen und / oder diese zu steuern . Dieser Chipsatz enthält eine Funktion namens Intel Quiet System Technology (Intel QST), die Teil der Intel Management Engine (Intel ME) ist, die auf einem eingebetteten Co-Prozessor ausgeführt wird. Intel beschreibt QST wie folgt:

Die Intel Management Engine (ME) hostet ein Firmware-Subsystem - Intel Quiet System Technology (QST) -, das die Überwachung von Temperatur-, Spannungs-, Strom- und Lüfterdrehzahlsensoren unterstützt, die im Chipsatz, im Prozessor und in anderen Geräten des Geräts enthalten sind Hauptplatine. Für jeden Sensor wird in regelmäßigen Abständen ein Gesundheitszustand basierend auf festgelegten Schwellenwerten ermittelt. Intel QST bietet auch Unterstützung für die akustisch optimierte Steuerung der Lüftergeschwindigkeit. Basierend auf den Messwerten der Temperatursensoren ermittelt Intel QST im Laufe der Zeit die optimalen Drehzahlen für den Betrieb der verfügbaren Lüfter, um den vorhandenen thermischen Bedingungen mit möglichst geringen akustischen Auswirkungen gerecht zu werden.

Im Intel ICH10-Datenblatt heißt es:

5.24 Intel® Quiet System-Technologie (Intel® QST)

Der ICH10 implementiert drei PWM- und vier TACH-Signale für die Intel Quiet System Technology (QST).

Hinweis: Für die Funktionalität der Intel Quiet System Technology ist ein korrekt konfiguriertes System erforderlich, einschließlich eines geeigneten (G) MCH mit Intel ME-, Intel ME-Firmware- und System-BIOS-Unterstützung.

Anschließend werden die PWM-Ausgänge, TACH-Eingänge und Wärmesensoren beschrieben.

In diesem Artikel wird behauptet, dass im Dezember 2012 ein Linux-Treiber für Intel QST verfügbar war:

Anfang dieses Jahres gab es eine frühe Unterstützung für Intel QST in LM_Sensors, während jetzt angekündigt wurde, dass es sich um einen neuen Intel QST-Treiber für Linux handelt. Der Code für diesen neuen Quiet System Technology-Treiber befindet sich derzeit auf GitHub.

Der oben erwähnte Code befand sich nicht in Github, sondern in einem privat gehosteten Git-Repository ( http://mose.dyndns.org/mei.git ), das den nicht mehr existierenden dyndns.orgDienst verwendete.

Ich habe einige Zeit damit verbracht, die Linux-Kernelquelle (v4.16.7) zu durchsuchen, aber bisher habe ich keine Spur dieses Treibers gefunden.

  • War die Intel QST- Unterstützung jemals im Linux-Kernel enthalten?
  • Wenn ja, welche Treiber- / Kernelmodule werden für die Intel QST- Unterstützung benötigt?
vallismortis
quelle

Antworten:

14

Diese Antwort dokumentiert endgültige Informationen zur Linux-Unterstützung für Intel QST, die zusammengestellt wurden, indem Archive der nicht mehr existierenden lm-sensorsMailingliste aufgespürt und die Autoren einiger dieser Nachrichten direkt kontaktiert wurden. Die Informationen hier sind in chronologischer Reihenfolge der Entwicklung der Linux QST-Unterstützung organisiert.

Geschichte der Linux QST-Unterstützung


Im Februar 2010 wurde das Intel QST SDK öffentlich zugänglich gemacht.

In einem Intel-Forumsbeitrag vom Juni 2011 wurde später erwähnt, dass der HECI-Treiber von www.openamt.org nicht mehr zum Ausführen des SDK benötigt wird.

Eine Nachricht vom Februar 2012 auf der lm-sensorsMailingliste zeigte die Art der Informationen an, die über eine modifizierte Version des Intel QST SDK (die " Gigaplex-Version ") verfügbar sind , und wies darauf hin, dass die hwmonQST-Unterstützung willkommen wäre, wenn sie implementiert werden könnte, ohne sich auf die QST zu verlassen SDK:

Fan Speed Sensor 1:

   Health:            Normal
   Usage:             Processor Thermal Module Fan
   Reading:           1063

   NonCrit:           300.000
   Crit:              250.000
   NonRecov:          200.000

Fan Speed Controller 1:

   Health:            Normal
   Usage:             Processor Fan Controller
   Control:           Manual
   Duty Cycle:        2.95

Wenn jemand die Zeit findet, das SDK zu durchsuchen und einen hwmon-Treiber zu schreiben, würde ich ihn gerne überprüfen und testen. Dies scheint jedoch ein großer Aufwand zu sein, da zumindest ein Teil des SDK-Codes portiert werden müsste, um im Kernel ausgeführt zu werden.

Bis Dezember 2012 hatte tatsächlich jemand einen solchen Treiber entwickelt, wie aus dieser Meldung in der LKML hervorgeht:

Ich habe einen Treiber für die QST-Funktion (Intel Quiet System Technology) der Management Engine-Schnittstelle geschrieben, die auf neueren Intel-Chipsätzen zu finden ist.

Das Modul wurde ursprünglich für Linux 2.6.39 entwickelt, benannt qst-hwmonund unterstützt QST v1, indem ein ganzer mei- Treiber von Grund auf neu implementiert wird . Es gab weitere Diskussionen über ein zweites Modul qst2-hwmon, das die Unterstützung für QST v2 implementieren würde.

Ein Hinweis vom März 2013 auf der hwmon-Hardware-Support- Seite weist darauf hin, dass alle bekannten Versuche, die Linux-Unterstützung für Intel QST zu implementieren, offenbar ins Stocken geraten sind:

(2013-03-20) Der ICH8 (82801H) und mehrere spätere Intel South Bridges verfügen über eingebettete Sensoren mit den Namen MEI oder QST. Diese werden aufgrund fehlender technischer Dokumentation und Unterstützung durch Intel noch nicht unterstützt. Das OpenAMT-Projekt soll helfen, aber in der Praxis passiert nicht viel . Oder gibt es vielleicht Hoffnung ? Oder hier , oder hier .

Ein Fehlerbericht des ursprünglichen Entwicklers von November 2014qst-hwmon zeigte jedoch, dass der Treiber noch am 29. November 2014 bearbeitet wurde und auf Linux 3.14.18 portiert wurde.

Aktueller Stand der Linux QST-Unterstützung


Das qst-hwmon-Kernelmodul

Ich habe es endlich geschafft, den aktuellen Speicherort des Git-Repositorys für das Kernel-Modul zu ermitteln. So erhalten Sie eine Kopie des Quellcodes:

git clone http://eden.mose.org.uk/mei.git

Dieses Kernelmodul hat es noch nicht in die Hauptquelle des Linux-Kernels geschafft (ab Kernel 4.19).

Der Code wird sauber für Linux 4.16.7 kompiliert und erzeugt 4 Module, die in das entsprechende Modulverzeichnis kopiert werden sollten:

make
cp intel-mei.ko /lib/modules/4.16.7/kernel/drivers/hwmon/
cp mei-pci.ko /lib/modules/4.16.7/kernel/drivers/hwmon/
cp qst-dev.ko /lib/modules/4.16.7/kernel/drivers/hwmon/
cp qst-hwmon.ko /lib/modules/4.16.7/kernel/drivers/hwmon/

Und aktualisieren Sie die Modulabhängigkeiten:

depmod

Dann können die Module geladen werden:

modprobe intel-mei
modprobe mei-pci
modprobe qst-dev
modprobe qst-hwmon

Anschließend können Sie überprüfen, ob der /sys/bus/intel-mei/devices/Ordner einige relevante Einträge enthält. Dies funktioniert derzeit nicht für mich, aber ich glaube, es liegt daran, dass der Standard-Intel MEI-Treiber in den Kernel kompiliert wurde.

Weitere Arbeiten sind erforderlich lm_sensors, um den qst_hwmonFahrer zu erkennen . Die obigen Mailinglisten-Archive weisen darauf hin, dass lib-Sensoren möglicherweise gepatcht werden müssen, um den intel-meivon diesen Modulen bereitgestellten Bus ordnungsgemäß zu identifizieren .

Update: Ich stehe in Kontakt mit dem Entwickler des Treibers, daher hoffe ich, dass die endgültigen Anweisungen hier bald dokumentiert werden.


Alternativer Ansatz mit Intel QST SDK und Meifand

Hier ist eine Beschreibung (Dezember 2015) zur Steuerung von Lüftern über die " Gigaplex-Version " des Intel QST SDK (Februar 2012) und zur Verwendung von Meifand ( nicht lm-sensors ) als Dämonprozess für den Zugriff auf die Sensorinformationen.

vallismortis
quelle
Ich weiß, es ist eine Weile her, aber irgendein Update? Frustrierend, wie es scheint, haben sich alle diese Pfade in Kernel 5.x geändert. Erstaunlich, dass es auf der ganzen Welt so potenziell kritische Intel-Systeme gibt, die ihre Lüfter nicht angemessen verwalten können. Der aktuelle mei-Treiber im 5.15-Kernel präsentiert / sys / bus / mei / anstelle von / sys / bus / intel-mei / und Geräte sehen völlig anders aus. Außerdem wird der obige Code ^ derzeit nicht kompiliert, ohne den Fehler "-Werror = inkompatible Zeigertypen" zu umgehen. Ich werde mich auch beim Repo erkundigen. Vielen Dank!
BoeroBoy
Sorry Kernel 5.5.15
BoeroBoy