Die Neuerungen von Linux 2.6.38

Seite 7: Treiber

Inhaltsverzeichnis

Der Audio-Code des Kernels kann ab 2.6.38 ohne periodischen Interrupt arbeiten, sofern auch der eingesetzte Alsa-Sound-Treiber das beherrscht – für erste ist das nur der Treiber "hda_intel", der trotz seines Namens auch HDA-Hardware von AMD und Nvidia anspricht. Zusammen mit aktuellen, auf "timer-based scheduling" setzenden Versionen von Pulseaudio reduziert das die Zahl der vom System ausgelösten Interrupts, wodurch die CPU im Idealfall länger in stromsparenden Schlafzuständen verweilt. Pulseaudio-Entwickler Lennart Poettering wird im Commit-Kommentar mit den Worten zitiert, der Patch sei sehr interessant und wünschenswert; er habe lange auf so etwas gewartet.

Der Treiber Synaptic erkennt auf neueren Synaptic-Touchpads nun mehrere Finger und beherrscht "Semi Multitouch" (semi-mt). Der Code für Human Input Devices (HID) enthält ab 2.6.38 einen generischen, aber noch unfertigen Treiber für Multitouch Panels verschiedener Hersteller (u. a. 1, 2, 3, 4). Der schon länger Autosuspend unterstützende USB-Code nutzt nun auch die noch junge Infrastruktur zur Nutzung und Einstellung der zur Laufzeit verwendbaren Schlafmodi. Dadurch taucht für die Geräte im Sysfs die Datei power/autosuspend_delay_ms auf; die bisher zur Konfiguration genutzte Datei power/autosuspend gilt als deprecated und dürfte langfristig verschwinden. Details liefern der Kommentar zum Commit und die dort enthaltenen Änderungen an der Dokumentation.

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 – darüber können Sie herausfinden, 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.