sjuk hat geschrieben: 06.04.2020 13:56:31
Ich nutze seit 14 Jahren Ubuntu und probiere alle zwei Jahre erneut Debian aus zu installieren.
Leider ist es im Vergleich zur Ubuntu Installation stets eine frustrierende Erfahrung.
Ich kann zwar einen gewissen Fortschritt erkennen aber am Ende scheitert es immer an den selben Stellen:
Eine bestimmte Hardware wird entweder bei der Installation und/oder danach nicht richtig erkannt.
Ursache dafür ist offensichtlich, dass die Firmware und/oder der proprietäre Treiber nicht enthalten oder selbst wenn verfügbar nicht automatisch genutzt wird.
Selbst wenn die "inoffiziellen" Installationsimages verwendet werden bleibt der Prozess unnötig Aufwändig.
Die Hardware funktioniert dann zwar noch bei der Installation, danach aber nicht mehr.
Ich habe mich gestern, nachdem ich mich mit einem Umsteiger und Linux Anfänger unterhalten habe, auch gefragt,
warum man beim Debian Installer nicht einfach den Benutzer informiert und bei der Installation fragt, ob das Repository für none-free eingebunden werden soll?
Mit so einem Kompromiss könnte man bei der Frage den Nutzer zum einen die Thematik um Free Software ins Bewusstsein schaufeln, zum anderen Debian per Default grundsätzlich nur mit FreeSoftware Paketen installieren, aber gleichzeitig dem Anfänger trotzdem die Möglichkeit geben, dass er sich die Closed Source NVidia Treiber installiert, ohne das er zuerst schlechte Erfahrung mit den nouveau Treibern machen muss und das ganze System nach dem ersten Booten mit einem schwarzen Bildschirm da steht und bis zur Unbenutzbarkeit nicht mehr bedienbar ist.
Im letzteren Fall wird er nämlich eher Debian deinstallieren und was anderes ausprobieren, anstatt manuell das none-free Repo einzubinden, denn gerade Anfänger werden sich hier nicht helfen können.
Und selbst wenn er letzteres doch noch machen kann, so ist es zumindest meiner Meinung nach keine gute Idee, so etwas Anfängern gleich am Anfang zuzumuten.
sjuk hat geschrieben: 06.04.2020 16:02:08
Meine Hardware ist meist älter als fünf Jahre alt. Mittlerweile suche ich sie mir auch schon gezielt nach Linux-Kompatibilität aus.
Das ist aber oft nicht so einfach, da dazugehörige Hardware-Kompatibilitätslisten leider Mangelware sind.
...
Sehr hilfreich wäre eine Hardware-Kompatibilitätsliste (-Datenbank) die man vor dem Kauf durchsuchen könnte.
Da könnte man dann erfahren welche Hardware generell von Linux unterstützt wird und ob dafür Closed Source Treiber/Firmware benötigt würden.
Das ist im Prinzip mit einem kleinen Trick und wenn man sich etwas auskennt gar nicht so schwer.
Hat man ein Produkt ausgewählt, das man kaufen will und bei dem man noch nicht weiß, wie gut das unter Linux läuft oder ob es überhaupt läuft bzw. Treiber dafür gibt, dann kann man sich vor dem Kauf auf der Webseite des Herstellers die Windows Treiber herunterladen, die sind nämlich sehr informativ, dazu komme ich jetzt.
Wenn die Windows Treiber als EXE Datei kommen, versucht man sie mit Programmen wie 7z zu öffnen.
Wenn sie als ZIP Datei herkommen, wird es noch einfacher.
In der Regel sind sie gepackt.
Wenn man sie auspackt, dann findet man in den meisten Fällen eine oder mehrere *.inf Dateien.
Diese kann man jetzt mit einem Editor öffnen.
Jetzt sucht man nach dem Produktnamen, dem ist meist eine PCI oder USB ID, je nach dem ob es ein USB oder PCI bzw. PCIe Gerät ist, zugewiesen.
Die PCI und USB ID setzt sich meist aus Vendor, also dem Hersteller und einer Subsystem ID, die die genaue Karte beschreibt zusammen.
Diese beiden Identifikationsmerkmale muss man jetzt nur richtig zusammensetzen, ich glaube das ging in der Form [VendorID:SubsystemID].
Hat man das gemacht, lädt man sich den Quellcode der Linux Kernel Version, die man in seiner Distri einsetzt und den aktuellsten Linux Kernel herunter und durchsucht anschließend rekursiv mit grep den Quellcode dieser beiden Linuxkernelversionen nach eben dieser VendorID:SubsystemID Kombination, wenn man fündig wurde, dann weiß man schon gleich welcher Treiber für diese Karte oder für dieses USB Gerät zuständig ist und das VOR dem Kauf.
Im Quellcode selbst findet man dann noch das ein oder andere Kommentar, eventuell ist der Treiber auch noch als Experimental gekennzeichnet.
All das sind aber schon einmal gute Aussichten, die Rückschlüsse auf die Unterstützung im Linux Kernel zulassen.
Gibt es von anderen Herstellern Karten, die die gleichen Treiber verwenden, meist werden ja die gleichen Chipsätze von verschiedenen Herstellern verwendet, dann kann man mit etwas Glück per Internetrecherche noch etwas mehr über die Qualität der Treiber erfahren.
Das Verfahren funktioniert nicht immer, auch ist nicht klar, wie gut die Treiber wirklich sind oder ob das nur ein stub ist, aber wenn man schon einmal die PCI oder USB ID im Kernelquellcode gefunden hat, dann ist die Karte den Linux Entwicklern wenigstens bekannt und es gibt immerhin einen Treiber. Was man aber nicht erfährt ist eben, wie weit der Treiber schon entwickelt ist, da muss man dann weiter recherchieren, aber es ist zumindest ein guter Anhaltspunkt um vor dem Kauf überhaupt etwas in der Hand zu haben. Im Zweifel lässt man von der Karte oder dem USB Gerät eben die Finger weg.
Findet man die PCI ID oder USB ID überhaupt nicht in den Kernelsourcen, dann gibt es für das Gerät entweder überhaupt keine Treiber oder es gibt Treiber, aber die ID ist dem Treiber nicht bekannt.
Wenn letzteres der Fall ist, dann reicht es die Kernelentwickler darüber zu informieren, dann können die die ID hinzufügen und wenn der Treiber ausgereift ist, dann stehend die Chancen relativ gut, dass die Karte dann trotzdem funktioniert.
Auf jeden Fall hilft dieses Verfahren bei recht neuer Hardware, denn die Hardwarekompatibilitätslisten sind sowieso oft genug veraltet und nicht auf dem neuesten Stand.
Einverstanden, dass die Verbreitung freier Software nicht unmittelbar dadurch erreicht wird unfreie Software zu verwenden. Wenn aber durch die Anzahl der Endanwender der Druck auf die Hardware-Hersteller erhöht werden könnte kann im ersten Schritt ein Kompromiss zur Erhöhung der Anwenderanzahl sinnvoll sein. Anschliessend kann etappenweise die 100% freie Software vielleicht sogar schneller oder eher erreicht werden.
Hardwarehersteller liefern keine Open Source Treiber, weil sie wollen, dass du nach 2-3 Jahren wieder neue Hardware von denen kaufst.
Unter Windows half in der Vergangenheit den Hardwareherstellern der Windowsreleasezyklus, alte Hardware kriegt einfach keine neuen Treiber für die neue Windows Version und schon muss der Kunde neu kaufen, weil die alte Hardware nicht mehr unterstützt wird.
Sind die Treiber für Linux aber Open Source, dann könnte die Hardware noch sehr lange im Einsatz sein und der Kunde kauft somit vielleicht erst in 15 Jahren wieder neue Hardware, das ist aber nicht gewollt, denn daran verdient der Hersteller nicht so viel.
Insofern haben Hardwarehersteller ein Interesse, dass zumindest deren Treiber closed source bleiben.
Natürlich gibt's noch andere Hardware wie bspw. GPUs, wo allein die gesteigerte Leistung dafür sorgt, dass der Kunde neu kauft. Hier müssten dann zumindest die GPU Hersteller keine große Angst bezüglich Einnahmeverluste haben, insofern ist zumindest bei NVidia deren Verhalten mehr als fragwürdig, aber so ist das halt leider derzeit.