ubuntuusers.de

Projektvorstellung: Linux-Hardware-Guide

projektvorstellung.png

Der Linux-Hardware-Guide ist 2012 aus den Hardware-Berichten des mittlerweile nicht mehr existierendem Online-Magazin "LinuxNetMag" entstanden. Er hat zum Ziel, Linux-Nutzern oder Linux-Interessierten eine Wissensdatenbank zur Linux-Kompatibilität von Hardware in möglichst komfortabler Weise bereitzustellen.

Für die Wissensdatenbank wird verschiedenste Hardware auf ihre Linux-Kompatibilität hin untersucht und bewertet. Dabei werden für alle erfassten Hardware-Komponenten Testberichte und, falls nötig, Konfigurationsanleitungen erstellt. Zusätzlich werden Dank der Mithilfe von Linux-Nutzern über eine spezielle Scan-Software automatisiert Testdaten zu Hardware-Komponenten beigetragen, um eine möglichst breite Datenbasis für die Analyse der Hardware-Kompatibilität zu erreichen. Der Linux-Hardware-Guide beschränkt sich nicht auf eine einzelne Distribution, sondern versucht stattdessen alle Linux-Distributionen zu unterstützen, um möglichst vielen Linux-Nutzern helfen zu können. Zusätzlich möchte der Linux-Hardware-Guide den Erfahrungsaustausch vereinfachen. Darum ermöglicht es die Web-Seite Linux-Nutzer zu finden, die exakt die selbe Hardware einsetzen. Denn in solchen Fällen ist eine Fehlersuche oder Konfigurationshilfe besonders erfolgversprechend.

Es können alle möglichen Arten von Hardware in die Datenbank eingetragen werden, sofern diese in irgendeiner Weise mit Linux betrieben werden können oder auf ihnen Linux installiert werden kann (z.B. Router mit Linux als Firmware). So existieren bisher neben Einträgen zu Standard-Komponenten wie Mainboards und Laptops auch Konfigurationshilfen zu seltener eingesetzter Hardware wie Blutzucker-Messgeräten oder Wetter-Stationen. Hierbei ist es egal, ob die Hardware aktuell vertrieben wird oder bereits mehrere Jahre alt ist. Da auch Einträge zu älterer Hardware noch für einige Linux-Nutzer von Interesse sein können, werden auch diese von den Administratoren der Seite gerne veröffentlicht. Damit der Linux-Hardware-Guide bei Hardware-Käufen beratend zur Seite stehen kann, können die Hardware-Übersichten auf Linux-kompatible und käuflich erwerbliche Komponenten gefiltert werden. Hierfür ist die Hardware-Datenbank des Linux-Hardware-Guide mit Angebots-Datenbanken verschiedenster Hardware-Distributoren verknüpft. Somit kann immer aktuell die Verfügbarkeit, die Marktpreise und die Preisentwicklung einer Hardware-Komponente eingesehen werden. Dies bietet den Vorteil, dass bei einer Suche nach Hardware von Beginn an diejenigen Komponenten ausgeblendet werden können, die nicht mehr vertrieben werden. Diese Anbindung an Märkte wurde für verschiedene Länder implementiert (neben Deutschland u.a. für Märkte wie USA, UK, Frankreich, Spanien und Italien). Während die deutsche Version des Linux-Hardware-Guide unter der Adresse linux-hardware-guide.de läuft, sind die anderen Sprachen und Märkte über linux-hardware-guide.com 🇬🇧 erreichbar.

In der Datenbank befinden sich aktuell 1.858 Hardware-Komponenten. Davon sind 1.798 auf der deutschen Seite einsehbar (der Rest wartet noch auf eine Übersetzung). 4124 mal wurden Hardware-Komponenten bewertet und 850 mal kommentiert. Es sind 17 Hardware-Distributoren eingebunden, welche Informationen bezüglich Verfügbarkeit in 11 Ländern liefern. Bisher wurden 416 Hardware-Scans bei 21 verschiedenen Distributionen (und 96 unterschiedliche Varianten dieser Distributionen, d.h. Ubuntu 15.10, 16.04, 64bit, 32bit ...) hochgeladen. Davon wurden die meisten Scans (d.h. 237) unter Ubuntu ausgeführt.

Eintragen von Hardware

