Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
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.
Running RH9, using onboard sound on a Soyo Dragon+ motherboard (CMedia 8738), and Klipsch 4.1 speakers, and I've got two problems.
First, I'm getting nothin on the rear speakers, fronts and sub work fine. What can I do to get them working?
Second, when I'm playing a movie or listenin to a song, the program I'm using isn't able to control the volume level. In other words, I can't turn a song down using the volume control in XMMS, for instance. I'd really like to be able to do it that way, since my speakers are kinda out of reach, and it's too anoying to use Kmix.
It just so happens that I have the same board. You happy with it? I don't know about yours, but I only have two functional pci slots, 1-3 are bad. Sorry, that's beside the point. Let's get down to business shall we.
The first part is easy. There are two solutions to this.
a. The cmpci sound driver is compiled as a module, which I'm assuming it is since you didn't specify otherwise. What is going on here is the cmpci module is not being told the use 4 speakers, so it defaults to 2. In a console log in as root (with out the quotes) 'su -' and type in root's password. Now you should be logged into that console as root. Run 'modinfo cmpci' this will give you a list of options that the cmpci sound card module can take. You should notice it can take speakers as an argument. So now remove the currently loaded module of cmpci 'rmmod cmpci' this will remove the module. Now we will reload it, but this time with 4 speaker support 'modprobe cmpci speakers=4' Your rear speakers should now be functional. I know you don't what to do this every time you reboot your machine so lets try to do something about it. Now I don't know how RH9 does this as I use slackware, but it should be to some effect similar to what I'm about to explain. Edit /etc/rc.d/rc.modules and find a line where is says /sbin/modprobe cmpci and to the end of that line add speakers=4 save and quit. If you don't see that line in there at it should be save to add it. Yours might be something like /etc/rc.init/rc.modules I don't know, maybe someone familiar with RH9 can help us out with this part.
b. Compile C-Media support into your kernel. Have you compiled your kernel at all? If you have you will see under sound card support an option for our sound chip (8738), and there is an option to specify the use of 4 speakers.
The second part it the drivers fault, from what I can tell anyways. The driver does not support PCM, which is equivalent to wave out in windows. In kmix you will notice that the bar for master volume works, but the PCM(wave) bar does nothing. Programs usually change the PCM volume when they change the volume. XMMS you can by pass this problem, go to options > preverences. In output plugin select oss and click configure. Click the mixing tab and check the box next to use master volume instead of PCM. Now XMMS will change the master volume which works, instead of PCM which does not work.
However there is a solution to get PCM to work. I don't know what kernel you are using, but I'm assuming it is 2.4.20. Well it uses OSS for its sound card drivers. The alternative to OSS is ALSA, you can download and install the alsa drivers if you like http://www.alsa-project.org . With alsa you can change pcm volume. Now I never got alsa to work, so again maybe someone can help us both. Or you can wait for the new kernel to come out. OSS in the new kernel is being depreciated, phased out, and alsa is going to take over. I used the latest 2.5 kernel for a while and tested out to see how the alsa driver worked, and it worked perfect. I'm choosing to wait for the new kernel, which will probably be awhile.
Okay, hmmm. Well, first of all, I'm only 5 days into using Linux, so bear with me
First, I'm in the same boat with the PCI slots, just able to use 4 & 5. But, I only ever needed pci when I was still on dial-up, since I went dsl everything is onboard. Anyway...
I don't know if it's compiled as a module. I simply did a complete install, and haven't changed anything as far as sound goes. When I run
# modinfo cmpci
bash: modinfo: command not found
I ran # locate cmpci and it found some icons, and this
if that tells you anything.
As for compiling it into my kernel, that's over my head right now, though I'm willing to learn ;-)
On the second part, I changed the output to OSS driver 1.2.7 and set it to change master volume, but when I try to play, I get a window that says
Please check that:
1. You have the correct plugin selected
2. No other programs is blocking the soundcard
3. Your soundcard is configured properly
So where's that leave me? BTW kernel is 2.4.20-9 (I've noticed the -9 part is never mentioned when kernels are brought up, does it not matter where this stuff is concerned?)
Thanks for the help, and keep it coming *PLEASE!!!*
Well let me welcome you to the wonderful world of linux. It wasn't too long ago when I first started and I was in your shoes trying to get all my speakers to make noise. I know it might be a little intimidating at first, but it only gets easier as you ask questions and learn. I'll try to take it a little slower and better describe what is going on.
bash: modinfo: command not found
most likely because /sbin was not in your path. /sbin is part of root's path. When you ran
$ su -
did you remember the minus sign? su is a program used to become another user during a login session. Run without a username, su defaults to becoming the super user. The optional argument -may be used to provide an environment similar to what the user would expect had the user logged in directly. Without the - /sbin didn't get included as a directory to search for programs to run so you got that error message. If you did include the - sign I'm sorry, I don't know what is happening, it might be easier to log in as root and do this. If you continue to get this message run
# whereis modinfo
whereis tells you where programs are located. It should tell you /sbin/modinfo Just run the commands with the full path and you will be ok.
Another program I should tell you about is lsmod. lsmod displays a list of currenly loaded modules. Run it and if you see cmpci You should try doing what I told you before if you see it. If you don't see it and you can still make sound, the driver is likely compiled into the kernel. If you are in question, post there results of lsmod here.
Do you happen to know about man pages? Man pages are documents that tells you what a program does and who to use it. Use arrow to scroll up and down and q to quit. Why not start by looking at the manuals of the programs I've told you to use.
# man lsmod
# man modinfo
# man rmmod
# man modprobe
# man <program>
The second part is my bad. I'm sorry. You will want to change it back from OSS to what ever was there (aRts if KDE and eSound if Gnome) I think. The thing with linux and sound is that only one program can have control of /dev/dsp (digital signal processor aka sound chip). In this case either aRts or eSound has control of /dev/dsp, and now XMMS is trying to make noise and it can't because aRts or eSound has control. aRts and eSound are sound servers. These are programs that allow you to play more sounds at once. The sound server takes control of /dev/dsp and all sound is directed to the sound server by using the respected driver. The sound server is capable of taking multiple sounds at once and streaming them together before sending it to /dev/dsp and that is how you are able to play multiple sounds at the same time. I'm sorry, I don't run esd (esound) or artsd (aRts) I just put up with only playing one sound at a time, so I use the OSS driver, sorry.
When I put in rmmod cmpci it says Device or resource busy; what do I do to shut it down? The funny thing is, I got rmmod to work once, and put in the command for setting it to 4 speakers, and it worked.
I can't seem to find rc.modules anywhere. I've looked just about everywhere, no luck. Any idea what else it might be called? (ie, maybe RH just uses a different name?) I'll keep looking, see what I can find.
I think I'm gonna leave off with this for a couple hours, watch Matrix so I can be ready for Wednesday and give my brain a break. Thanks again for all the help.
Now this is a wild guess, if you see
alias ??????? cmpci
add the line
options cmpci speakers=4
below it. If we can get this second problem fixed we won't have to worry about the first one at all, because the module will have been loaded correctly at boot time. Reboot, and lets hope we fixed it.
Something is still using the sound card. Make sure all programs using sound are closed, which can be pretty hard because a lot of times kde and gnome are set up to make noise. It could be one of those sound servers still is using it.
# ps ax
This program shows what processes are running. In the list you will probably see artsd or esd, which are those sound servers. What you want to do is kill them. Run
# killall artsd
# killall esd
depending on what you saw in ps 's output. Become superuser again and now try rmmod and see if it works. When you got the module back and loaded again you will want to start the sound server back up again. The easiest way would probably to logout and log back in. Or you could manually reload it, this I think you will want to run as your user. So exit out of superuser. Run
chiefjoe@localhost:~$ artsd &
chiefjoe@localhost:~$ esd &
the & symbol puts the program to the background so you should be able to close the console. Without it when you close the console the program would also close. If you can't get esd or artsd to load again. Try logging out and logging back in.
The console is a lot different from the point and click world of windows. I'd have to admit I got the same feeling, my eyes were buggy and I thought my brain was going to melt. But now all I use is console to get a majority of my stuff done.
Wednesday, I thought it was Thursday? You see the final theatrical trailer? Wow, did that get me pumped up for Reloaded.
I had found modules.conf, another page mentioned it, and I tried putting in the modprobe cmpci speakers=4 command, needless to say that didn't work. It's like it screwed up everything that came after it in the startup sequence. I was stuck booting into console, and got to spend 30 minutes finding out how to edit a file from console. I knew all i had to do was unedit the file, but didn't know how, but I figured out how to use vim. So, I got everything back the way it was.
Anyway, thanks again.
And you right, it is Thursday, my bad. (shoot, that means I gotta wait another day, nooo
BTW, check out the moon that night, total lunar eclipse