Zum Hauptinhalt Zur Navigation

Steam-Controller-Technik angesehen: Das ultimative Linux-Gamepad braucht noch Zeit

Endlich gibt es mit dem Steam Controller auch für Linux ein offiziell vom Hersteller unterstütztes Gamepad . Die aktuellen Möglichkeiten damit sind aber enttäuschend. Ein Blick auf die Linux-Technik des Gamepads liefert dafür schnell Erklärungen. Diese lassen aber auch hoffen für die Zukunft.
/ Sebastian Grüner
61 Kommentare News folgen (öffnet im neuen Fenster)
Auch unter Linux kann der Steam Controller noch nicht voll überzeugen. (Bild: Michael Wieczorek/Golem.de)
Auch unter Linux kann der Steam Controller noch nicht voll überzeugen. Bild: Michael Wieczorek/Golem.de

Dass der Steam Controller den Nutzern einiges an Umgewöhnung abverlangt und derzeit für viele Spiele nur als bedingt einsatzbereit gelten kann, hat sich in einem ausführlichen Test unter Windows bereits gezeigt. Das Gamepad wird aber auch mit den Steam Machines ausgeliefert und ist damit das erste Gerät seiner Klasse, das offiziell vom Hersteller für die Nutzung mit Linux unterstützt wird. Die Hoffnung auf einen vielseitig einsetzbaren Controller, der vor allem ohne jegliches Gefrickel unter Linux läuft, wird jedoch schnell enttäuscht.

Steam Controller - Fazit
Steam Controller - Fazit (02:26)

Kernel-Unterstützung für den Steam Controller

Valve hat bei der Entwicklung der Steam Machines dafür gesorgt, dass der dazugehörige Controller mittlerweile in jeder Linux-Distribution zumindest theoretisch problemlos erkannt und genutzt werden kann. Dazu sind auch führende Kernel-Hacker wie Greg Kroah-Hartman frühzeitig mit Prototypen sowie der finalen Version des Gamepads(öffnet im neuen Fenster) ausgestattet worden. Ein derartiger Support durch langjährige Linux-Entwickler gilt gemeinhin als Garantie für die bestmögliche Hardwareunterstützung mit Hilfe der entsprechenden Treiber.

Schon beim ersten Start einer Steam Machine, die direkt in den Big-Picture-Mode bootet, lässt sich der Steam Controller wie erwartet sofort einsetzen. Analog zu dem Erlebnis unter Windows ist dabei die ungewohnte Handhabung des Geräts das mit Abstand größte Problem. Viel mehr als ein schneller Test zum Verifizieren der Funktion mit einer der bekannten Linux-Distributionen sollte schließlich nicht mehr nötig sein.

Doch als wir das zum Controller gehörende USB-Dongle in einen Rechner mit einem Opensuse Tumbleweed stecken, passiert zunächst gar nichts. Das Verhalten tritt auch bei Ubuntu 14.04 mit Langzeitunterstützung auf.

Update, Steam-Download oder von Hand nacharbeiten

Zwar wird das Gerät am USB-Port erkannt, was die Ausgabe des Befehls lsusb bestätigt, doch der Steam Controller ist nicht direkt benutzbar wie mit der Steam Machine. Nach einer kurzen Recherche war der Grund schnell gefunden: Die Udev-Regeln fehlten auf unseren Systemen(öffnet im neuen Fenster) . Der Controller war damit nicht einsatzfähig. Für die zurzeit gepflegten Ubuntu-Versionen sind die Regeln aber inzwischen als Update erschienen, so dass eine Aktualisierung zur Benutzung ausreichen sollte, falls sie nicht sowieso schon durchgeführt wurde.

Für Nutzer anderer Linux-Distributionen, in denen die notwendigen Udev-Regeln noch nicht standardmäßig bereitstehen, bleiben prinzipiell zwei Möglichkeiten, um den Controller benutzen zu können: Zum einen können die Regeln schnell in eine Textdatei geschrieben werden, zum anderen sollte der Start des Steam-Clients dafür sorgen, dass der Controller erkannt wird und dann zur Verfügung steht.

Tastatur- und Mausemulation statt Joystick

So kann dann, wie unter Windows auch, das rechte Touchpad auf dem Controller zum Bewegen des Mauszeigers genutzt werden und das Steuerkreuz dient der Navigation analog zu den Pfeiltasten einer Tastatur. Der rechte Schultertrigger löst einen Linksklick aus, der linke Trigger einen Rechtsklick. Anders als bei bisherigen Gamepads, wie etwa den Xbox-360-Controllern, ist eine Konfiguration des Steam Controllers über die bekannten Werkzeuge von Linux aber noch nicht möglich.

