DebianThis forum is for the discussion of Debian Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Well. After having done quite a bit of poking about to come to grips with the problem, I've found out what I believe to be the relevant points necessary for me to get sound going on my system. Relevant system info is provided below at one point or another. I hope.
I have installed sndconfig (apt-get, as always), and when I it, I get the following (probably familiar) message:
Quote:
You don't seem to be running a kernel with modular sound enabled. (soundcore.o was not found in the module search path). To use sndconfig, you must be running a kernel with modular sound, such as the kernel images shipped with Debian Linux or a 2.2 or greater kernel.
I did some reading but wasn't too sure what to make of that. There are plenty of sound modules running (see below). I may or may not have to come back to that later. I don't know how essential sndconfig is.
It would help to know that I have onboard sound and a sound card. Both seem to want to be supported at present, going by the loaded modules. Onboard sound is a Realtek ALC650 chip with AC '97 sound. The PCI soundcard is a Creative Labs Audigy LS. The Debian Audio/Video wiki didn't help me,but a Google search revealed this very recent thread: http://www.linuxcompatible.org/thread28166-1.html
The relevant info from opensource.creative.com is obviously: " The Audigy LS -- The retail Audigy LS card is not based on the same chip as other Audigy boards, so the EMU10K1 driver available at SourceForge won't work with it. Fortunately, there are drivers available from two sources -- ALSA (1.0.6 release) and 4FrontTechnologies."
Now as I understand it, I will need to install ALSA 1.0.6. I prefer to use the APT system, so let's see what APT says.
No huge surprises there. So I would need to download it from Sarge, presumably. (Still working out the details on that one from the APT How-To.
The thing is, I am wondering about a few steps. The ALSA documentation is VERY involved, can be heavy and doesn't assume anything about Debian and its wonderful packaging system. I surely should go for the new support offered to my PCI card, get rid of the traces of the older OSS, get rid of the useless emu10k1 drivers the kernel auto-detected (see below), and make sure things are going right with ALSA. Probably there is a meta package for an important and extensive program such as ALSA.
I realize I have yet more reading to do, but any general guidelines or comments would be very much valued here.
Here is some more necessary system info.
Running off of testing/Sarge, using the net for updates.
Originally posted by michapma
Well. After having done quite a bit of poking about to come to grips with the problem, I've found out what I believe to be the relevant points necessary for me to get sound going on my system. Relevant system info is provided below at one point or another. I hope.
I have installed sndconfig (apt-get, as always), and when I it, I get the following (probably familiar) message:
I did some reading but wasn't too sure what to make of that. There are plenty of sound modules running (see below). I may or may not have to come back to that later. I don't know how essential sndconfig is.
That only works with the OSS I believe and the 2.6 kernel you have installed will be using ALSA.
Quote:
It would help to know that I have onboard sound and a sound card. Both seem to want to be supported at present, going by the loaded modules. Onboard sound is a Realtek ALC650 chip with AC '97 sound.
You will want to go into your BIOS and disable the onboard sound if the option is there.
The relevant info from opensource.creative.com is obviously: " The Audigy LS -- The retail Audigy LS card is not based on the same chip as other Audigy boards, so the EMU10K1 driver available at SourceForge won't work with it. Fortunately, there are drivers available from two sources -- ALSA (1.0.6 release) and 4FrontTechnologies."
Now as I understand it, I will need to install ALSA 1.0.6. I prefer to use the APT system, so let's see what APT says.
And besides the alsa-base you will want the alsa-utils. Then once they are installed you run alsaconf to run the setup program.
Quote:
The thing is, I am wondering about a few steps. The ALSA documentation is VERY involved, can be heavy and doesn't assume anything about Debian and its wonderful packaging system. I surely should go for the new support offered to my PCI card, get rid of the traces of the older OSS, get rid of the useless emu10k1 drivers the kernel auto-detected (see below), and make sure things are going right with ALSA. Probably there is a meta package for an important and extensive program such as ALSA.
I realize I have yet more reading to do, but any general guidelines or comments would be very much valued here.
See above and you definitely want to get rid of the OSS modules otherwise the ALSA will not load properly. If you are running a testing only system and want to stay with mostly a testing base then you will need apt pinning to set it up you need something like this.
You will have to create both files most likely the first tells the system your default release and increases the cache so that your can have sources for both branches available in your /etc/apt/sources.list which you should also edit to put a source for the unstable branch in there then apt-get update. The second the prefernces sets the prority for the testing branch above the unstable so the packages will always come from there when installing/upgrading. Now you would install the ALSA by using apt-get -t unstable alsa-base alsa-utils and adding as few packages as possible to the end of the line if/when apt complians about a package(s) being missing and it will not install them. Now after having installed and ran the alsaconf then you will need to run the alsamixer in a console/console window and unmute and raise the volumes on both the Master and PCM channels to have the default volumes set and saved when you shutdown/reboot this should be done as normal user that will be using the sound, all other steps as root of course.
comprookie2000, the 2.6.8 kernel was installed along with the rest of the system, so I must have had ALSA from the start. Looks like I didn't really have OSS modules, the only one seems to be related to a mixer. The onboard sound was disabled in the BIOS from before the Debian installation. I have had it like that ever since I installed the card under Windows.
HappyTux, thanks very much for your reply -- this is getting me on track now. I have uninstalled/purged sndconfig, since it probably works together with OSS. (This helps me understand why it says I didn't have the soundcore module loaded when it was.)
Since the onboard sound has been disabled in the BIOS since before the installation, it must be that the installer detected the hardware and simply added the AC '97 module regardless.
I don't know how to disable all of these modules. I don't know how to get rid of the emu10k1 modules. Where can I read up on how to do this? For instance, are they in a configuration file, or do I need to recompile the kernel before installing ALSA?
"You will get it from unstable."
Oops, I typed Sarge when I meant Sid. Of course you're right. Thanks to the information you've provided on how to fetch from Sid while running Sarge (which expands for me on what the APT How-To advises), I should be able to get the 1.0.6+ package with apt pinning. I won't install ALSA until I am sure the system is ready for it though.
Just a note: My su terminal didn't recognize "acp." I had to look it up on the forums -- shorthand for "apt-cache policy". Wonder why the terminal doesn't know it?
"And besides the alsa-base you will want the alsa-utils. Then once they are installed you run alsaconf to run the setup program."
Again, what I am not sure of is how to
1) make sure that there are no OSS modules (and programs?) installed that will interfere with ALSA, and
2) get rid of the emu10k1 and AC '97 modules that are currently installed.
Once I can read up on how to take of this, or else find out whether ALSA can take care of it on its own, I can fetch the 1.0.6 alsa-base with alsa-utils and also alsaconf. (Does the version of alsaconf need to correspond to the newest 1.0.6 alsa-base and alsa-utils, or can I get it from testing?)
Thanks so much for your advice. I won't have time to fool with this stuff until later on tonight, sort of a drag but that's the way it goes...
The "modconf" utility is probably the easiest way to get rid of OSS modules. But you don't need to get rid of programs that use OSS -- install the "alsa-oss" package and they should work just fine using ALSA instead.
Originally posted by michapma
[B]comprookie2000, the 2.6.8 kernel was installed along with the rest of the system, so I must have had ALSA from the start. Looks like I didn't really have OSS modules, the only one seems to be related to a mixer. The onboard sound was disabled in the BIOS from before the Debian installation. I have had it like that ever since I installed the card under Windows.
HappyTux, thanks very much for your reply -- this is getting me on track now. I have uninstalled/purged sndconfig, since it probably works together with OSS. (This helps me understand why it says I didn't have the soundcore module loaded when it was.)
Since the onboard sound has been disabled in the BIOS since before the installation, it must be that the installer detected the hardware and simply added the AC '97 module regardless.
I don't know how to disable all of these modules. I don't know how to get rid of the emu10k1 modules. Where can I read up on how to do this? For instance, are they in a configuration file, or do I need to recompile the kernel before installing ALSA?
Should be no need to recompile just ensure that discover does not load the modules if it does you need to put them in /etc/discover/blacklist in the Skip line.
Quote:
Just a note: My su terminal didn't recognize "acp." I had to look it up on the forums -- shorthand for "apt-cache policy". Wonder why the terminal doesn't know it?
Sorry I usually edit my /root/.bashrc aliases by hand before I commit the post so your shell would have no way to recognize it. An alias is a shortcut to save you all the typing in the shell here are the ones I use in the file you may want to put them in there or make your own.
Code:
>$ cat /root/.bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
#export PS1='\h:\w\$ '
## Red prompt for root
export PS1='\[\033[01;31m\][\h:\w]\$\[\033[00m\] '
umask 022
# You may uncomment the following lines if you want `ls' to be colorized:
export LS_OPTIONS='--color=auto -h'
eval `dircolors`
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Allows me to run an X program as root
export XAUTHORITY=/home/stephen/.Xauthority
# Stops bash from overwriting file
#i.e. bob@sonic:~> cat > todo-list.txt
# bash: todo-list.txt: cannot overwrite existing file
set -o noclobber
# Some aliases added by me for convenience
alias afl="apt-file list"
alias afs="apt-file search"
alias afu="apt-file update"
alias agi="apt-get install"
alias agis="apt-get -s install"
alias agit="apt-get install -t unstable"
alias agits="apt-get install -s -t unstable"
alias acp="apt-cache policy"
alias acs="apt-cache search"
alias acsh="apt-cache show"
alias acsp="apt-cache showpkg"
alias agr="apt-get remove --purge"
alias agrs="apt-get -s remove"
alias agu="apt-get upgrade"
alias agus="apt-get -s upgrade"
alias agd="apt-get dist-upgrade"
alias agds="apt-get -s dist-upgrade"
alias ag="apt-get update"
alias asv="apt-show-versions"
alias asva="apt-show-versions -a"
alias dpg="dpkg -l | grep"
alias dpi="dpkg -i"
alias dpif="dpkg -i --force-overwrite"
alias dpp="dpkg -p"
alias dpl="dpkg -L"
alias dps="dpkg -S"
alias dpsc="dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz"
alias dpgc="COLUMNS=125 dpkg -l | grep"
alias ds="dselect update"
# Set pager to most for color man pages
PAGER=most ; export $PAGER
#Added to let less view .gz doc files
eval `lesspipe`
Quote:
"And besides the alsa-base you will want the alsa-utils. Then once they are installed you run alsaconf to run the setup program."
Again, what I am not sure of is how to
1) make sure that there are no OSS modules (and programs?) installed that will interfere with ALSA, and
2) get rid of the emu10k1 and AC '97 modules that are currently installed.
I do not mean delete them or anything like that just make sure that they do not get loaded by discover and sometimes hotplug now that I think of it, it has a blacklist as well that you can put modules in so it will not load them.
Quote:
Once I can read up on how to take of this, or else find out whether ALSA can take care of it on its own, I can fetch the 1.0.6 alsa-base with alsa-utils and also alsaconf. (Does the version of alsaconf need to correspond to the newest 1.0.6 alsa-base and alsa-utils, or can I get it from testing?)
Alsaconf is included in the alsa-utils package along with other things like alsamixer.
Quote:
Thanks so much for your advice. I won't have time to fool with this stuff until later on tonight, sort of a drag but that's the way it goes...
Actually, I hadn't planned on using discover. This brings up an interesting point; discover, although it is more confusing to use than using apt-get directly (yes, I realize that discover uses apt-get), is probably often better than apt-get, because of the way it installs recommended packages in addition to dependent packages.
We've discussed how to use apt pinning to retrieve the unstable version of alsa-base and alsa-utils that I need for my card, but if I use discover instead, don't I need a way to tell it to use the unstable version?
Well, in any case, I've a decent idea of what to do now, and with a good session of sitting and reading docs I should be able to figure it out. I'm still confused as to why I don't need to "uninstall" (not the right term I think) the modules that are currently being loaded -- probably ALSA will know how to get rid of them. Hopefully things will become clear in the doing.
Originally posted by michapma Actually, I hadn't planned on using discover. This brings up an interesting point; discover, although it is more confusing to use than using apt-get directly (yes, I realize that discover uses apt-get), is probably often better than apt-get, because of the way it installs recommended packages in addition to dependent packages.
You are confused on this part discover does not use apt-get it is a package that uses a database of pci id's and during boot it runs then loads the module(s) for the devices it finds.
Quote:
We've discussed how to use apt pinning to retrieve the unstable version of alsa-base and alsa-utils that I need for my card, but if I use discover instead, don't I need a way to tell it to use the unstable version?
No you still the alsa packages from unstable to try to get your card to work.
Quote:
Well, in any case, I've a decent idea of what to do now, and with a good session of sitting and reading docs I should be able to figure it out. I'm still confused as to why I don't need to "uninstall" (not the right term I think) the modules that are currently being loaded -- probably ALSA will know how to get rid of them. Hopefully things will become clear in the doing.
Thanks again,
Mike
You may still have to use modconf to unselect the modules or if they are in the /etc/modules then edit that file by hand and remove them of course you may still have to blacklist as well it all depends on how it goes, I removed both the discover and hotplug packages a long time ago so am not entirely certain how it will play out.. One thing for certain though ALSA knows nothing about the OSS idea it will happily configure and load its modules even though they will be in conflict with the OSS that may be loaded at the same time it is up to you the sysadmin to make sure that does not happen.
"You are confused on this part discover does not use apt-get it is a package that uses a database of pci id's and during boot it runs then loads the module(s) for the devices it finds."
Right you are, I read discover and thought dselect.
"No you still the alsa packages from unstable to try to get your card to work."
Done, I used an apt-get update and then with the -t option and got 1.0.6+. Unfortuately, when I rand alsaconf it detected the card as simply "Audigy" and loaded the emu10k1 driver again.
"You may still have to use modconf to unselect the modules or if they are in the /etc/modules then edit that file by hand and remove them of course you may still have to blacklist as well it all depends on how it goes, I removed both the discover and hotplug packages a long time ago so am not entirely certain how it will play out.. One thing for certain though ALSA knows nothing about the OSS idea it will happily configure and load its modules even though they will be in conflict with the OSS that may be loaded at the same time it is up to you the sysadmin to make sure that does not happen."
When I used modconf, I could only see how to select packages, not deselect. Time to hit the books again.
I have tried, and there are a few things I don't get. First, let's look at how to blacklist discover and hotplug. I tried to do it, but it doesn't seem to work.
/etc/hotplug/blacklist exists, so I added these lines:
# these are my own additions
emu10k1_gp
snd_emu10k1
snd_ac97_codec
/etc/discover/blacklist does not exist. In fact, /etc/discover does not exist. On the other hand, /etc/discover.conf and /etc/discover-modprobe.conf do exist. The file discover.conf is an xml-type document with a list of things to scan (ata, pci, usb, etc.). But discover-modprobe.conf has the following content:
Code:
/etc# cat discover-modprobe.conf
# $Progeny: discover-modprobe.conf 4108 2004-02-23 21:56:41Z imurdock $
# Load modules for the following device types.
types="audio bridge broadband display fixeddisk \
humaninput imaging miscellaneous modem network \
optical printer removabledisk tape video"
# Don't ever load the foo, bar, or baz modules.
#skip="foo bar baz"
skip="snd_emu10k1 emu10k1_gp snd_ac97_codec"
# Lines below this point have been automatically added by
# discover-modprobe(8) to disable the loading of modules that have
# previously crashed the machine:
Now the line skip="snd_emu10k1 emu10k1_gp snd_ac97_codec" I added myself.
Of course I backed the originals up first. Now I have the problem that when I restart the system, these modules show up anyway. So either I am not blacklisting them properly, or else Gnome or xdm is starting them up and the blacklists can do nothing about it.
When I try for example to do a "#modprobe -r snd_emu10k1" while in the X server, it tells me this: FATAL: Module snd_emu10k1 is in use. In order to use a modprobe -r on them, I have to exit the X server and do it from the console. In this way I was able to use both modprobe -r to kill them and modconf to remove them (or so I believed). If I re-open the X server, there they are again already. Rebooting again does nothing. So these things are pretty persistent. I'm not certain what I have to do to get rid of them.
Yes, that looks very much like a C file that I could compile and use if I had any idea how to. (You could have just linked to it.) I realize that compiling code is no big deal if done in a standard way, but then you do have to know what you're doing. In this case, I don't. The ALSA docs are either all very outdated or scattered, and I haven't learned how to compile my own drivers yet. Please bear in mind that I effectively have been a Linux user for under two weeks, some past experiments with installing SUSE aside. Anyway, there are plenty of betas: http://www.alsa-project.org/~james/alsa-driver/
The driver for the Audigy LS is now included in alsa-driver 1.0.6a.
To build it, use:
./configure --with-cards=audigyls
The kernel module that is used is called "snd-audigyls"
1) alsaconf detects my card as an Audigy and installs/installed the standard emu10k1 modules.
2) I don't know how to prevent the ALSA emu10k1 modules from being loaded; blacklisting doesn't seem to help me.
3) If the driver is already in version 1.0.6+, which I have installed, why can't I simply load it as a module from there?
4) I don't know what to do with ./configure --with-cards=audigyls
5) I am, however, still trying to understand.
6) Even when the driver is properly installed, Gnome sound will probably block me from realizing it works.
That is the same driver you are tring to get rid of I think.I would uninstall then reinstall alsa with apt and then go ahead and set the sound up with alsaconf and unmute your sound and it should work without a lot other stuff,that driver is from
--- alsa-driver/pci/emu10k1/audigyls.c 5 Jul 2004 15:07:21 -0000 1.8 and it is the emu10k1 and supports audigyls.c I could never code a driver in a million years,but I have started from the begining and followed all the directions because most times I mess up and make things harder than they have to be!
After you get it set up you should be able to modprobe "snd-audigyls" to see if it is loaded. hope this helps,I will keep looking around and see if I can find something that is clear as I don't have that card but I'm sure someone has it working.
Last edited by comprookie2000; 10-03-2004 at 06:29 PM.
I don't quite follow why you want to stop Debian from loading ALSA modules -- I thought it was only OSS modules you needed to stop from loading in /etc/hotplug/blacklist and /etc/discover.conf. But I guess you know what you're doing.
The usual method of loading kernel modules in Debian during boot-time is to add them either to /etc/modules or to some file in /etc/modprobe.d/ or /etc/modutils/. Then you run (as root) "update-modules" so that a new /etc/modules.conf is created.
So maybe you should check if the modules you want to prevent from being loaded appear in some of these files.
BTW, after doing "alsaconf" and unmuting sound channels in alsamixer, I first got only screeching noises from sound apps. Then I added a skip line for my soundcard (skip maestro3) to /etc/discover.conf, rebooted, and ALSA sound started to work OK. But I guess I'm just lucky.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.