Der Linux-Hardware-Guide lebt davon, dass Linux-Nutzer ihre Hardware in die Datenbank eintragen und deren Linux-Kompatibilität bewerten. Es hat sich gezeigt, dass dieser Schritt so einfach wie möglich gestaltet werden muss, um möglichst viele zum Mithelfen zu bewegen. Daher wurde ein größtenteils automatisiertes Eintragen der Hardware-Informationen ermöglicht. Denn ein Sammeln von Kompatibilitätsdaten in dem benötigten Umfang ist nur dann möglich, wenn es größtenteils automatisiert stattfindet. Daher ist ein Open-Source-Skript erstellt worden, welches den Scan der Hardware und das Hochladen der Daten zum Linux-Hardware-Guide übernimmt. Es werden hierbei vom Skript eine Reihe von Systeminformationen ausgelesen:

  • 'lspci' zur Erkennung von Mainboard und PCI-Komponenten und der zugehörigen Treiber,

  • 'lsusb' zur Erkennung von USB-Komponenten,

  • 'Xorg.log' u.a. zur Erkennung der Grafikkarten-Unterstützung

  • 'dmesg' zur Erkennung einer Vielzahl von Hardware-Komponenten und Treibern (z.B. Festplatten, Webcam)

  • '/proc/cpuinfo' zur Identifizierung des eingesetzten CPU

  • etc.

Anschließend werden diese Systeminformationen anonymisiert (d.h. es werden MAC-Adressen und IP-Adressen aus den Log-Dateien entfernt) und dann an den Linux-Hardware-Guide übertragen. Dort werden die Daten automatisch analysiert und es wird untersucht, ob die in den Daten identifizierten Hardware-Komponenten bereits in der Datenbank existieren. Über eine Web-Seite können die erkannten und nicht erkannten Hardware-Komponenten sowohl bewertet und kommentiert werden als auch Konfigurationstipps hinterlassen werden.

Example-LHG-Hardware-Scan-de.png
Beispiel eines analysierten Hardware-Scans

Die noch nicht in der Hardware-Datenbank eingetragenen Komponenten werden anschließend von einem registrierten Mitglied des Linux-Hardware-Guide gesichtet, Beschreibungen z.T. noch leicht angepasst und freigegeben.

Wer die Daten nicht automatisiert hochladen möchte, kann die Informationen auch anonym händisch eintragen.

Hardware einmalig eintragen

Wer seine Hardware einmalig in die Datenbank eintragen möchte, kann das Skript von GitHub herunterladen. Mittels des Konsolen-Programms wget geht dies z.B. durch:

1
wget https://raw.githubusercontent.com/paralib5/lhg_scanner/master/scan_hardware

Das Skript kann dann die Hardware-Daten sammeln und übertragen mittels:

1
perl scan_hardware

Am Ende des Scans wird eine URL generiert, unter der die Scan-Ergebnisse eingesehen werden können, die Hardware kommentiert und deren Linux-Kompatibilität bewertet werden kann.

Das Skript hat als einzige Abhängigkeit die Bibliothek libwww-perl, die, falls nicht unter Ubuntu bereits installiert, wie folgt nachinstalliert werden kann:

1
sudo apt-get install libwww-perl

Kontinuierliches eintragen

Unter Ubuntu und anderen Debian-basierten Distributionen kann die oben erwähnte Scan-Software auch mittels eines Software-Pakets als Hintergrund-Dienst installiert werden, der automatisch den Linux-Hardware-Guide informiert, wenn neue Hardware-Komponenten an das Linux-System angeschlossen werden.

Um die Software über den Paketmanager installieren zu können, muss das zugehörige Repository dem Ubuntu-System hinzugefügt werden,

Adresszeile zum Hinzufügen des PPAs:

  • ppa:linux-hardware-guide/ppa

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der Wiki/Vorlagen/PPA/ppa.png PPA-Beschreibung des Eigentümers/Teams linux-hardware-guide zu entnehmen.

Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.

Die Installation des Pakets erfolgt daraufhin mittels:

1
sudo apt-get install linux-hardware-guide

Der erste Hardware-Scan wird daraufhin automatisch ausgeführt. Die Scan-Ergebnisse können mittels des Programms “LHG Connector” angeschaut werden, welches in der Dash auffindbar ist. Dort kann dann auch die Linux-Kompatibilität der Komponenten bewertet und kommentiert werden.

