Ein Schema F zum Lösen aller Hardware-Schwierigkeiten unter Linux liefern diese OpenSuse-Tipps zwar nicht, dafür aber einige Grundregeln und Beispiele zur Problemlösung.
Was die Hardware-Unterstützung angeht, hat es Linux schwerer als Windows: Hersteller von Consumer-Hardware sorgen stets dafür, dass ein Windows-Treiber bereitsteht. Funktioniert das generische Exemplar nicht, dann entwickeln sie selbst einen, denn sonst wäre das Gerät unverkäuflich. An einen Linux-Treiber denken die Hersteller dagegen selten – hier fällt die Aufgabe dann den Linux-Kernel-Entwicklern zu.
Das betrifft auch OpenSuse-Anwender. Früher gab es beim Hardware-Support zwischen den Linux-Spielarten beträchtliche Unterschiede: Jede Distribution übernahm ihre eigene Auswahl an Neuerungen aus dem Entwicklungszweig des Kernels. Inzwischen hat sich sich das Entwicklungsmodell des Kernels geändert, zudem fuhren die Distributionen ihre Alleingänge eher zurück.
Generika
Doch längst nicht bei jeder Hardware steht die Linux-Unterstützung auf Messers Schneide: Es gibt zum Glück viele Geräte, die sich über standardisierte Protokolle ansprechen lassen. Festplatten, SSDs, USB-Sticks, Mäuse und Tastaturen erfordern sowohl unter Linux als auch Windows selten einen speziellen Treiber. Anwender können sich darauf verlassen, dass ihr Betriebssystem Treiber für die gängigen Geräteklassen bereitstellt.
Viele USB-Soundkarten (Abbildung 1) oder Webcams verhalten sich ebenfalls “class compliant”, was gelegentlich auch auf den Verpackungen steht. Oft liest man dort mit Rücksicht auf technisch weniger versierte Anwender auch Formulierungen wie “funktioniert ohne Treiberinstallation”. Generell wächst die Anzahl solcher Geräte, denn auch für die Hardware-Hersteller ist es leichter, sich nicht noch zusätzlich um die Entwicklung eines Treibers kümmern zu müssen.

Abbildung 1: Auch hochwertige Soundkarten lassen sich als generische USB-Audio-Geräte betreiben, die weder unter Windows noch Linux einen speziellen Treiber benötigen.
Allerdings sieht man es verpackten Geräten oft nicht an, ob sie sich “class compliant” verhalten oder ob der Linux-Kernel einen speziellen Treiber für sie mitbringt (was inzwischen häufig der Fall ist). Meist aber interessiert die Hersteller das Thema Linux-Support einfach nicht, oder sie vermerken eine gegebene Linux-Unterstützung deshalb nicht, weil sie Anfragen zu einem Thema scheuen, mit dem sie sich nicht auskennen.
Erfolgsmeldungen
Zumindest vor dem Kauf von Geräten, bei denen man nicht von einer generischen Betriebssystemunterstützung ausgehen kann, rät es sich an, eine Suchmaschine zum Thema “Hardware-Name linux” zu befragen. Oft finden Sie auf diesem Weg Aussagen, dass das Gerät unter einer bestimmen Version einer Distribution funktioniert – oder eben auch nicht. Tauchen dabei keine Informationen zur eigenen OpenSuse-Version auf, stellt sich die Frage, inwieweit sich Erfolgsberichte mit anderen Distributionen auf das eigene System übertragen lassen.
Dazu sollte man zunächst wissen, welche Komponente des Linux-Systems für die Hardware verantwortlich zeichnet. Zumeist übernimmt das der Kernel. Das zugehörige Paket heißt auf einer Standard-OpenSuse-Installation kernel-default und liegt unter “Leap” 15.2 in der Version 5.3.18 von Ende 2019 vor, während die Kernel-Entwickler im Februar 2021 bereits Version 5.11 veröffentlichten. OpenSuse “Leap” basiert auf der Suse-Enterprise-Ausgabe, wo Konstanz mehr zählt als der Support brandneuer Hardware. Daher kommt es vor, dass Ubuntu und Fedora ein Gerät unterstützen, OpenSuse “Leap” jedoch noch nicht.
OpenSuses Rolling-Release-Variante “Tumbleweed” war mit Kernel 5.10 zu Redaktionsschluss deutlich aktueller bestückt. Ubuntu 20.10 [1] enthält immerhin Version 5.7, Fedora [2] dagegen ebenfalls 5.10. Beide Distributionen stellen eine Online-Paketsuche zur Verfügung, sodass sich die Versionen des Kernels oder anderer Systemkomponenten leicht ermitteln lassen. Das Kernel-Paket heißt bei Ubuntu übrigens linux, unter Fedora und OpenSuse dagegen kernel.
Linux unterstützt Hardware meist sehr lang, sodass die Chance, dass Ihre Hardware funktioniert, mit einem neueren Kernel auf jeden Fall steigen. Möchten Sie trotzdem nicht zu “Tumbleweed” wechseln, wo unangekündigte Versionsaktualisierungen der Programme den Anwender gelegentlich eine Umgewöhnung abverlangen, installiert auch unter OpenSuse “Leap” einen zwar nicht offiziell unterstützten, aber dennoch in aller Regel problemlos funktionierenden Kernel vom OpenSuse Build-Service [3]. Ein Klick auf den Button für die Standard-Architektur auf der genannten Seite genügt, um das Kernel-Paket Ihrem System hinzuzufügen. Der bisherige Kernel bleibt erhalten, Sie wählen im Bootmenü zwischen diesem und dem neuen Kernel.
Für zwei sehr wichtige Hardware-Typen allerdings zeichnet der Linux-Kernel nicht verantwortlich: Drucker und Scanner.
Drucker
Für Drucker gibt es das Hintergrundprogramm CUPS. Das Paket CUPS-filters enthält die grundlegenden Druckertreiber, zusätzliche bringt das Paket gutenprint mit. Beide sind bei der OpenSuse-Installation vorausgewählt. In aller Regel erkennt CUPS in der OpenSuse-Konfiguration die Treiber für per USB angeschlossene Drucker automatisch (Abbildung 2).

