Linux 2.4 Kernel Audio Installation Notes
These notes document the practical steps required to establish a working Linux audio environment on 2.4-series kernels. The 2.4 era predates the upstream ALSA merge and the development of the low-latency patch sets that later became standard practice in the Linux audio community. Getting stable, low-latency audio on a 2.4 kernel required manual ALSA compilation, careful IRQ configuration, and, on many systems, patching the kernel itself. These notes were contributed to the LAD community as a reference for members working through the same setup process. For the broader context of what the community was building toward during this period, see the LAD overview.
Context: Audio on the 2.4 Kernel
ALSA was not part of the mainline 2.4 kernel. It existed as a separate project that required patching and compiling against the running kernel source. Most distributions shipped with OSS (Open Sound System) as the default audio layer, which worked for basic playback but was poorly suited to professional or low-latency use. The LAD community's practical workflow during this period involved replacing or supplementing the distribution's audio stack with compiled-from-source ALSA drivers, configuring the kernel scheduler, and managing IRQ affinity to keep audio interrupts away from other hardware.
The PREEMPT and low-latency patches for 2.4 were in active development alongside this work. Getting all of these pieces -- ALSA drivers, kernel scheduler patches, IRQ configuration -- to work together on specific hardware required the kind of shared field notes that the LAD mailing list was well suited to produce. These install notes represent a snapshot of that collective knowledge at a particular point in the 2.4 development cycle.
ALSA Installation on 2.4
The standard installation process for ALSA on 2.4 required three source packages: alsa-driver (kernel modules), alsa-lib (userspace library), and alsa-utils (configuration and diagnostic tools). Building in that order against a patched kernel source was the baseline requirement. On systems with multiple kernel versions, the build target had to be explicitly specified to avoid linking against the wrong kernel headers.
IRQ sharing between audio hardware and other devices was a consistent source of problems on 2.4-era PCI systems. The audio interface needed an exclusive IRQ to maintain stable interrupt timing. BIOS PCI slot assignment was the primary tool for managing this, and the notes below reflect hardware configurations that were confirmed to work cleanly by LAD community members on specific motherboard and card combinations.
Low-Latency Kernel Configuration
The low-latency patch for 2.4 (developed by Ingo Molnar and Andrew Morton, among others) added voluntary preemption points to the kernel to reduce scheduling latency without requiring a full PREEMPT implementation. Applying this patch was a prerequisite for achieving sub-10ms latency on 2.4 systems. The configuration steps involved patching the kernel source, enabling the low-latency option in the kernel configuration menu, and rebuilding both the kernel and the ALSA driver modules to match.
Benchmarking these configurations is covered in the latency section of this site, which includes measurement data from 2.4 kernel variants including PREEMPT and low-latency patches at various buffer sizes. The install notes here are the practical counterpart to that benchmark data.
Related Resources
- LAD community hub — mailing list archive, event notes, and contributor index
- Low-latency audio resources — PREEMPT_RT, scheduling, and buffer tuning reference
- Latency benchmarks — measurement data from 2.4 kernel configurations
- ZKM Meeting 2005 — in-person community gathering notes from the same era