an up to date 2.4 kernel with low latency patches applied, current ALSA sound drivers and a collection of rpms of useful music and sound applications (if you are a Debian user you should be looking at the Demudi [11] project instead). 2 Dependency management A very real problem in rpm based distributions is dependency tracking. Each binary package declares what it needs, but usually not the name of the package that provides for that dependency. While it is relatively easy to find and download rpms, it is not easy to make sure you have all the required packages installed, and it is sometimes difficult to even know which packages are needed to install a new one. One of the main goals of the Planet CCRMA project is to make it as easy to install as possible, so something had to be done with regards to dependency management. RedHat now provides a service for remote updates to packages and dependency tracking called up2date, but while the client is open source, the server itself is closed, so it is not useful to us because we need to set up a server (there is currently at least one open source implementation of the up2date server [4], I'll add support for it eventually). I am currently using a port for rpm [6] of the very useful apt-get software package that Debian [5] uses to manage its own.deb packages (Debian ".deb" packages have roughly the same features and functionality as RedHat "rpm" packages). Apt-get for rpm allows you to create a package repository and connect to it by ftp or http from client machines (or even create a cdrom with the software). The Planet CCRMA repository includes the complete RedHat 7.2 distribution, all RedHat package updates and the Planet CCRMA package collection itself. Installing packages is as simple as typing "aptget install package _name" in the command line. If the package depends on other, not installed packages, apt-get will ask the user for permission and download and install them if the response is positive. 3 What is included? 3.1 An audio friendly kernel able is for a version of 2.4.9). The Planet CCRMA kernel rpms include a newer kernel (2.4.17-pre9 at the time of this writing) that incorporates the latest low latency patches [7] and several other upgrades. While this currently provides the best performance in terms of scheduling latency, in the future the low latency support will most probably migrate to the preemptible kernel patch [8] instead3, as well as include a new scheduler [9] that shows a lot of promise, specially for avoiding task bounce between processors in multiprocessor machines. The low latency patch currently provides for real-world latencies of a few milliseconds in a reasonably tuned linux system, under full load. It is important to stress that this performance is obtained in a loaded system, with screen updates and disk activity going on. A kernel with proper support for low latency schedulling is obviously very important for real-time sound and music applications that use very small audio buffers. 3.2 The sound driver A bit of background on sound drivers and linux. The OSS Free sound drivers [2] are currently part of the Linux kernel and are released under the GPL license (as is the rest of the kernel); most linux distributions use OSS to provide sound support. Another alternative that shares the same api is the binary-only commercial OSS driver distributed by 4Front Technologies [3] and maintained by Hannu Savolainen, the original developer of what eventually became OSS Free. The newer ALSA [1] sound driver is also licensed under the GPL and has a much richer API for sound and MIDI development, specially when dealing with multichannel sound cards. A layered approach that uses a library as an intermediary to system calls adds versatility. The ALSA drivers also include an OSS API emulation layer that can be used to run most legacy OSS applications. ALSA has recently been included in the 2.5 development kernel. The 'sound driver of choice' for linux here at Planet CCRMA is currently ALSA 0.9, which is by now quite stable. This is what we are currently running at CCRMA (a CVS snapshot of the 0.9 tree) and what the sound driver rpms of RedHat 7.2 comes with a heavily patched 2.4 3The preemptible kernel patch has been included in kernel (as of this writing the latest update avail- linux 2.5. 139
Top of page Top of page