Google Site SearchFN Site Search FN Blog Login FN Blog Login
Site Navigation:
 
 

How to install DKMS ALSA Packages for Fedora

by Thomas Chung on Mar 15, 2004

Introduction

DKMS stands for Dynamic Kernel Module Support. It is designed to create a framework where kernel dependant module source can reside so that it is very easy to rebuild modules as you upgrade kernels. This will allow Linux vendors to provide driver drops without having to wait for new kernel releases while also taking out the guesswork for customers attempting to recompile modules for new kernels.

DKMS is originally developed by Dell Computer Corporation. It is included along with specially built RPM packages for nVidia and ALSA drivers if you have Dell Precision 360n Workstation.

Downloading pakcages and the patch

At this time, there is no official support for Fedora Core 1 from Dell but there are following dkms RPM packages for RHEL 3.
alsa-lib-0.9.6-1.0dell.i386.rpm
alsa-utils-0.9.6-1.0dell.i386.rpm
dell-alsa-driver-0.9.0rc6-4dkms.noarch.rpm
dkms-1.00.03-1.noarch.rpm
gnome-alsamixer-0.9.6-1dell.i386.rpm

To download these RPM packages:
(You might not see all following options if you've visited before due to cookies on the site.)

1. Go to Dell Support site
2. Click on link for "Home and Home Office"
3. Click on link for "Downloads"
4. Choose "Dell Precision Workstaion 360N" for Product Model then press Go
5. Choose "Audio Driver" for Download Category
6. Choose "Red Hat Enterprise Linux 3.0" for Operating System then press  Go
7. Click on link for "Analog Devices ADI 198x Integrated Audio
8. Click on link for "Analog Devices ADI 198x Integrated Audio, v.0.9.0rc6, A07"
   File Date: 2/12/2004
9. Click on link for "alsa-rpms-4.tar.gz"
10. Click on link for "Download Now Using HTTP"
11. Click on link for "I agree" and save the file locally.

To extract the files:

# tar zxvf alsa-rpms-4.tar.gz
alsa-rpms-4/
alsa-rpms-4/dell-alsa-driver-0.9.0rc6-4dkms.noarch.rpm
alsa-rpms-4/alsa-lib-0.9.6-1.0dell.i386.rpm
alsa-rpms-4/alsa-utils-0.9.6-1.0dell.i386.rpm
alsa-rpms-4/dkms-1.00.03-1.noarch.rpm
alsa-rpms-4/gnome-alsamixer-0.9.6-1dell.i386.rpm

Thanks to Dell Linux Engineer John Hull, here is his patch.
Press Shift Key and click on the link for "patch" above then create a directory called "alsa-patch" and save the patch.

Installing packages and the patch

Before installing the packages and the patch, switch Linux runlevel from 5 to 3 by editing /etc/inittab then reboot the system.

id:3:initdefault:

After reboot, login and install dkms RPM pakcages but let it fail during dkms kernel module build then apply the patch and build dkms kernel module again manually:

# cd alsa-rpms-4
# rpm -Uvh *.rpm 
It's OK if you see error message during dkms kernel module build
# cd ~/alsa-patch
# cp adriver.h.patch /usr/src/alsa-driver-0.9.0rc6/
# cd /usr/src/alsa-driver-0.9.0rc6/
# patch -p0 < adriver.h.patch
# dkms build -m alsa-driver -v 0.9.0rc6
# dkms install -m alsa-driver -v 0.9.0rc6

Re-edit /etc/inittab to switch back to Linux runlevel from 3 to 5 then reboot the system.

id:5:initdefault:

To test the audio:

# cd /usr/share/sounds/
# aplay *.wav
Playing WAVE 'email.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
Playing WAVE 'error.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
Playing WAVE 'generic.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
Playing WAVE 'info.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
Playing WAVE 'shutdown1.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Playing WAVE 'startup3.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Playing WAVE 'warning.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
If you can hear various sample sounds, your ALSA sound driver is configured properly by dkms and your system is ready for any future kernel upgrades.

DKMS in Action

In order to see DKMS in Action, disable rhgb (Red Hat Graphical Boot) by removing rhgb from /etc/grub.conf:
title Fedora Core (2.4.22-1.2115.nptlsmp)
        root (hd0,0)
        kernel /vmlinuz-2.4.22-1.2115.nptlsmp ro root=LABEL=/ hdc=ide-scsi hdd=ide-scsi rhgb
        initrd /initrd-2.4.22-1.2115.nptlsmp.img
title Fedora Core-up (2.4.22-1.2115.nptl)
        root (hd0,0)
        kernel /vmlinuz-2.4.22-1.2115.nptl ro root=LABEL=/ hdc=ide-scsi hdd=ide-scsi rhgb
        initrd /initrd-2.4.22-1.2115.nptl.img

Now you should see following message during the boot time:

Starting dkms_autoinstaller: 
alsa-driver (0.9.0rc6): Already installed on this kernel.  [ OK ]

ALSA Init Script

As an option, you might want to add following init script for taking care of starting and stopping the ALSA sound driver.

# cp /usr/src/alsa-driver-0.9.0rc6/utils/alsasound /etc/init.d
# chkconfig --add alsasound
Now reboot the system to see if the ALSA init script is starting and stoping properly.
UPDATE 2003-03-25
Thanks to Gary Lerhaupt, our article appeared on Dell's "What's New" blog.

UPDATE 2003-03-21
See the presentation slides for DKMS by Dell's Engineering Manager Dale Kaisner during Novell Brainshare 2004 (March 21-26).

1. Go to Novell's Public Session Catalog
2. Search for Keyword "kernel"
3. Click on slide icon next to TUT294
4. Open the slide TUT294.ppt with OpenOffice.org

UPDATE 2003-03-16
Thanks to Gary Lerhaupt, "dkms-enabled" ALSA RPM package with John's patch will be released from Dell very soon. Upon the release, we'll update this article accordingly.

UPDATE 2003-03-15
Thanks to John Hull, the latest DKMS rpm package version 1.05 is located at http://linux.dell.com/dkms/