Thank you very much for your elaborate write up! It's been very helpful in understanding a little more of what goes on behind the scenes. I followed your recipe e.g. removing any sound related kernel modules but the card still does not show up in YaST and adding it clicking the "Add sound card" button results in the same error. I get the sense that your card did show up in YaST after you had followed the recipe. I used "modprobe -r" to remove the modules that "/etc/init.d/alsasound stop" did not remove. They were only "soundcore" and "snd_page_alloc". I noticed that YaST has loaded all the modules back in again already when the YaST sound UI shows up e.g. before the user has had a chance to do anything using the UI. I googled for sb0400 and emu10k1 and see that 2.6.11 has just been released and that it addresses the SB0400 in particular - http://lwn.net/Articles/125753/ I suspect my kernel is too old/the card too new and that I have to get the new kernel to resolve this. I'm on stock SuSE 2.6.8-24.11-default. I'm a little hesitant compiling a new kernel because last time I did that - on SuSE 9.1 - some things stop working - like detection of new hardware if I remember right. I don't mind the work. My worry is getting the kernel parameters correct whereever there is a discrepancy between old and new. Now if SuSE also posted kernel updates (as opposed to only kernel fixes and mostly only security related) as FC does then my card would probably be playing by now. I'd still purchase SuSE 9.3 or whatever it's name becomes but some might not. And after I install the new kernel will YaST now recognize the card - will it show up in the list in YaST? Or will also YaST be "too old"? Anyone know of a place that posts SuSE 9.2 kernel updates? I know of only the Packman site (ftp.gwdg.de) for SuSE and Dag Wieers site for FC. The card might work on FC but I'm not running FC at home - only at work. Again, thank you very much for your reply. Claus On Thursday 03 March 2005 18:18, Phil Betts wrote:
On Thu, 2005-03-03 at 00:39 -0800, Claus Olesen wrote:
I just purchased and installed a Creative Labs SB Audigy 2 Value sound card model SB0400 on my SuSE 9.2 box but have so far had no luck in getting it past the configure stage.
SuSE did show the "new hardware found" popup after the first reboot after the install and lead me to the sound configuration dialog but the card is not listed in the dialog and if I try to add it clicking "Add sound card" then I get "An error occurred during the installation of SB Audigy. The kernel module snd-emu10k1 for sound support could not be loaded. This can be caused by incorrect module parameters, including invalid IO or IRQ parameters."
snd-emu10k1 is already loaded according to lsmod.
I've got an Audigy 2 ZS and have similar problems. Here's the best I've managed so far. Hold on we're in for a bumpy ride!
Before you start, check /etc/sysconfig/sound. (You should only need to do this once which is why I've kept it out of the numbered steps.) You want it to contain the following lines: LOAD_SEQUENCER="yes" SOUNDFONT_FILES="xxx.sf2" LOAD_OSS_EMUL_MODULES="yes"
replace the xxx.fs2 with the name of the soundfont you want loaded. This file should be in the /usr/share/sounds/sf2 directory.
1) run "/etc/init.d/alsasound stop" This is just so that the sound is "officially" off. It looks like it's meant to kill off all processes using the sound devices, then remove all the sound modules. I've found it doesn't remove all of the modules - it leaves sound, soundcore and emu10k1 (if they had been loaded) and sometimes other snd-* modules as well. This means that if you try to restart, it fails while trying to load the modules and bails out :(
2) Now run: lsmod|egrep '^(snd|sound|emu10k1)' then carefully rmmod any listed modules. You can probably leave emu10k1_gp - it's for the joystick port. Also, you should probably leave snd_page_alloc loaded because the alsasound script explicitly avoids this one, the implication being that it's not safe to unload. Essentially, you need to get the audio system back to the way it was before any sound initialisation was performed. If there are a lot of sound modules to be unloaded, you may need several passes unless you're careful with the dependencies. Some versions of rmmod will do a recursive removal of modules, but it appears that the one that ships with SuSE 9.2 has had this option removed so you need to do it the hard way.
3) Run "yast2 sound". It may say that the number of sound cards running does not match the configured number and ask if you want to restart the sound system. Say no, then delete the entry for the card, exit yast and repeat steps 1 and 2 (yast will probably have loaded the soundcore and snd modules again)
4) Rerun "yast2 sound". You should go straight to the SB Audigy "Sound card configuration" page. Select "Normal setup" (the only one that works consistently for me). If you want, select "Configure joystick". Click Next. Press Test, and you should hear the sample. If not, I'm afraid I can't help you - you're on your own :( (Actually, it's possible that your /etc/modprobe.conf and its relatives need tweaking. If so, I can post my settings.
5) If you're still with me, before you press "finish", go to a shell and type "alsamixer" (or "alsamixergui" if you're running X). If it runs, great - you can quit yast, it's done all it can (bless it).
If yast didn't manage to set up the mixer, (it will say "No mixer elems found") again, you're on your own.
By now, you may find that everything you need works fine, in which case, enjoy!
If, like me, you want to use rosegarden or something else that needs loaded soundfonts, you'll probably find the app appears to run, but you get no midi output. Warning: if you've previously loaded soundfonts since the last time you powered on, you might be deceived into thinking all is well. Unfortunately, the next time you power up, you'll probably find silence greets you. Fear not.
From the shell run "/etc/alsa.d/emu10k1". This little file *should*
get run by the alsasound init script, but I've found that it doesn't (not sure why yet). This will load the soundfont you named in the sysconfig file.
One last thing you might need is to load the emu10k1 module. Most programs are fine without it, but if you find a program that complains about "device not found" or something like that, "modprobe emu10k1" and try again. Hopefully you'll be in business.
Sheesh!
There appears to be a real problem with both yast and the alsa init scripts. This seems to be caused when modules are already loaded. They get part way through, hit a spurious "error" (e.g. "cannot load module" when the module is already loaded) and then they give up, leaving the system half set up and therefore doomed to fail when you retry!
Unfortunately, I find I have to do this every time I reboot (it's a good job this is Linux - I only usually need to reboot when I've powered off to install some new hardware ;-)
I'm trying to automate the above process to replace the alsasound init script, but there is something that yast does when it is "Starting the sound system" that is not done by any of the init scripts. So far I've got two scripts, one to "clean" the system before running yast2 and one to do the additional bits after yast2. They could be stuck together, but until I've figured out what yast is doing that the init scripts don't, I need to keep them apart.
Once I've got to the bottom of this, I'll post the results, unless someone else has a better solution in the meantime.
If any of the yast developers are monitoring this list, I'd be interested in hearing what you do during a restart that the normal boot process doesn't. You should also investigate why yast only gets it right from a clean start. I'll be happy to test any patches.
The ideal solution is for yast2 to "always work" (duh!) i.e. regardless of the current state of the sound system. Then, whatever it does when it restarts, should be transferred to the alsasound init script so that it can cleanly start the system on boot-up (warm or cold).
If anyone has a better workaround than mine, PLEASE let us know.
I hope I've been of some help.
Phil Betts