Die Neuerungen von Linux 2.6.36

Seite 5: Treiber

Inhaltsverzeichnis

Das bei 2.6.35 eingeführte Subsystem für Infrarot-Hardware bietet nun Schnittstellen, über die der LIRC-Userspace-Daemon Rohdaten mit Infrarot-Empfängern und -Sendern austauschen kann – etwa damit der Daemon Daten dekodiert, wenn der Kernel-Treiber nicht selbst dazu in der Lage ist (1, 2). Zum noch jungen IR-Subsystem stießen ferner mehrere Treiber für IR-Hardware verschiedener Hersteller. Bei den meisten von ihnen handelt es sich um Portierungen der bislang extern gewarteten LIRC-Treiber; einige noch nicht portierte LIRC-Treiber wurden fürs erste in den Staging-Bereich aufgenommen – Details dazu finden sich bei den "Die kleinen Perlen" im vierten Teil der Artikelserie "Was 2.6.36 bringt".

Der ursprünglich Compcache genannte und später in Ramzswap umbenannte Staging-Treiber zum Anlegen eines komprimierten Swap Device im Arbeitsspeicher wurde abermals umbenannt und heißt nun Zram (1, 2, 3). Details zu der Technik liefert ein Artikel in c't 22/10 (ab Montag, 11. Oktober, am Kiosk). Diese c't enthält auch einen Artikel, der den Erfolg des vor zwei Jahren in den Hauptentwicklungszweig von Linux integrierten Staging-Zweigs beleuchtet. Bei dieser Analyse fand sich nur ein Treiber, der im Staging-Bereich so weit reifte, dass er mittels "git mv" vom Staging-Bereich an eine andere Stelle im Kernel-Quellcode verlagert wurde: Der "Restricted Access Region Register Driver" rar_register, der mit 2.6.36 den Staging-Bereich verlässt. Er war vor einem Jahr unter dem Namen "rar" mit Version 2.6.32 zum Kernel gestoßen und eignet sich für die mit Atom-Prozessor ausgestatteten Mobile Internet Devices (MIDs).

Durch Änderungen am USB-Subsystem unterstützt dieses nun einige der in Addendum 1.1 der EHCI-Spezifikation beschriebenen Erweiterungen von USB 2.0 besser, die verschiedene Verbesserungen im Hinblick auf Power Management bringen (1, 2, 3). Der USB-Code beherrscht nun auch die zur Laufzeit nutzbaren Stromsparfunktion von PCI-USB-Controllern sowie einige herstellerspezifische Wakeup-Flags, die Intel in die USB-Controller einiger seiner I/O-Controller Hubs eingebaut hat. Der xHCI-Treiber für USB-3.0-Hardware soll nun Daten flotter übertragen und bietet Unterstützung für Isochronous Transfers.

Mehr Infos

Was sich an den Treibern für Ihr System geändert hat

Über das Git-Web-Frontend auf Kernel.org lassen sich Informationen zu Änderungen an einzelnen Dateien des Linux-Kernels aufrufen – das können Sie nutzen, um herauszufinden, ob es Neuerungen an den auf Ihrem System eingesetzten Treibern gab. Dazu muss man allerdings wissen, wo sich die Treiberdateien im Quellcodebaum des Linux-Kernels finden. Bei den modularisierten Kerneln der Linux-Distributionen helfen häufig die Ausgaben bei der Suche, welche das Programm modinfo zusammen mit den von lsmod ausgegebenen Modulnamen aufruft:

$ /sbin/modinfo e100 e1000 | grep filename:
filename: /lib/modules/[...]/kernel/drivers/net/e100.ko
filename: /lib/modules/[...]/kernel/drivers/net/e1000/e1000.ko

Liegt ein kompiliertes Modul etwa in [...]/kernel/drivers/net/e100.ko, dann findet sich dessen Quellcode im Linux-Quellcodearchiv normalerweise im Verzeichnis drivers/net/ in Dateien mit ähnlichem Namen – etwa e100.c im Falle des Treibers e100 für 100-MBit-Netzwerkhardware von Intel. Andere Module wie der für Intels PCI-Gigabit-LAN-Chips zuständige Treiber e1000 haben hingegen ein eigenes Verzeichnis unterhalb von drivers/net/.

Kennt man die ungefähre Position des Treiber-Quellcodes, navigiert man im Git-Webinterface der Linux-Quellen über die Tree-Ansicht zu den jeweiligen Quellcode-Dateien und ruft über den Link "History" eine Übersicht über die jüngsten Änderungen an den zugehörigen Dateien oder dem ganzen Verzeichnis auf. Im Verzeichnis für die Netzwerktreiber lassen sich so beispielsweise die Änderungen am Treibercode von e100 (drivers/net/e100.c) und e1000 (drivers/net/e1000/) anzeigen und begutachten.