Category Archives: Linux

Getting kernel support

[This is a slight modification of something I posted to the alsa-devel list earlier today.]
One of the biggest surprises that people starting to use Linux seem to run into is that you can’t rely on any particular support level from the community - everything is done on a voluntary basis and the responses will depend [...]

If we build it they will come

It looks like the jack reporting API for ALSA which just got merged into the mainline kernel for inclusion in 2.6.28 already has its first user - code from Matthew Ranostay supporting the jack detection in Sigmatel HDA codecs was just queued for merge in the next merge window. Admittedly, the jack reporting API has [...]

What’s the standard Linux audio API?

Lennart Pottering’s post about the sound APIs available for Linux appears to have caused some consternation from people working with the modern out of tree OSS drivers who feel that the current, out of tree, OSS drivers are being unfairly maligned. This rather misses the point of his post. The fact that there are improved [...]

The Linux kernel needs a case sensitive filesystem

The Linux kernel source relies on a case sensitive filesystem. If you attempt to get the sources via git this will manifest as an error along the lines of:
fatal: Entry ‘include/linux/netfilter/xt_CONNMARK.h
There are several header files like this the names of which differ only in case and just can’t be represented on a filesystem that doesn’t [...]

Release day churn

The 2.6.27 pull request for ALSA was something of a surprise to read - a large proportion of the changes in there are for ASoC. Not what I was expecting given how many ASoC changes there are still to be merged, but it’s nice to see, especially given the general problems with embedded users contributing [...]

ARM Linux git tree

It’s surprisingly poorly advertised but there is an ARM Linux git tree available from http://ftp.arm.linux.org.uk/pub/armlinux/kernel/git-cur/ and ftp://ftp.arm.linux.org.uk/pub/armlinux/kernel/git-cur/ with currently accepted patches queued up in it. Very handy, especially for offline use.

ATI graphics drivers

While the announcement from ATI about their intention to provide better support for Linux is certainly welcome it’s not clear what exactly they intend to do. They don’t appear to have actually said that they will release their drivers. This could actually be a really good thing - for example, I’d expect that documentation and [...]

zlib generating valgrind warnings

Mike assumes that zlib is valgrind clean. In actual fact there are a number of cases where loop unrolling in the zlib library causes the mentioned “Conditional jump or move depends on uninitialised value(s)” warnings. These are safe since the results of the comparison are subsequently ignored but obviously valgrind doesn’t know that. This is [...]

Natsemi oversized packet lockup

If you’re having trouble with a natsemi ethernet controller locking up in Linux after complaining about oversized ethernet frames like this:
eth0: Oversized(?) Ethernet frame spanned multiple buffers, entry 0×00ba8b status 0xe0000bd5.
then this patch (or a kernel version which includes it; 2.6.16 or later should) may be useful. The patch is against 2.6.9+ versions of natsemi [...]

Fix for smart card startup races

The rules mentioned in my last post to avoid race conditions by handling the entire setup of USB smart card readers within udev and /dev:

SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”04e6″, SYSFS{idProduct}==”e003″, GROUP=”scard”, MODE=”0664″
SUBSYSTEM==”usb_device”, SYSFS{bDeviceClass}==”0×0B”, GROUP=”scard”, MODE=”0664″
SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”04e6″, SYSFS{idProduct}==”5115″, GROUP=”scard”, MODE=”0664″
This requires 2.6.14 and an udev that was current for that kernel. With more recent udev versions one [...]