Abbildung 2: Den Drucker Canon iP7200 richtet OpenSuse nach dem Anstecken am USB-Port automatisch ein.
Das YaST-Modul Drucker liefert OpenSuse-Anwendern Informationen darüber, welche Druckermodelle das System unterstützt. Auch wenn noch kein Drucker angeschlossen ist, klicken Sie auf Hinzufügen und warten das Ende der Hardware-Suche ab. Es findet sich zwar naturgemäß kein neuer Drucker, doch Sie geben über das Suchfeld Treiber suchen und zuweisen Marke und Modell eines Sie interessierenden Druckers ein und suchen dann nach verfügbaren Treibern. Auch online lassen sich sowohl der CUPS-Treibergrundbestand [4] als auch die zusätzlichen Gutenprint-Treiber [5] durchstöbern.
Primär dient das YaST-Modul Drucker dem Einbinden neuer Drucker. Funktioniert die automatische Erkennung nicht oder möchten Sie für einen Drucker mehrere Druckerwarteschlangen mit unterschiedlichen Standardeinstellungen hinzufügen, ist es das richtige Werkzeug.
Bedenken Sie sowohl bei einer Online-Recherche in den Treiberdatenbanken als auch bei Erfolgsberichten von Anwendern anderer Distributionen, dass OpenSuse “Leap” die CUPS-filters in Version 1.25.0 vom Juni 2019 mitbringt. In den letzten zweieinhalb Jahren hinzugekommene Druckertreiber fehlen entsprechend. Die Gutenprint-Treiber in Version 5.2 stammen etwa aus derselben Zeit. Auch die CUPS-filters von “Tumbleweed” fallen mit Version 1.27.2 nicht ganz taufrisch aus.
OpenSuses Build-Service hält auch hier Pakete bereit, die die Druckerunterstützung auf den neuesten Stand bringen. Öffnen Sie zum Installieren das YaST-Modul Software Management, und wählen Sie dort den Menüpunkt Konfiguration / Repositorys. Nach einem Klick auf Hinzufügen behalten Sie die vorausgewählte Option URL angeben und geben den Link https://download.opensuse.org/repositories/Printing/openSUSE_Leap_15.2/ sowie einen nachvollziehbaren Repository-Namen ein.
Wählen Sie dann auf der Hauptseite des YaST-Moduls im Ausklappmenü Anzeigen den Eintrag Repositorys und im sich öffnenden Reiter das eben hinzugefügte Repo. Dann klicken Sie auf Systempakete auf die Versionen in diesem Repository umstellen und Übernehmen. Daraufhin installiert YaST die aufgefrischten Software-Versionen.
Scanner
Für Scanner gibt es ebenfalls einen vom Kernel unabhängigen Hintergrunddienst namens SANE [6]. Das Einrichten eines Scanners übernimmt das YaST-Modul Scanner (Abbildung 3), das neben dem Einbinden neuer Geräte eine Recherche nach unter OpenSuse einsetzbaren Modellen erlaubt. Dazu klicken Sie auf Hinzufügen und suchen in der Liste der Modelle nach dem gewünschten Gerät.

