/ OSS / NZXT: Lüfter auch unter Linux steuern

NZXT: Lüfter auch unter Linux steuern

126419-136986-i_rc.jpg
Gerfried Steube on March 22, 2017 - 1:54 pm in OSS

Für Linux-Enthusiasten ist es immer wieder ein Ärgernis: Oftmals werden Treiber und Software nur für Windows entwickelt. Das gilt auch für die Lüftersteuerung Grid+ des Herstellers NZXT. Das habe ich allerdings erst herausgefunden, nachdem ich sie eingebaut hatte, denn leider hatte ich sie ohne weitere Recherche im Angebot bestellt. Die Steuerung wird mit Plug & Play beworben, doch da will Linux nicht mitmachen. Da ich sie nun aber schon einmal habe und mich nicht gleich wieder von ihr trennen will, unternehme ich etwas: Ich mache meine Lüftersteuerung Linux-tauglich – und das ist einfacher als befürchtet.

Ich habe die Lüftersteuerung verbaut, weil ich beim Einbau einer leisen Wasserkühlung für meinen Computer auf ein Problem stieß: Ich brauche fünf Lüfter und eine Pumpe – doch meine Hauptplatine hat nur drei Anschlüsse. Das NZXT-Grid schien die günstigste Lösung zu sein, zumal es im Angebot nur 20 statt rund 40 Euro kostete. Auch ist es leicht einzubauen; die eigentliche Ansteuerung erfolgt über einen USB-Anschluss, die Stromversorgung über einen Molex-Stecker.

Mit Windows klappt es, mit Linux nicht

Nach dem Einbau bootete ich Windows und lud mir die aktuelle Version der Steuerungssoftware herunter. Damit funktionierte alles. Die Oberfläche der Software ist ressourcenhungrig und spricht mich nicht an, aber damit kann ich leben. Die Lüftersteuerung dreht nur dann auf, wenn es notwendig ist.

In Freude über die neu erworbene Ruhe unter meinem Schreibtisch startete ich den PC neu und wählte diesmal das ebenfalls installierte Linux-System. Und schon war es mit der Ruhe vorbei. Die Lüfter drehten sofort auf 100 Prozent hoch. Ein dmesg verrät mir: Es wurde kein Treiber für eine Lüftersteuerung geladen. Stattdessen werde ich von einem neuen seriellen Port begrüßt – vermutlich die Schnittstelle zur Lüftersteuerung. Im Folgenden versuche ich herauszufinden, ob und wie genau ich die Lüftersteuerung darüber ansprechen kann.

Was auf der Platine steckt

Nach kurzer Verwunderung entscheide ich mich, die Lüftersteuerung zu öffnen. Neben sechs identischen Komponentengruppen findet sich auf der Vorderseite ein Chip mit der Kennung MCP2200. Auf der Rückseite sitzen zwei weitere Bauteile mit der Kennung STM800. Mit dem Mikrocontroller STM32 habe ich schon gearbeitet. Eine kurze Suche im Internet ergibt, dass der STM800 eine leistungsschwächere Variante ist. Der Chip mit der Kennung MCP2200 ist ein USB-zu-seriell-Konverter. Deshalb erkennt Linux auch eine neue serielle Schnittstelle, wenn das Grid eingesteckt ist.

  • NZXT Grid+ (Bild: Matthias Riegler)
  • Steuerplatine, Frontseite (Bild: Matthias Riegler)
  • Steuerplatine, Rückseite (Bild: Matthias Riegler)
  • ILSpy (Bild: Matthias Riegler)

Steuerplatine, Frontseite (Bild: Matthias Riegler)

Der Softwaretreiber wird analysiert

Offensichtlich werden die Steuerdaten über die serielle Schnittstelle übermittelt. Ich muss herausfinden, was dabei übertragen wird, um selbst Befehle zu übermitteln. Meinen ersten Gedanken, die seriellen Daten auf der Platine selbst abzugreifen und zu analysieren, verwerfe ich vorerst.

Bevor ich mir die Mühe mache, das Protokoll von Hand zu entschlüsseln, schaue ich mir die Software genauer an. Im Installationsverzeichnis finde ich CAMV2.Hardware.dll – eine Erweiterung, die namentlich das macht, was ich unter Linux implementieren möchte.

Die Steuerungssoftware läuft nur unter Windows und hat eine aufwendig designte Benutzerschnittstelle. Der Ressourcenbedarf des Programms ist absurd hoch: Bei mir sind es 800 MB Arbeitsspeicher. Erfahrungsgemäß basiert eine solche Software auf dem .NET-Framework von Microsoft.

Read more on: Source

Comments are disabled