In association with heise online

31 August 2009, 08:02

Kernel Log: Coming in 2.6.31 - Part 5: CUSE, USB 3.0, FireWire networking and the rest

  • Twitter
  • Facebook
  • submit to slashdot
  • StumbleUpon
  • submit to reddit

Kernel Log Penguin

by Thorsten Leemhuis

Linux 2.6.31 will support USB 3.0, although the corresponding hardware is not yet available. Distributions are to use the new FireWire stack that now offers LAN support. CUSE emulates the Open Sound System via a userspace program. Another new addition is a driver for Acer's Aspire One netbook.

Last Friday, Linus Torvalds released the eigth pre-release version of Linux 2.6.31. As the lead developer stressed in the release announcement, it will be the last pre-release version. He is on holiday diving for the next week and hopes to present the 2.6.31 release on the Labor Day US Holiday, which falls on September 7th this year.

Because, until then, only bug fixes will be fed into the main development branch, we are presenting the fifth and final part of the Kernel Log mini series now, concluding the detailed overview of the new features in the forthcoming kernel version. This edition will discuss all the subsystems that were left unmentioned in the previous parts – mainly the drivers and driver-related infrastructures like the ACPI and PCI subsystems. In the "Latecomers" section of this article we also mention a few stragglers from the areas already covered in previous editions.

For other articles on 2.6.31 and links to the other four parts of the "Coming in 2.6.31" series, see The H's Kernel Log - 2.6.31 Tracking page.

Fast transmissions

As expected, changes to the USB subsystem include the code to support USB 3.0 controllers with their Extensible Host Controller Interface (xHCI) (for example 1, 2, 3, 4, 5). Although various vendors have already released details about USB 3.0 hardware, so far, no actual products have become available. The USB 3.0 support in Linux is, therefore, not particularly relevant for now – but this will probably change in the long run; after all, the previous two USB interface generations have been resoundingly successful.

An overview of the changes to the FireWire code is available in the two main git-pull requests submitted by FireWire maintainer Stefan Richter (1, 2). Among other things, the maintainer highlights the added support for "IPv4 over IEEE 1394" (networks via FireWire) in the more recent of the Linux kernel's two FireWire stacks. He also points out that the more recent "firewire" stack is no longer classified as experimental, and that the distributions should, therefore, give it preference in the future. According to the maintainer, the new stack offers better performance, better compatibility, more features and improved security. However, he also points out that the old "ieee1394" stack is still the best choice for audio hardware and for the FireWire DVB devices supported by the firedtv driver.

Drawing devices

With 2.6.31, the FUSE (Filesystem in Userspace)-based CUSE (Character device in Userspace) feature will be integrated into Linux. It allows userspace programs to emulate virtual devices that are accessible to other programs via the usual character-oriented device files in the same way as "proper" character devices implemented via a kernel driver.

This enables programmers to develop, for example, a userspace program that emulates the obsolete OSS (Open Sound System); it implements the devices expected by OSS programs via CUSE and then uses these devices to accept the data, process it and output it using the current ALSA sound system. The developer of CUSE, a Novell employee, has released such an OSS proxy for testing. Find further background information about CUSE and its potential uses in an article released on some time ago.

Specials corner

The staging area with its drivers that don't live up to the kernel hackers' quality standards has reached quite a considerable size. However, in the current development cycle it has actually shrunk a bit, as Greg Kroah-Hartman pointed out in his git-pull request for the changes to the staging area ("We are removing more crap than we are adding, looks like progress to me! :)"). This is mainly due to the reorganisation of several drivers for Ralink Wi-Fi chip-sets, as already discussed in the Kernel Log.

In addition to the rtl8192su and vt6655 Wi-Fi drivers mentioned there, the staging area now contains the new octeon-ethernet network driver for SoCs (Systems on a Chip) from Cavium's Octeon family. Further kernel additions at the tail end of the current development cycle are the cpc-usb CPC-CAN-USB driver and the rudimentary udlfb framebuffer driver (1, 2) for DisplayLink devices.

The developers removed serqt_usb because a kernel hacker has developed a completely new alternative driver for the same hardware – it is not the first and probably won't be the last time the kernel developers have decided to replace a staging driver with a completely new driver instead of trying to improve a "dodgy" one.

In brief

The changes described above are only the most significant of those recently made by the kernel hackers. Here is a short overview of further changes:


  • The kernel hackers have integrated the acerhdf driver, which provides temperature read-outs and fan control options for Acer's Aspire One netbook.


  • Another new Linux addition is a driver for the USB-OTG part in Intel's Langwell I/O component. This component is part of the Moorestown platform, which has been fully optimised for Linux use; while the driver for the corresponding transceiver was added briefly, it was later removed for the time being.


  • As Jesse Barnes writes in his git-pull requestChanges to the PCI subsystem have been less substantial than in Linux 2.6.30. One of the reported major additions is the improved support of PCI Express Root Port Advanced Error Reporting (AER). The PCI subsystem is now compatible with Address Translation Service (ATS) 1.0. The IOMMU code, which now supports IOMMU pass through, contains a more flexible workaround for graphics card drivers which gets rid of the CONFIG_DMAR_GFX_WA configuration option.
  • The kernel hackers working with Rafael J. Wysocki in the power management area primarily did some clearing up.
  • A new addition to Linux 2.6.31 is the LinuxPPS (Linux Pulse Per Second) device, which provides one signal per second and is accessible to userspace applications like NTPD; further details about its potential uses and additional background information can be found in the LinuxPPS wiki and in the kernel documentation.

Minor gems

Many additional minor, but by no means insignificant, changes can be found in the list below. Like many of the references in the text above, the links lead to the relevant commits in the web front end of the main Linux development branch, where the commit comments and the patches themselves provide extensive further information on the respective changes.

FireWire and USB



Input Devices


Edac, HW-Monitoring, I2C and Watchdog





Staging Area

Various Drivers

Security and Crypto

ACPI, PCI and Power Management



Power Management:

Various others infrastructure changes


The previous four parts of the Kernel Log mini series have already given a detailed overview of the many changes in of the Linux kernel. All of the major enhancements have already been mentioned there, as the usual first phase of the development cycle moved into the main development branch. Some small, usually not quite as important changes have slipped into the "minor gems" section after we had reported on the relevant areas. For completeness, we have included these changes in the following list.



File Systems





For other articles on 2.6.31 and links to the rest of the "Coming in 2.6.31" series, see The H's Kernel Log - 2.6.31 Tracking page. Older Kernel Logs can be found in the archives or by using the search function at The H Open Source.



Print Version | Send by email | Permalink:

  • July's Community Calendar

The H Open

The H Security

The H Developer

The H Internet Toolkit