Abbildung 3: Der Aufbau des YaST-Moduls Scanner gestaltet sich ähnlich wie der des Moduls Drucker. Es bietet neben der automatischen Hardware-Erkennung auch eine Treiberrecherche.
Allerdings enthält diese Liste auch nicht unterstützte Modelle. Auf den Modellnamen folgt eine Beschreibung des Grads der Unterstützung, im besten Fall umfassende Funktionalität, und gegebenenfalls eine Beschreibung der Einschränkungen. Das Paket mit den Treibern namens sane-backends liegt mittlerweile über die offiziellen Updates bereits in der aktuellsten Version 1.0.31 vor.
Berichterstattung
Funktioniert unter Linux etwas nicht wie gewünscht, konsultiert der Experte alle verfügbaren (Fehler-)Meldungen und nutzt sie gegebenenfalls als Schlagworte für eine Internet-Recherche. Das gilt auch bei Hardware-Problemen.
Zugriff auf die Meldungen des Kernels erhalten Sie durch Eingabe von journalctl -fk als Root in der Konsole. Zwar wirken die über den Bildschirm huschenden Meldungen auf den ersten Blick verwirrend, doch ein paar Beispiele zeigen, dass es leichtfällt, ihnen die gewünschten Informationen zu entlocken.
Beim Anschließen eines Druckers per USB erscheinen die Meldungen aus Listing 1. Die entscheidende Rolle spielt hier der Ausdruck new high-speed USB device, mit dem der Kernel das Erkennen eines USB-2.0-Geräts meldet. Product und Manufacturer verstehen sich von selbst.
Listing 1
Anschließen eines Druckers via USB
Feb 11 16:24:03 suse0 kernel: usb 1-3: new high-speed USB device number 5 using xhci_hcd Feb 11 16:24:03 suse0 kernel: usb 1-3: New USB device found, idVendor=04a9, idProduct=10dc, bcdDevice= 1.10 Feb 11 16:24:03 suse0 kernel: usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Feb 11 16:24:03 suse0 kernel: usb 1-3: Product: iP7200 series Feb 11 16:24:03 suse0 kernel: usb 1-3: Manufacturer: Canon Feb 11 16:24:03 suse0 kernel: usb 1-3: SerialNumber: 044B4D Feb 11 16:24:03 suse0 kernel: usblp 1-3:1.0: usblp0: USB Bidirectional printer dev 5 if 0 alt 0 proto 2 vid 0x04A9 pid 0x10DC
Eventuell noch wichtig sind die Angaben idVendor=04a9 sowie idProduct=10dc: Diese Hersteller- und Produkt-ID-Codes erscheinen auch, wenn der Kernel die Klartext-Variante Product und Manufacturer nicht kennt. Sie eignen sich damit als Ausgangsbasis für Internet-Recherchen. Wichtig ist auch, dass im Konsolenfenster keine rot dargestellten Fehlermeldungen (error oder failed) erscheinen: Auf Kernel-Ebene wurde das Gerät also erfolgreich eingebunden.
Das Erkennen des USB-Geräts durch den Kernel stellt zwar die Voraussetzung für das Funktionieren des Druckers dar, genügt aber alleine noch nicht. Zusätzlich muss im Linux-Drucksystem CUPS ein Treiber für das Druckermodell vorliegen, was in unserem Beispiel bei einem einige Jahre alten Canon-Drucker der Fall ist (Abbildung 3).
Während die Erkennung des USB-Geräts auf Kernel-Ebene lediglich den generischen Treiber usblp (Listing 1, letzte Zeile) voraussetzt und daher als unkritisch gelten darf, erfordert das Funktionieren des Druckers auf der CUPS-Ebene einen speziell auf ein Gerät zugeschnittenen Filter. Entscheidend ist also das bereits beschriebene Einrichten des Geräts im YaST-Modul.
Minenfeld
Der Linux-Support von TV-Karten gestaltet sich schon deshalb problematisch, weil das Marketing der Hersteller immer wieder entscheidet, einen neuen Chipsatz unter dem alten Modellnamen weiterzuverkaufen. Am Äußeren des Geräts und sogar der Verpackung ändert sich dann oft nichts, doch die ehemals bestehende Linux-Kompatibilität geht oft erst einmal verloren.
Eine reibungslos funktionierende, allerdings nur noch gebraucht zu bekommende Kabel-TV-Karte ist die Technotrend TT Connect S2-3650-CI (Abbildung 4). Nach dem Anschließen gibt journalctl -fk die in Abbildung 5 gezeigten Meldungen aus. Wieder steht am Anfang new high-speed USB device, sodass sich die folgenden Meldungen dem gleichzeitig angeschlossenen Gerät zuordnen lassen. Es gibt einen einfachen Trick, um Meldungen ab einem bestimmten Zeitpunkt abzutrennen: Drücken Sie dazu einfach ein paar mal die Eingabetaste.

