Kernel-Log – Was 2.6.31 bringt (5): Der Rest
Neue Treiber für USB 3.0 und das Netbook Aspire One von Acer. Distributionen sollen in Zukunft den neueren Firewire-Stack nutzen, der nun LAN-Support bietet. CUSE emuliert das Open Sound System mit einem Userspace-Programm.
- Thorsten Leemhuis
Am vergangenen Freitag veröffentlichte Linus Torvalds die achte Vorabversion von Linux 2.6.31. Es soll die letzte sei, wie der Chefentwickler in der Freigabe-Mail betont. Er sei die nächste Woche tauchen und hofft auf derzeit auf eine Veröffentlichung von 2.6.31 zum amerikanischen Labor Day, der dieses Jahr auf den 7. September fällt.
Da bis dahin nur mehr Fehlerkorrekturen in den Hauptentwicklungszweig einfließen dürften soll der fünfte und letzte Teil der Kernel-Log-Mini-Serie "Was 2.6.31 bringt" nun die detaillierte Übersicht über die Neuerungen der kommenden Kernel-Version abschließen. Dabei kommen all die Subsysteme zum Zuge, die in den vorangegangenen Teilen kein Platz gefunden haben – im wesentlichen Treiber und Treiber-nahe Infrastruktur wie die ACPI- und PCI-Subsysteme. Auf der letzten Seite dieses Artikels finden sich zudem noch einige Nachzügler aus den bereits zuvor besprochenen Bereichen.
Kernel-Log – Was 2.6.31 bringt
Weitere Teile aus der Kernel-Log-Mini-Serie "Was 2.6.31 bringt", die wichtigsten Neuerungen der kommenden Kernel-Version zusammenfasst:
1. Netzwerk – Neue Treiber für LAN und WLAN
2. Audio & Video – KMS für Radeon und Treiber für X-Fi
3. Storage & Dateisysteme – Btrfs aufgebohrt, IDE-Subsystem auf dem Abstellgleis
4. Hinter den Kulissen - Tracing, Virtualisierung, Architektur
Der Artikel "Feintuning – Die Neuerungen von Linux 2.6.30" bietet eine Übersicht über die Neuerungen der derzeit aktuellen Kernel-Version der Hauptentwicklungslinie. Weitere Geschehnisse rund um den Linux-Kernel und andere Hardware-nahe Linux-Software finden Sie in den regulären Kernel-Logs Erwähnung.
Schnell übertragen
Unter den Änderungen USB-Subsystem findet sich wie erwartet der maßgeblich von Intel-Programmierern entwickelten Code zur Unterstützung von USB-3.0-Controllern mit ihrem Extensible Host Controller Interface (xHCI) (u. a. 1, 2, 3, 4, 5). Einige Hersteller haben zwar schon Details zu USB-3.0-Hardware angekündigt, erhältlich ist aber bislang keine. Kurzfristig ist die USB-3.0-Unterstützung von Linux daher für den Endanwender nicht weiter wichtig – langfristig sieht es aber vermutlich anders auf, immerhin hatten die beiden vorangegangenen Generation der USB-Schnittstelle durchschlagenden Erfolg.
Einen Überblick über die Änderungen am Firewire-Code geben die zwei Haupt-Git-Pull-Request des Firewire-Maintainers Stefan Richter (1, 2). Dabei hebt er unter anderem die neue Unterstützung für "IPv4 over IEEE 1394" (also Netzwerk via Firewire) im neueren der beiden Firewire-Stacks des Linux-Kernels hervor. Er betont ferner, dass der neuere, "firewire" genannte Stack nun nicht mehr als experimentell gilt und Distributoren diesen in Zukunft bevorzugt eingesetzten sollen: Er liefere bessere Performance, sei kompatibler, biete mehr Features und sei auch sicherer. Der alte, "ieee1394" genannte Stack sei jedoch noch für Audio-Hardware und die vom Treiber firedtv unterstützten FireWire-DVB-Geräte zu bevorzugen.
Zeichengeräte
Bei 2.6.31 wird das auf FUSE (Filesystem in Userspace) aufsetzende CUSE (Character device in Userspace) Bestandteil von Linux. Mit seiner Hilfe kann ein Userspace-Programm virtuelle Geräte emulieren, auf die andere Programme über die normalen, zeichenorientierten Device-Dateien genauso zugreifen können wie auf ein "richtiges", von einem Kernel-Treiber bereitgestelltes character device.
Damit lässt sich etwa ein Userspace-Programm schreiben, das das veraltete OSS (Open Sound System) emuliert; dazu legt es mit Hilfe von CUSE die von OSS-Programmen erwarteten Devices an, über die es dann die Daten annimmt, verarbeitet und mit Hilfe des heute gängigen Alsa ausgibt. Genau solch einen OSS-Proxy hat der bei Novell beschäftige Entwickler von CUSE veröffentlicht und zum Testen eingesetzt. Weitere Hintergründe und andere Einsatzmöglichkeiten von CUSE liefert ein älterer LWN.net-Artikel.
Sonderecke
Der Staging-Bereich mit seinen Treibern, die den Qualitätsansprüchen der Kernel-Hacker nicht genügen, hat mittlerweile einen beachtlichen Umfang angenommen. In diesem Entwicklungszyklus ist er aber etwas kleiner geworden, wie Greg Kroah-Hartman im Git-Pull-Request für Staging-Änderungen hervorhebt ("We are removing more crap than we are adding, looks like progress to me! :)"). Das ist hauptsächlich der Zusammenlegung einiger Treiber für WLAN-Chipsätze von Ralink zu verdanken, die das Kernel-Log bereits thematisierte.
Neben den dort ebenfalls erwähnten WLAN-Treibern rtl8192su und vt6655 ist auch der Netzwerk-Treiber octeon-ethernet für SOCs aus der Octeon-Familie von Cavium neu im Staging-Bereich. Auch der CPC-CAN-USB-Treiber cpc-usb und der rudimentäre Framebuffertreiber udlfb (1, 2) für DisplayLink-Geräte stießen zum nun zu Ende gehenden Entwicklungszyklus zum Kernel.
Entfernt haben die Entwickler serqt_usb, da ein Kernel-Hacker einen alternativen Treiber für dieselbe Hardware von Grund auf neu geschrieben hat – es ist nicht der erste und vermutlich nicht der letzte Staging-Treiber, bei dem sich die Kernel-Entwickler zum Schreiben eines neuen Treibers entschließen, statt einen der "mistigen" Staging-Treiber zu verbessern.
Staccato, kleine Perlen
Staccato
Bei den bisher genannten Neuerungen handelt es sich nur um die bedeutsamsten Änderungen. Einige weitere im Kurzüberblick:
Notebooks:
- Die Kernel-Hacker haben den Treiber acerhdf integriert, mit dem sich beim Netbook Aspire One von Acer die Temperaturen auslesen und Lüfter steuern lassen.
- Der Treiber asus_acpi gilt fortan als "deprecated" – empfohlen wird statt dessen der Einsatz von asus-laptop.
USB:
- Einige Änderungen am USB-Code renovieren dessen Unterstützung für Stromspartechniken.
- Aufgenommen haben die Kernel-Hacker einen generischen USB-Audio-Gadget-Treiber sowie einen USB-Gadget-Treiber für den in neueren SOCs von Samsung integrierten HS/OtG-Block.
- Erstmals zu Linux gehört ein Treiber für den USB-OTG-Part in Intels I/O-Baustein Langwell, der zur ganz auf Linux abgestimmten Moorestown-Plattform gehört; der Treiber für den zugehörigen Transceiver war auch kurz dabei, wurde dann aber vorerst wieder entfernt.
Verschiedenes:
- Die Änderungen im PCI-Subsystem sind weniger tiefgreifend als bei 2.6.30, wie Jesse Barnes in seinem Git-Pull-Request erklärt. Eine der größeren Neuerungen sei die verbesserte Unterstützung für PCI Express Root Port Advanced Error Reporting (AER). Das PCI-Subsystem beherrscht nun Address Translation Service (ATS) 1.0. Im IOMMU-Code, der nun IOMMU Pass Through unterstützt, enthält einen flexibleren Workaround für Grafikkartentreiber, durch den die Konfigurations-Option CONFIG_DMAR_GFX_WA verschwindet.
- Im Power-Management-Bereich nahmen die Kernel-Hacker um Rafael J. Wysocki primär Aufräumarbeiten vor.
- Unter den Änderungen im Cypto-Bereich ist unter anderem eine, durch die der Treiber padlock nun auch auf x86-64-Systemen arbeitet.
- Neu bei Linux 2.6.31 ist der einmal pro Sekunde feuernde Pulsegeber LinuxPPS (Linux Pulse Per Second), auf den Userspace-Anwendungen wie NTPD zurückgreifen können; weitere Details zu den Einsatzzwecken und Hintergründen finden sich im LinuxPPS-Wiki und der Kernel-Dokumentation.
Die kleineren Perlen
Die englischen Überschriften von zahlreichen weiteren nicht ganz so wichtigen, aber keineswegs unbedeutenden Änderungen finden sich in der folgenden Liste. Die Einträge verlinken genau wie viele der Verweise im vorangegangenen Text auf den jeweiligen Commit im Webfrontend des Hauptentwicklungszweigs von Linux. Dort liefern normalerweise der Commit-Kommentar und der Patch selbst zahlreiche weitere Informationen zur jeweiligen Änderungen.
Firewire und USB
Firewire:
- firewire: core: add sysfs attribute for easier udev rules
- firewire: net: add Kconfig item, rename driver
- firewire: sbp2: add support for disks >2 TB (and 16 bytes long CDBs)
- ieee1394: sbp2: add support for disks >2 TB (and 16 bytes long CDBs)
USB:
- musb: add high bandwidth ISO support
- USB: Add SuperSpeed to the list of USB device speeds.
- USB: add the usbfs devices file to debugfs
- USB: Add USB 3.0 roothub support to USB core.
- USB: add usb debugfs directory
- USB: audio: add USB audio class definitions
- USB: CP210x Add new device IDs
- USB: Don't reset USB 3.0 devices on port change detection.
- USB: ftdi_sio: Add support for GN Otometrics Aurical USB Audiometer
- USB: FTDI-SIO new device ids
- USB: gadget: Add i.MX3x support to the fsl_usb2_udc driver
- USB: gadget: audio: provide correct device id
- USB: new flag for resume-from-hibernation
- USB: option: add Novatel Ovation MC760
- USB: option: Add USB ID for Novatel MC727/U727/USB727 refresh
- USB: option: add ZTE device ids and remove ONDA ids
- USB: option.c: add A-Link 3GU device id
- USB: option.c: add Qualcomm/Option iCON 210 modem
- USB: option.c: add Toshiba 3G HSDPA SM-Bus Minicard device id
- USB: option.c to support Qisda H21/H20 usb modem
- USB: pl2303: New vendor and product id for the prolific driver
- USB serial: Add ID for Turtelizer, an FT2232L-based JTAG/RS-232 adapter.
- USB: Serial: Add support for Arkham Technology adapters
- USB: serial: option: Add ZTE AC8710 usb modem device.
Input Devices
- HID: add new multitouch and digitizer contants
- HID: autocentering support for Logitech Force 3D Pro
- HID: autocentering support for Logitech G25 Racing Wheel
- HID: force feedback support for SmartJoy PLUS PS2/USB adapter
- HID: Multitouch support for the N-Trig touchscreen
- HID: Wacom Graphire Bluetooth driver
- Input: add dm355evm_keys driver
- Input: add driver for EETI touchpanels
- Input: add driver for Synaptics I2C touchpad
- Input: add matrix keypad driver for Cirrus EP93xx
- Input: add support for touchscreen on W90P910 ARM platform
- Input: add twl4030-pwrbutton driver
- Input: add wm97xx accelerated driver for Atmel microprocessors
- Input: ALPS - Dell Latitude D630/D800 have DualPoint
- Input: ALPS - handle touchpoints buttons correctly
- Input: appletouch - improve finger detection
- Input: atkbd - add forced release keys quirk for FSC Amilo Pi 3525
- Input: atkbd - add force relese key quirk for Soltech TA12
- Input: i8042 - add Asus G1S to noloop exception list
- Input: i8042 - more reset quirks for MSI Wind-clone netbooks
- Input: iforce - support new revision of ACT LABS Force RS
- Input: introduce lm8323 keypad driver
- Input: psmouse - ESD workaround fix for OLPC XO touchpad
- Input: rotary_encoder - add support for REL_* axes
- Input: wacom - add DTF720a support and fix rotation on Intuos3
- Input: wacom - add support for Intuos4 tablets
- Input: wistron_btns - recognize Maxdata Pro 7000 notebooks
- Input: wistron_btns - support Prestigio Wifi RF kill button
Notebook-Drivers
- acpi4asus: update MAINTAINER and KConfig links
- asus-laptop: remove EXPERIMENTAL dependency
- dell-wmi: add additional keyboard events
- eeepc-laptop: add rfkill support for the 3G modem in Eee PC 901 Go
- eeepc-laptop: cpufv updates
- eeepc-laptop: enable camera by default
- eeepc-laptop: Register as a pci-hotplug device
- eeepc-laptop: rfkill refactoring
- eeepc-laptop: sync eeepc-laptop with asus_acpi
- hp-wmi: Add support for reporting tablet state
- thinkpad-acpi: add quirklist engine
- thinkpad-acpi: disable broken bay and dock subdrivers
- thinkpad-acpi: enhance led support
- thinkpad-acpi: forbid the use of HBRV on Lenovo ThinkPads
- thinkpad-acpi: remove dock and bay subdrivers
- thinkpad-acpi: support the second fan on the X61
Edac, HW-Monitoring, I2C and Watchdog
Edac:
- amd64_edac: add driver header
- amd64_edac: add memory scrubber interface
- amd64_edac: add DRAM error injection logic using sysfs
- edac: add CPC925 Memory Controller driver
HW-Monitoring:
- hwmon: (abituguru3) DMI probing for AB9, AB9 QuadQT and IX38 QuadGT
- hwmon: (f71882fg) Add support for the F71858F
- hwmon: (f71882fg) Add temp#_fault sysfs attr for f8000
- hwmon: (ibmaem) Automatically load on HC10 blade
- hwmon: (max6650) Add support for alarms
- hwmon: (tmp401) Add documentation
- hwmon: (tmp401) Add support for TI's TMP401 sensor chip
- hwmon: (tmp401) Add support for TI's TMP411 sensors chip
- hwmon: (w83627ehf) Add W83627DHG-P support
- lis3: add three new laptop models
I2C:
- i2c: Add a sysfs interface to instantiate devices
- i2c: driver for the Synopsys DesignWare I2C controller
- i2c: Kill client_register and client_unregister methods
- i2c-ocores: Can add I2C devices to the bus
- i2c: ST DDC I2C U300 bus driver v3
- i2c-viapro: Add new PCI device ID for VX855
Watchdog:
- WATCHDOG: add bcm47xx watchdog driver
- WATCHDOG: Add pnx833x_wdt
- WATCHDOG: Freescale STMP: watchdog driver
- WATCHDOG: hpwdt: Add NMI priority option
- WATCHDOG: hpwdt: Add NMI sourcing
- WATCHDOG: twl4030 watchdog driver
- WATCHDOG: U300 COH 901 327 watchdog driver
- WATCHDOG: w83627hf_wdt.c: add support for the W83627EHF support
Staging Area
- Staging: add mailing list address for staging tree
- Staging: add pata_rdc driver
- Staging: Add serqt_usb2, a rewrite of serqt_usb for the usb-serial layer
- Staging: rt2870: Add USB ID for Linksys, Planex Communications, Belkin
- Staging: comedi: add vmk80xx USB driver
- Staging: Comedi: vmk80xx: Add k8061 support
- Staging: cpc-usb: add driver to the build
- Staging: cpc-usb: add TODO file
- Staging: pata_rdc: add driver to the build system
- staging: remove aten2011 driver
- Staging: rt2870: Add USB ID for Sitecom WL-608
- Staging: serqt_usb2 add the driver to the build
- Staging: wlan-ng: Move firmware loading into driver
Various Drivers
- Add MAX17040 Fuel Gauge driver
- gpio: driver for PrimeCell PL061 GPIO controller
- leds: Add options to have GPIO LEDs start on or keep their state
- leds: alix-leds2 fixed for Award BIOS
- leds: LED driver for National Semiconductor LP3944 Funlight Chip
- LP3971 PMIC regulator driver (updated and combined version)
- Maxim 1586 regulator driver
- mfd: add PCAP driver
- mfd: add U300 AB3100 core support
- msm_serial: serial driver for MSM7K onboard serial peripheral.
- regulator: add userspace-consumer driver
- rtc: add stand-alone driver for RX8025 chip
- tty: Bring the usb tty port structure into more use
- tty: rewrite the ldisc locking
Security and Crypto
- crypto: aes-ni - Add support for more modes
- crypto: padlock - Enable on x86_64
- crypto: talitos - Add ablkcipher algorithms
- IMA: Minimal IMA policy and boot param for TCB IMA policy
- hwrng: via_rng - Support VIA Nano hardware RNG
- hwrng: via_rng - Support VIA Nano hardware RNG on X86_64 builds
- hwrng: via_rng - The VIA Hardware RNG driver is for the CPU, not Chipset
- smack: implement logging V3
- Security/SELinux: seperate lsm specific mmap_min_addr
ACPI, PCI and PM
ACPI:
- ACPI: delete acpi.power_nocheck from kernel-parameters.txt
- ACPI: DMI to disable Vista compatibility on some Sony laptops
- ACPI processor: force throttling state when BIOS returns incorrect value
- ACPI: video: DMI workaround broken Acer 7720 BIOS enabling display brightness
- PNPACPI: parse Extended Address Space Descriptors
PCI:
- dma-debug: add dma_debug_driver kernel command line
- dma-debug: add documentation for the driver filter
- intel-iommu: Make iommu=pt work on i386 too
- intel-iommu: Restore DMAR_BROKEN_GFX_WA option for broken graphics drivers
- irqs: add IRQF_SAMPLE_RANDOM to the feature-removal-schedule.txt (deprecated) list
- PCI: add power-state name strings
- PCI: Add support for turning PCIe ECRC on or off
- PCI: disable ASPM on VIA root-port-under-bridge configurations
- PCI: expose SMBus on Asus notebook A6L
- PCI: handle Virtual Function ATS enabling
- PCI hotplug: create symlink to hotplug driver module
- PCI: More PATA quirks for not entering D3
- PCI: PCIE AER: Document for PCIE AER software error injection
- PCI quirk: HP hides SMBus controller in Compaq nx9500 laptops
- PCI quirk: unhide 'Overflow' device on i828{6,7}5P/PE chipsets
- PCI: Remove untested Electromechanical Interlock (EMI) support in pciehp.
- PCI: use ACPI _CRS data by default
- VT-d: add device IOTLB invalidation support
- VT-d: support the device IOTLB
Powermanagement:
- CPUFREQ: Enable acpi-cpufreq driver for VIA/Centaur CPUs
- CPUFREQ: Mark e_powersaver driver as EXPERIMENTAL and DANGEROUS
- CPUFREQ: ondemand: Uncouple minimal sampling rate from HZ in NO_HZ case
- CPUFREQ: Only set sampling_rate_max deprecated, sampling_rate_min is useful
- CPUFREQ: Powernow-k8: support family 0xf with 2 low p-states
- mm, PM/Freezer: Disable OOM killer when tasks are frozen
- NOHZ: Properly feed cpufreq ondemand governor
- PM core: rename suspend and resume functions
- PM/Hibernate: Move memory shrinking to snapshot.c (rev. 2)
- PM: Separate suspend to RAM functionality from core
- PM/Suspend: Do not shrink memory before suspend
Various others infrastructure changes
- Add '-fno-delete-null-pointer-checks' to gcc CFLAGS
- Alan doesn't want to maintain tty code any more
- console: make blank timeout value a boot option
- cpusets: document adding/removing cpus to cpuset elaborately
- docs: Encourage better changelogs in the development process document
- Documentation: Add "how to write a good patch summary" to SubmittingPatches
- Documentation/Changes: perl is needed to build the kernel
- Document Reported-by in SubmittingPatches
- Document the debugfs API
- driver core: fix documentation of request_firmware_nowait
- driver core: set default SYSFS_DEPRECATED=n
- driver core: synchronize device shutdown
- Driver Core: Warn driver authors about adding device attributes
- drivers: add support for the TI VLYNQ bus
- edac: add DDR3 memory type for MPC85xx EDAC
- firmware: speed up request_firmware(), v3
- futex: add requeue-pi documentation
- kbuild: add generic --set-str option to scripts/config
- kbuild: finally remove the obsolete variable $TOPDIR
- kconfig: handle comment entries within choice/endchoice
- MAINTAINERS: mention scripts/get_maintainer.pl in the preface
- mmc: add the new linux-mmc mailing list to MAINTAINERS
- modules: sysctl to block module loading
- printk: add KERN_DEFAULT loglevel to print_modules()
- printk: Add KERN_DEFAULT printk log-level
- RCU: make treercu be default
- rcu: Mark Hierarchical RCU no longer experimental
- Remove multiple KERN_ prefixes from printk formats
- sched: rt: document the risk of small values in the bandwidth settings
- sched: Document memory barriers implied by sleep/wake-up primitives
- signals: implement sys_rt_tgsigqueueinfo
- TTY: Maintainer change
Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in vorangegangen Ausgaben des Kernel-Logs auf heise open. (thl/c't)
Nachzügler
Nachzügler
Die vorangegangen vier Teile der Kernel-Log-Serie "Was 2.6.31 bringt" haben bereits einen detaillierten Überblick über die Änderungen in vielen Bereichen des Linux-Kernels gegeben. Alle größeren Neuerungen haben wir dort bereits erwähnt, da die wie üblich in der ersten Phase des Entwicklungszyklus in den Hauptentwicklungszweig einzogen. Einige kleinere, zumeist nicht ganz so wichtige Änderungen der Kategorie "Die kleineren Perlen" schlichen sich aber noch später ein – teilweise, nachdem wir über die entsprechenden Bereiche berichtet hatten. Der Vollständigkeit halber finden Sie diese in der folgenden Liste:
Audio
Graphics
- drm/i915: Add eDP support on IGDNG mobile chip
- drm/i915: Add support for dual-channel LVDS on 8xx.
- drm/i915: Allow frame buffers up to 4096x4096 on 915/945 class hardware
- drm/i915: enable DisplayPort support on IGDNG
- drm/i915: hdmi detection according by reading edid
- drm/i915: ignore lvds on AOpen Mini PC MP-915
- drm/i915: Set preferred mode for integrated TV according to TV format
- drm/radeon/kms: Add specific rs690 authorized register table
File Systems
Network
LAN:
- Add IDs for 3C905B-TX Fast Etherlink XL PCI
- Add mac driver for w90p910
- mlx4_core: Add new ConnectX EN PCI ID 0x6764
- net: Micrel KS8851 SPI network driver
- New device ID for sc92031 [1088:2031]
- pegasus: Add new device ID.
- USB host CDC Phonet network interface driver
WLAN:
- b43: Add support for 4318E
- iwlwifi: only show active power level via sysfs
- mac80211: disable mesh
- ssb: Add support for 4318E
- zd1211rw: adding SONY IFU-WLM2 (054c:0257) as a zd1211b device
V4L/DVB
* V4L/DVB (12340): mtv9v011: Add a missing chip version to the driver (thl)