Hardware-Profile erstellen

LHG-Hardware-Profile.png
Bearbeitung des Hardware-Profils

Beim Linux-Hardware-Guide sollen Linux-Nutzer Hilfe von anderen Nutzern identischer Hardware finden können. Somit kann unter Umständen eine viel effektivere Konfigurationshilfe erreicht werden. Zu diesem Zweck kann jeder Nutzer ein Hardware-Profil erstellen, in dem er alle Komponenten verwaltet, die er selbst besitzt, zu denen er Hilfe geben möchte oder zu denen er die Diskussionen anderer Nutzer mitverfolgen möchte.

Die eingetragenen Hardware-Komponenten lassen sich daraufhin über den Menü-Eintrag "Mein Hardware-Profil" verwalten. Neue Komponenten lassen sich dem Profil jederzeit über die Übersichtsseite seiner Hardware-Scans oder über die jeweilige Artikel-Seite der Hardware-Komponenten hinzufügen.

Mitgestaltung und Software-Entwicklung

Ohne zu sehr auf die Details der im Hintergrund arbeitenden Server (genutzt wird Ubuntu, Apache, NGINX, MySQL) einzugehen, sei zumindest folgendes über die zum Einsatz kommende Software erzählt:

Als Content Management System (CMS) wird beim Linux-Hardware-Guide auf Wordpress gesetzt, welches das Frontend zum Nutzer bereitstellt. Ein Großteil der Logik für die Visualisierung der gesammelten Daten wird mittels selbst erstellter oder adaptierter Wordpress Plugins erreicht. Die Software des Linux-Hardware-Guide ist auf GitHub unter einer Open-Source-Lizenz veröffentlicht und wird dort kontinuierlich weiterentwickelt. Dort ist jeder eingeladen, bei der Weiterentwicklung des Linux-Hardware-Guide mitzuhelfen. Hierbei gibt es eine Vielzahl an Möglichkeiten:

  • Hardware eintragen: Die einfachste und wahrscheinlich trotzdem wichtigste Möglichkeit beim Linux-Hardware-Guide beizutragen, ist das Hochladen seiner Hardware-Informationen in die Datenbank. Außerdem hilft es anderen Nutzern zur Hardware Kommentare zu hinterlassen, deren Linux-Kompatibilität zu bewerten, anderen Nutzern in den Foren hilfreich zur Seite zu stehen, oder einfach nur Fehler in den Texten zu melden bzw. diese mittels CMS sofort zu korrigieren.

  • Lokalisierung: Der Linux-Hardware-Guide ist in verschiedenste Sprachen übersetzt worden. Nur zum Teil konnte hierbei auf Muttersprachler zurückgegriffen werden, so dass einige Abschnitte eine unvollständige oder sogar fehlerhafte Übersetzung haben. Ein Großteil der Artikelbeschreibungen werden auf Englisch eingereicht und müssen dann von Helfern mittels des CMS in die anderen Sprachen übersetzt werden. Für alle diese Arbeiten wird jede Hilfe von Personen mit den notwendigen Sprachkenntnissen gerne gesehen.

  • Design: Der Linux-Hardware-Guide ist für jede Unterstützung oder jeden Ratschlag zur Verbesserung des Webseiten-Designs dankbar. Wer Interesse daran hat, die Gestaltung der Seiten zu verbessern, ist herzlich eingeladen. Außerdem besteht der Wunsch, für die Version 1.2 des Linux-Hardware-Guide ein "Responsive Design" einzuführen, um auf die separate Web-Seite für Mobilgeräte (siehe http://m.linux-hardware-guide.de) verzichten zu können. Hier wartet viel Arbeit und Unterstützung wird dankend angenommen.

  • Software-Entwicklung: Aufgrund des Einsatzes von PHP und Wordpress ist die Einstiegshürde für die Software-Entwicklung wahrscheinlich niedriger, als bei manchen anderen Linux-Projekten. So existiert für Wordpress bereits eine Fülle an Dokumentation, wie die Funktionsweise einer Seite angepasst oder erweitert werden kann.

Jeder, der beim Linux-Hardware-Guide mithelfen möchte, wird am Anfang wahrscheinlich etwas Hilfe benötigen. Aus diesem Grund wurde eine Mailingliste eingerichtet, um neue Ideen zu diskutieren und Hilfe zu finden. Wer einen GiHub-Account besitzt, kann Ideen für Verbesserungen, Fehlermeldungen etc. auch in unserem Issue Tracker eintragen.

Finanzierung des Projekts

Beim Linux-Hardware-Guide bestand von Anfang an die Absicht, eine sich selbst finanzierende Hardware-Datenbank zu erschaffen. Zu viele Linux Hardware-Datenbanken sind bereits entstanden und wieder verschwunden, da Pflege und Entwicklung eines derartigen Angebots viele Ressourcen benötigt, sowohl personell, als auch finanziell. Selbst diejenigen Datenbanken, die von RedHat, Suse oder Ubuntu initiiert wurden, sind mittlerweile entweder eingestellt worden oder größtenteils eingeschlafen. Durch die Eigenfinanzierung soll gewährleistet werden, dass der Dienst sich langfristig selbst trägt (d.h. Server-Kosten gedeckt werden können) aber auch dringende Dienstleistungen notfalls eingekauft werden können (z.B. Beauftragung von Übersetzungsbüros), falls sich keine freiwilligen Helfer finden. Außerdem mussten wir lernen, das viele Hardware-Hersteller nur geringes Interesse am Linux-Markt haben und daher die Kosten für das Bereitstellen von Test-Hardware vollständig vom Linux-Hardware-Guide getragen werden müssen.

Die Finanzierung des Linux-Hardware-Guide basiert hauptsächlich auf der Zusammenarbeit mit verschiedensten Hardware-Distributoren, wobei Amazon aufgrund seiner internationalen Ausrichtung und der großen Produktpalette der am häufigsten vertretene Anbieter innerhalb der Hardware-Datenbank ist. Es gibt allerdings auch eine Reihe weiterer Hardware-Anbieter. Weitere Einnahmequellen wie Spenden oder Werbebanner spielen bisher eine untergeordnete Rolle.

Bei den Hardwarekäufen, die über die Webseite vermittelt werden, gibt es eine finanzielle Beteiligung für den Linux-Hardware-Guide. Durch diese können die anfallenden Kosten gedeckt werden. Andererseits erhält der Linux-Hardware-Guide dadurch den Zugriff auf die Produkt-Datenbanken der Hardware-Distributoren, welche benötigt werden, um für die jeweiligen Länder und Märkte die käuflich erhältliche Hardware herauszufiltern.

Beginnend mit dem 1. Juli 2016 ermöglicht der Linux-Hardware-Guide, seine Gewinne an Linux- & FOSS-Projekte zu spenden. Dafür werden sämtliche über die Partnerprogramme erzielten Überschüsse abzüglich der Server-Miete ausgeschüttet. Alle Nutzer des Linux-Hardware-Guide bestimmen, welche Projekte hierbei finanziell unterstützt werden sollen. Jeder Nutzer kann seine Stimme einem Projekt geben und wird somit zu einem "Sponsor" dieses Projektes. Abhängig davon, wie aktiv der Sponsor sich am Linux-Hardware-Guide beteiligt, sammelt er automatisch sogenannte Karma-Punkte. Die Summe der im Quartal gesammelten Karma-Punkte legt fest, über welchen Anteil der Spenden-Summe der jeweilige Sponsor bestimmen kann. Dies bedeutet, je aktiver ein Nutzer an der Seite mitarbeitet, desto größer ist letztendlich die Spendensumme an sein bevorzugtes Linux-/FOSS-Projekt am Ende des Quartals. Gleichzeitig wird die Gesamt-Spendensumme durch sämtliche der über den Linux-Hardware-Guide getätigten Käufe bestimmt.

Bisher stehen z.B. die Free Software Foundation, Apache Software Foundation, Linux Mint, etc. als unterstützbare Projekte zur Auswahl. Es können aber jederzeit weitere Spenden-Empfänger vorgeschlagen werden, wenn diese sich für die Förderung oder Weiterentwicklung von Linux einsetzen. Am einfachsten kann man derartige Projekte über die Mailingliste vorschlagen.

Ein großes Dankeschön an LHG für den eingesandten Artikel!