Abbildung 4: Für ältere TV-Karten, wie diesem für Satellitenfernsehen ausgelegten Technotrend-Board, gibt es schon seit Langem einen stabilen Linux-Support.

Abbildung 5: Trotz eines Fehlers auf dem I2C-Bus funktioniert die Technotrend-Satellitenfernsehkarte am Ende problemlos.
Zum Glück bildet eine Erfolgsmeldung Technotrend TT Connect S2-3650-CI successfully initialized and connected den Abschluss. Tatsächlich funktioniert das hier angeschlossene Gerät einwandfrei, obwohl die (rot hinterlegte) Fehlermeldung pctv452e: I2C error -121; AA 02 A0:*01:*14 -> 55:*02:*31:*03 a0:*00:*00 erscheint. I2C bezeichnet einen seriellen Datenbus, der bei vielen TV-Karten zum Einstellen der Kanalfrequenz oder sonstiger Kommunikation mit der Karte dient. Wer etwas Erfahrung mit solchen Boards hat, der weiß, dass die Linux-Treiber dafür manchmal mangels Manpower mit heißer Nadel gestrickt sind, aber dann trotz gelegentlicher Fehlermeldungen einwandfrei funktionieren.
Bei einer Technisat SkyStar USB HD steht am Ende jedoch keine Erfolgsnachricht, sondern die Fehlermeldung did not find the firmware file 'dvb-usb-SkyStar_USB_HD_FW_v17_63.HEX.fw' (status -2) (Abbildung 6). Das liegt daran, dass diese Karte anders als das Technotrend-Board ihre Firmware (also ihr internes Betriebssystem) im stromlosen Zustand nicht speichert. Vielmehr lädt es der Treiber beim Einstecken der Karte jedes Mal aufs Neue.

Abbildung 6: Die Unterstützung einer Technisat-SkyStar-Karte scheitert unter OpenSuse zunächst an einer fehlenden Firmware-Datei.
Das hat für den Hersteller den Vorteil, dass er keinen permanenten Speicher einzubauen braucht. Der Benutzer profitiert davon, dass er für ein Firmware-Update lediglich die entsprechende Datei auf seinem Rechner durch eine neuere Version ersetzen muss, statt einen Flash-Vorgang auszuführen, für den es oft nur ein Windows-Tool gibt.
Spricht der Linux-Treiber wie hier von cold state, liegt ein solches Gerät ohne betriebsfertige Firmware vor. Viele Firmware-Images, wie die hier fehlende Datei dvb-usb-SkyStar_USB_HD_FW_v17_63.HEX.fw, finden sich im Paket kernel-firmware. Manche Firmwares fehlen allerdings, teilweise aus lizenzrechtlichen Gründen.
Es ist trotzdem recht einfach, die Karte erfolgreich zu betreiben: Es genügt, im Internet nach dem Dateinamen der fehlenden Firmware zu suchen. Dann laden Sie sie herunter und legen sie mit Root-Rechten im Verzeichnis /lib/firmware/ ab. Anschließend funktioniert die fragliche Karte (Abbildung 7).

Abbildung 7: Nach Herunterladen der Firmware-Datei klappt auch das Einbinden der Technisat-SkyStar-Karte.
Fazit
Wie erwirbt man Wissen wie das zu den als Beispiel dienenden TV-Karten? Suchen Sie im Internet nach all den Schlagwörtern aus dem Meldungstext von journalctl -fk. Sie erhalten in aller Regel Treffer, die Ihnen weiterhelfen.
Dennoch bleibt es etwas Tüftelei, nicht auf Anhieb funktionierende Hardware unter Linux zur Kooperation zu überreden. Die eine simple Lösung für alle Probleme gibt es nach wie vor nicht. Doch viele der Schwierigkeiten betrafen bereits andere Anwender, die nicht selten auch eine Lösung gefunden haben. (tle)
Infos
-
Ubuntu-Paketsuche: https://packages.ubuntu.com
-
Fedora-Paketsuche: https://src.fedoraproject.org/projects/rpms/
-
Kernel-Upgrade für OpenSuse: https://software.opensuse.org//download.html?project=Kernel%3AHEAD&package=kernel-default
-
Von CUPS unterstützte Drucker: https://www.openprinting.org/printers
-
Gutenprint-Treiber: http://gimp-print.sourceforge.net/p_Supported_Printers.php
-
Von SANE unterstütze Scanner: http://www.sane-project.org/sane-supported-devices.html