So gibt es zum Beispiel in den Linux-Desktops Einstellungsoptionen für Geräte, die als Joystick erkannt werden, wie eben die Xbox-360-Controller. Doch der Steam Controller wird eben nicht als Joystick erkannt, sondern als Tastatur und Maus. Und die technischen Details dazu sind sogar noch etwas komplizierter.

Standard-Mapping oder Multifunktionsgerät für Hardware-Hacker

Laut den Log-Dateien unserer Rechner wird das Gerät sofort vom Kernel erkannt und als Valve Software Steam Controller identifiziert, oder auch als Valve Software Wired Controller, falls dieser nicht über das Dongle, sondern per USB-Kabel direkt an den Rechner angeschlossen ist. Wie bei anderen USB-Geräten stehen diese dann dem System ihrer Produktkategorie entsprechend zur weiteren Verwendung zur Verfügung.

Wie zu erwarten, wird der Steam Controller dabei als USB Human Interface Device (HID) erkannt - nur eben nicht als ein einziges, sondern als mehrere. So ist das Gamepad aus Sicht des Kernels eine Kombination aus Tastatur und Maus sowie noch drei weiteren, nicht näher spezifizierten Eingabegeräten, die schlicht als "Device" aufgeführt werden.

Rohe Geräteeingaben

Worum es sich genau bei den nicht näher bezeichneten Geräten handelt, lässt sich zunächst nur vermuten. Doch die schiere Fülle an Eingabemöglichkeiten des Steam Controllers bleibt wohl bisher unerreicht. So verfügt das Gamepad über zwei Touchpads und darunter liegende Knöpfe, einen Analogstick, vier Aktionstasten, zwei Schultertasten, zwei analoge Schultertrigger mit digitalem Klick, je einen Start- und Select-Knopf, zwei Knöpfe an der Unterseite und letztlich auch noch einen Gyrosensor.

Dass Valve sich angesichts dieser Vielzahl dazu entschieden hat, den Controller als mehrere Geräte anzusprechen, ist vollkommen nachvollziehbar. Auch werden die Eingaben, größtenteils an Rohgerätetreiber ( HIDRAW(öffnet im neuen Fenster) ) im Kernel übertragen. Das heißt, für die Aktionen wird kein standardisiertes Protokoll verwendet, sondern es werden vollkommen gerätespezifische Eingaben genutzt.

Viele Möglichkeiten für Hardware-Hacker

Der Dokumentation des Linux-Kernels zufolge soll HIDRAW dann eingesetzt werden, wenn die Anwendung im Userspace genau weiß, wie sie mit dem Gerät kommunizieren muss. Für Valve stellt das mit dem Steam-Client selbst kein Problem dar, vor allem nicht die Konfiguration für eine Neuanordnung der Tastenaktionen. Diese Herangehensweise zeigt allerdings auch sehr deutlich den starken Fokus von Valve auf seine eigene Gaming-Plattform.

Spieler, die das Gamepad als umfassendes und vom Hersteller unterstütztes Linux-Gamepad auch unabhängig von Steam nutzen wollen, werden von dieser Art der Userspace-Implementierung stark eingeschränkt. Immerhin werden die Nutzer ohne Steam gezwungen, das Standard-Mapping der Tasten zu benutzen, und eine von Valve unterstützte freie Umsetzung der Treiber im Userspace gibt es noch nicht.

Der Treiber im Kernel sowie das Gamepad selbst sollten findigen Hardware-Tüftlern aber reichen, um die Kommunikation mitzuschneiden und damit einen voll funktionsfähigen Userspace-Treiber zu erstellen, der auch ohne Steam-Client genutzt werden kann. Auf Github gibt es bereits ein Projekt(öffnet im neuen Fenster) , das versucht, genau dies umzusetzen.

Freier Userspace-Treiber möglich

Noch ist dies aber ein eigenständiger Treiber, der nicht in den üblichen Stack einer Linux-Distribution eingepflegt ist. Für eine möglichst weite Verbreitung und Nutzbarkeit des Treibers sollte dieser wohl aber eher in Libinput oder die erst in diesem Jahr begonnene Bibliothek Libratbag integriert werden.

Letztere soll den Fähigkeiten moderner Gaming-Mäuse mit ihren vielen Einstellungsoptionen gerecht werden und die Nutzung von Profilen ermöglichen. Vielleicht könnte der Steam Controller auf ganz ähnliche Weise an ein Linux-System angebunden werden. Dann könnte das Gamepad wohl auch für fast alle Spieleszenarien unter Linux eingesetzt werden, die über den Steam-Client hinausgehen. Sei es mit Wine, im Retro-Emulator oder auch für native Portierungen von Spielen, die nicht an Steam gebunden sind.


Relevante Themen