I created a Hungarian documentation some years ago how to set up sound on Debian Linux. Now I show it to you. Maybe it will be useful for some who reads this tread later. I hope these things are not too old.
I think the same will work in Fedora also because they use the same kernel.
The process seems to be difficult -remember what finaldesign wrote- but it is not too hard. It's just time consuming. If you prefer one click solutions maybe this guide is not for you. And aslo try this only if guide of mastercomputers didn't help. Now just read through. Maybe the last 2 lines enough to bring the solution.
If your /dev folder are full with directories then this guide can help you. This folder active when your kernel was compiled with enabled Filesystems / devfs option.
Open a shell and run lspci command. It will list out all of your devices. Your sound card should be listed there.
When I run "
lspci|grep audio" I see the following:
00:09.0 Multimedia audio controller: Fortemedia, Inc Xwave QS3000A [FM801] (rev b2)FM801 chip is used in the card. So I will hunt a driver for FM801.
The following link is the starting point for the hunting.
http://www.alsa-project.org/alsa-docYour card might be listed in this page:
http://www.alsa-project.org/alsa-doc/index...r-Creative_LabsNow you see which driver is for your card. Probably ES1370.
If your kernel support OSS Sound Modules then its enough to download
kernel-headers for compilation of alsa softwares. You should remember where you install kernel-headers. Later it will be used. Take care to have the same version as your running kernel has. (
uname -a command shows you the version of the kernel)
If your kernel doesnt support OSS Sound Modules then you should recompile your kernel to enable the followings:
-Sound (main menu)
---Soundcard Support [*]
------OSS Sound Modules [*]
------------Verbose initialisation [*]
------------Persistent DMA buffers [*]
Download the latest stable kernel from
ftp://ftp.kerneli.org/pub/linux/kernel Stable kernel's version number can be divided with 2 : v2.2, v2.4, v2.6 so on. You should download linux-*.tar.gz or linux-*.tar.bz2. Bz2 is smaller so you can download faster but extraction time is longer.
After extraction of the file you should read INSTALL file on details how to compile kernel.
run
make menuconfig and select the oss sound modules as presented above.
After selection save the menuconfig compile the kernel and restart computer.
Next is to get the alsa softwares:
http://www.alsa-project.org/download.phpDownload the latest (Now alsa-driver-1.0.13.tar.bz2 is the latest)
alsa-driver: (rc, alfa, beta shows unstable version)
ftp://gd.tuwien.ac.at/opsys/linux/alsa/driverAlso download
alsa-lib :
ftp://gd.tuwien.ac.at/opsys/linux/alsa/libGet alsa
oss-lib too:
ftp://gd.tuwien.ac.at/opsys/linux/alsa/oss-libAnd
alsa-utils:
ftp://gd.tuwien.ac.at/opsys/linux/alsa/utilsUnpack the downloaded files.
Run the followings in each folder:
./configure
make
make install
Instead of ./configure you should run
./configure --help and read rtfm. With
--with-cards=fm801 switch you can decrease the time was used for compilation. Only the mentioned card's driver will be compiled. Remember fm801 is the type of my sound card. You should replace fm801 with your card's type.
You might get error message that modversions.h is not accessibile. In this case you should specify the kernel-headers folder which was downloaded and extracted before:
./configure --with-cards=fm801 --with-kernel=/usr/src/path_to_kernel_source_or_kernel_headers/linux-2.4.21If you get the error message with modversions.h you might recompile your kernel: the
make dep step should be the last. You should read the text provided in the last lines and do the suggested steps. You can also read INSTALL files. These contain info how to set /etc/modules.conf (but it is preferred to edit /etc/modules/sound and run update-modules command)
The followings contains my configuration files on Debian linux with kernel 2.4. snd-fm801 shows the kernel module of my card. You should replace this you your card's module.
/etc/modules.conf: (/etc/modutils/sound)
alias /dev/snd snd-fm801
alias /dev/sound snd-fm801
# ALSA native device support
alias char-major-116 snd
# OSS/Free setup
alias char-major-14 soundcore
# ALSA portion
alias snd-card-0 snd-fm801
# OSS/Free portion
alias sound-slot-0 snd-card-0
#Get correct volume settings:
post-install snd-fm801 /usr/sbin/alsactl restore
#store current volume before unloading
pre-remove snd-fm801 /usr/sbin/alsactl store
# OSS/Free portion - card #1
#and accessing /dev/dsp ought to load the oss driver...
#This one ensure module loading when someone open
#/dev/dsp:
alias /dev/dsp sound-service-0-3
#Stuff that make OSS emulation work.
#OSS request various sound services, this directs it
#to compatibility modules in ALSA.
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
/etc/modules:
snd-fm801
/etc/devfs/devfsd.conf (if you have /dev/sound folder but there is no /etc/devfs folder then install devfsd software!)
# Enable module autoloading. You may comment this out if you don't use
# autoloading
LOOKUP \* IGNORE
LOOKUP .* MODLOAD
# Uncomment the following if you want to set the group to "tty" for the
# pseudo-tty devices. This is necessary so that mesg(1) can later be used to # enable/disable talk requests and wall(1) messages.
REGISTER ^pty/s.* PERMISSIONS -1.tty 0600
REGISTER ^pts/.* PERMISSIONS -1.tty 0600
# Include the compatibility symlinks
OPTIONAL_INCLUDE /etc/devfs/compat_symlinks
# Include the standard permissions settings for devices
INCLUDE /etc/devfs/perms
# Include package-generated files from /etc/devfs/conf.d
OPTIONAL_INCLUDE /etc/devfs/conf.d
#
# Uncomment this if you want permissions to be saved and restored
# Do not do this for pseudo-terminal devices
#REGISTER ^pt[sy] IGNORE
#CREATE ^pt[sy] IGNORE
#CHANGE ^pt[sy] IGNORE
#DELETE ^pt[sy] IGNORE
#REGISTER .* COPY /dev-state/$devname $devpath
#CREATE .* COPY $devpath /dev-state/$devname
#CHANGE .* COPY $devpath /dev-state/$devname
#DELETE .* CFUNCTION GLOBAL unlink /dev-state/$devname
#RESTORE /dev-state
# The following line is needed to save permissions from the perms file to the# dev-state directory when the device is loaded for the first time, and then # use the saved permissions afterwards.
# Don't use it if you don't use the perms file.
#REGISTER .* COPY $devpath /dev-state/$devname
#
# create the old /dev/cdrom symlink
REGISTER ^cdroms/cdrom0$ CFUNCTION GLOBAL symlink $devname cdrom
UNREGISTER ^cdroms/cdrom0$ CFUNCTION GLOBAL unlink cdrom
# Uncomment this to let PAM manage devfs
#REGISTER .* CFUNCTION /lib/security/pam_console_apply_devfsd.so pam_console_apply_single $devpath
# Uncomment this to manage USB mouse
REGISTER ^input/mouse0$ CFUNCTION GLOBAL mksymlink $devname usbmouse
UNREGISTER ^input/mouse0$ CFUNCTION GLOBAL unlink usbmouse
REGISTER ^input/mice$ CFUNCTION GLOBAL mksymlink $devname usbmouse
UNREGISTER ^input/mice$ CFUNCTION GLOBAL unlink usbmouse
# If you have removable media and want to force media revalidation when looking
# up new or old compatibility names, uncomment the following lines
# SCSI NEWCOMPAT /dev/sd/* names
#LOOKUP ^(sd/c[0-9]+b[0-9]+t[0-9]+u[0-9]+)p[0-9]+$ EXECUTE /bin/dd if=$mntpnt/\1 of=/dev/null count=1
# SCSI OLDCOMPAT /dev/sd?? names
#LOOKUP ^(sd[a-z]+)[0-9]+$ EXECUTE /bin/dd if=$mntpnt/\1 of=/dev/null count=1
# IDE NEWCOMPAT /dev/ide/hd/* names
#LOOKUP ^(ide/hd/c[0-9]+b[0-9]+t[0-9]+u[0-9]+)p[0-9]+$ EXECUTE /bin/dd if=$mntpnt/\1 of=/dev/null count=1
# IDE OLDCOMPAT /dev/hd?? names
#LOOKUP ^(hd[a-z])[0-9]+$ EXECUTE /bin/dd if=$mntpnt/\1 of=/dev/null count=1
And at the last step you can turn off mute and turn on volume:
Amixer is in alsa-utils package.
amixer set Master 21 unmute
amixer set PCM 21 unmute
Comment/Reply (w/o sign-up)