Kernel-Log – Was 3.8 bringt (3): Treiber
Der Linux-Kernel bringt jetzt alles Nötige mit, um die 3D-Beschleunigung sämtlicher GeForce-Grafikchips zu verwenden. Neu dabei sind auch Treiber für einen Wireless-Gigabit-Chip und einen PCIe-WLAN-Chip von Realtek.
- Thorsten Leemhuis
In der Freigabe-Mail von des sechsten Release Candidate deutete Linus Torvalds Anfang Februar bereits an, er arbeite darauf hin, dass der siebte RC möglichst die letzte Vorabversion ist. Den RC7 hat Torvalds jetzt freigegeben, dabei aber keine Andeutungen gemacht, ob es vor der Fertigstellung von Linux 3.8 noch eine achte Vorabversion geben wird.
Sofern keine schwerwiegenden Fehler mehr auftauchen, dürfte der Linux-Kernel 3.8 aber auf jeden Fall noch im Februar erscheinen. Die folgende Beschreibung zu den Neuerungen an Treibern soll daher nun die Kernel-Log-Mini-Serie "Was 3.8 bringt" abschließen. Die ersten beiden Teile der Serie hatten sich bereits mit den den Änderungen in den Bereichen Dateisysteme und Storage sowie Plattform- und Infrastuktur-Code beschäftigt.
Grafik
Der Kernel-Treiber Nouveau wird bei Linux 3.8 alles mitbringen, damit der ebenfalls Nouveau genannte OpenGL-Treiber in aktuellen Versionen von Mesa 3D ohne weitere Konfiguration die 3D-Beschleunigung sämtlicher bislang vertriebener Grafikchips der GeForce-Serie nutzen kann. So weit haben es die Nouveau-Entwickler, die die zur Treiberprogrammierung nötigen Informationen per Reverse Engineering gewinnen, bisher noch nie geschafft; bisher hat die standardmäßige 3D-Unterstützung immer bei einigen der neueren Fermi-GPUs und den seit März 2012 verkauften Grafikchips der Kepler-Generation gefehlt (1, 2, 3). Für viele PCs wird Nvidias proprietärer Grafiktreiber aber auch weiter die bessere Wahl bleiben, da Nouveau bei vielen der neueren GeForce-Chips die schnelleren Betriebsmodi nicht aktivieren kann und daher nur dürftige 3D-Performance liefert. Es hapert auch noch an anderen Stellen; etwa bei der Video-Beschleunigung oder der Unterstützung für die Lüfterregelung.
Linux bringt mit Version 3.8 erstmals einen einfachen Kernel-Grafiktreiber für die Grafikkerne mit, die in Nvidias SoCs (System-on-Chip) der Tegra-Generation 2 und 3 stecken (u. a. 1, 2, 3). Der Treiber stammt nicht von Nvidia, sondern wurde maßgeblich von einem Entwickler der deutschen Firma Avionic Design entwickelt. Die Firma arbeitet im Embedded-Bereich eng mit Nvidia zusammen und hat den Treiber unabhängig, aber in Abstimmung mit Nvidia programmiert. Nvidia hat sich allerdings überraschend in die Entwicklung eingeschaltet und vor einigen Wochen Erweiterungen veröffentlicht, durch die der Treiber die Beschleunigungsfunktionen dieser Grafikkerne verfügbar macht; diese Verbesserungen sind bei 3.8 noch außen vor geblieben. Um die Beschleunigungsfunktionen nutzen zu können, bedarf es noch Userland-Treiber; derzeit deutet nichts darauf hin, dass Nvidia solche unter einer Open-Source-Lizenz freigeben will. Einige Hintergründe zu den Linux-Treibern für Nvidias Tegra hat Nouveau-Entwickler Lucas Stach in einem Vortrag auf der FOSDEM 2013 erläutert, von dem es eine Videoaufzeichnung bei YouTube gibt.
Mit dem Radeon-Treiber lassen sich nun weitere, bisher links liegen gelassene DMA-Engines der Grafikkerne vom Userspace aus verwenden (1, 2, 3, 4, 5). Der Grafiktreiber i915 unterstützt nun standardmäßig die Grafikkerne von Haswell-Prozessoren, die Intel in einigen Monaten als Core i-4000 einführen will. Die Entwickler haben zudem einen Workaround für einen Fehler in den Intel-Chipsätzen 830 und 845 eingebaut, durch den die Grafiktreiber dort nun stabil laufen sollen.
Netzwerk
Der vor allem mit KVM und Xen eingesetzte Netzwerktreiber virtio_net, der Paravirtualisierungs-Techniken nutzt, soll bessere Performance liefern, da er nun mehrere Queues pro Netzwerkdevice verwenden kann. Das gelingt jetzt auch mit dem Tun/Tap-Treiber; er wird ebenfalls bei der Systemvirtualisierung genutzt, um Netzwerk-Hardware zu emulieren.
Mit der im Rahmen von open-mesh.org entwickelten Mesh-Implementierung Batman-Adv (Better Approach To Mobile Ad-Hoc Networking Advanced) zum spontanen Aufbau von WLAN-Netzwerken lässt sich nun eine Distributed ARP Table einrichten; durch solch eine Tabelle sollen Nicht-Mesh-Clients im Verbund zuverlässiger und schneller Antworten auf ihre ARP-Anfragen erhalten.
Neu dabei ist der Treiber rtl8723ae für den PCIe-WLAN-Chip Realtek RTL8723AE (u. a. 1, 2). Ebenfalls neu ist der Treiber wil6210 für einem WLAN-Chip von Wilocity, der bei 60 GHz funkt und sich dabei an IEEE 802.11ad hält, das von der Wireless Gigabit Alliance (WiGig) vorangetrieben wurde.
Zum Kernel stieĂź ferner der vor ĂĽber fĂĽnf Jahren begonnene Treiber ar5523 fĂĽr den gleichnamigen USB-Chipsatz von Atheros. Zahlreiche andere Treiber erhielten Erweiterungen, um weitere Chips und WLAN-Adapter zu unterstĂĽtzen; der WLAN-Treiber brcmsmac etwas unterstĂĽtzt nun den Broadcom-Chip BCM43224 und der RaLink-Treiber rt2800usb den USB-WLAN-Adapter Sweex LW323.
Ebenfalls neu ist der Treiber cdc-mbim, der Breitband-Modems unterstützt, die das vom USB Implementers Forum spezifizierte Mobile Interface Broadband Model (MBIM) 1.0 implementieren (1, 2). MBIM ist ein USB-Protokoll zur Anbindung von Modems für Notebooks, Tablets und Desktop-PCs, die per GSM und CDMA-basierten 3G - und 4G-Funktechniken (einschließlich LTE) eine Internet-Anbindung ermöglichen. Details zum Protokoll und seinen Vorteilen gegenüber bisher genutzten Techniken erläutert Aleksander Morgado in einem Blog-Eintrag.
Verschiedenes
Die Audio-Treiber des Kernels unterstĂĽtzen jetzt die Soundkarte Philips PSC724 Ultimate Edge. Der Kernel spricht jetzt auch VIAs HD-Audio-Codec VT1705CF an. Einige weitere Ă„nderungen an den Audio-Treibern listet der Merge mit den wichtigsten Updates fĂĽr das Sound-Subsystem von Linux 3.8.
Der Kernel bringt jetzt einen Treiber fĂĽr Human Interface Devices (HIDs) mit, die per I2C angebunden sind (u. a. 1, 2); das dabei genutzte Protokoll hat Microsoft entworfen und bei Windows 8 implementiert. Der HID-Multitouch-Treiber erhielt Erweiterungen, durch die er einige Eigenschaften zur besseren Finger- und Bewegungserkennung unterstĂĽtzt, die Windows 8 beherrscht.
Die im Media-Subsystem beheimateten Treiber für Video4Linux 2 (V4L2) können nun den bei Linux 3.3 integrierten "DMA Buffer Sharing Mechanism" (dma_buf) nutzen, um einen Speicherbereich gemeinsam mit Grafikkarten zu nutzen – dadurch brauchen die von der Video-Hardware angelieferten Daten nicht mehr im Speicher dupliziert zu werden, damit der Grafikchip sie ausgeben kann.
Die Kernel-Entwickler haben den für das "USB Attached SCSI protocol" zuständigen Treiber uas als kaputt markiert, weil er Probleme auslöst und noch nicht ausgereift ist.
Alan Cox hat sich aus familiären Gründen von der Kernel-Entwicklung zurückgezogen und in dem Zug seinem Posten als Betreuer des Subsystems für Seriell-Treiber aufgegeben. Cox ist ein Linux-Urgestein, der unter anderem den Linux-Kernel 2.2 betreut hat und damals als wichtigster Kernel-Entwickler nach Linus Torvalds galt. Diese überragende Bedeutung hatte Cox in den letzten Jahren nicht mehr – er hat aber immer noch viel zur Linux-Entwicklung beigetragen.