Results 1 to 3 of 3
Thread: The i810 Chipset Thread (part I)
-
08-02-2004, 20:25 #1
-= TeamSpeak User =-
- Join Date
- Aug 2003
- Location
- USA
- Posts
- 4
The i810 Chipset Thread
(very, very long post)
I. Background:
I work for a small school system, and having open phone lines to call between the buildings is just not possible during most of the day. I decided to implement a test installation of TS (starting with my tech department) as sort of a no-cost VoIP solution. I've used TS in games before, but I think it is a better fit as a paging/telephony solution because it is so feature-rich. Every install of TS I have done has been rather eventfull, especially on Linux, since OSS/ALSA driver support is so spotty. I noticed some posters on this forum were having difficulty getting Intel 810 based sound cards to work with TS, so this is my extensive HOW-TO guide on the subject.
II. What this applies to:
Intel 810 based sound cards on Linux. To the best of my knowledge, the ALSA drivers work with Intel 82801AA, 82901AB, i810, i820, i830, i840, i845, MX440, SiS 7012 and Ali 5455 chipsets. Please note that this guide is based on my experiences solely with an i810 chipset in an IBM PC.
III. Let's begin:
First off, if you're trying to get TS to work with your i810 board using the OSS drivers, drop it. The OSS drivers don't support full-duplex operation with this soundcard. In fact, you'll lock up KDE arts (sound server) solid trying to force full-duplex operation. If that wasn't enough, the OSS driver isn't aware of a bunch of mixer channels that must be adjusted for proper operation in TS.
Second, get the latest, stable 2.4 kernel (as of today I believe it's 2.4.24). I was not able to successfully compile 2.6.2 with ALSA support, so I cannot give specific guidance with that. Some of the information in this guide may still help you with configuring a 2.6 system.
Third, get the latest stable ALSA drivers (currently version 0.9.8). You will need the ALSA driver, library, OSS emulation, and utilities packages. If your Linux distro maker has these, great! It's a good idea to make sure that your OSS kernel modules no longer load. I cannot give you specific advice on every Linux distro. In Slackware, I just comment out lines in my rc.modules file. If your Linux distro requires that you compile ALSA, read the next section.
IV. Read this only if you're compiling ALSA from source:
If your distro already offers ALSA 0.9.8 as a downloadable package, skip this section.
Log in as root, then go here http://alsa-project.org/download.php3, and pick a mirror closest to you. You will need to get the ALSA driver, libraries, OSS support and utilites from the driver, lib, oss-lib and utils directories respectively. You want version 0.9.8, and the files end with the extension .bz2. I keep an 'updates' folder in /root. I have an 'alsa' subfolder inside that, and this is where I placed this ALSA sources. I just like things neat and tidy, but use whatever area you use for storing source code. If you are replacing an older install of ALSA, make sure that you unload all the old modules. ALSA uses auto config, but does not give a 'make uninstall' option ( >:p ), so you will have to overwrite the old stuff (or remove it if you know how).
Now, open a console window, and 'cd' into your alsa source directory. Use the 'bunzip2' command to unpack the source files, then use 'tar -xlpvf' to expand each of the archives into its proper directory structure. Enter the alsa lib subfolder first. If you want the stuff in /usr/lib, do a 'configure --prefix=/usr'. Now do 'make' and 'make install'. This may take a while if you have a slow machine. Next go back one directory level, then go into the separate alsa driver folder. There are various other options to compilation (that can be viewed by doing 'configure --help'), but I'm only concerned with TS compatibility here, so just do a 'configure --with-oss=yes'. After that is complete, do 'make' and 'make install'. This will take a while, even on a fast machine. Go back one directory level, then go into the separate oss libraries source subfolder. Do 'configure --prefix=/usr' (or whatever), 'make', then 'make install'. Go back one directory level, go into the util folder, then repeat the last step for the utilities folder.
Here is the superimportant step that everyone forgets!! Go back one directory level and into the alsa driver folder again. Run the snddevices script. (Usually ./snddevices) Very crucial! If you skip this step, then not only will your sound not work, but the alsa mixer will give a device-not-available error. This script creates the device nodes for your sound hardware. Please note that running this script will "break" the old OSS device nodes. If for some reason you end up going back to your old OSS drivers, you will have to hunt down your devices package and reinstall, or recreate them manually. Keep this in mind.Last edited by M60_Guy; 08-02-2004 at 20:54.
-
08-02-2004, 20:28 #2
-= TeamSpeak User =-
- Join Date
- Aug 2003
- Location
- USA
- Posts
- 4
(part II)
V. Configuring ALSA with OSS Emulation
If you're using Mandrake or Lindows, chances are that your /etc/modules.conf file already contains the necessary options to configure the ALSA modules. But, check just in case. Note that Mankdrake and Lindows have lots of entries in modules.conf, so try not to get lost. The proper config lines are as should look something like this:
# ALSA Section
alias char-major-116 snd
alias snd-card-0 snd-intel8x0
options snd-intel8x0 index=0
# OSS Emulation Section
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0
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
Notice that I included the module option 'index=0'. I don't why this has to be done on some systems, but I needed to include it on mine. There are a few other options, which you can view here http://alsa-project.org/alsa-doc/doc...odule=intel8x0. I don't recommend playing with the other options, unless nothing else works (e.g. if you have a dual-soundcard setup). If your Linux distro doesn't have these lines, you will have to copy and paste them in, or type them in manually.
At this point, you'll have to ensure that the modules are properly loaded at boot time. The correct order is snd-intel8x0, snd-pcm-oss, snd-mixer-oss and snd-seq-oss. I can't give specific instructions for all the distros. For Slackware, I had to manually add the line '/sbin/modprobe snd-intel8x0;/sbin/modprobe snd-pcm-oss;/sbin/modprobe snd-mixer-oss;/sbin/modprobe snd-seq-oss' to my /etc/rc.d/rc.modules script. I'm told that the order is important, as is specifying all four modprobe commands as I've shown. I haven't verified this. If anyone with expertise on Linux systems with SysV-style init scripts can give advice about setting up these modules to load, please post it in this thread. Thanks!
Load the new modules at this point by issuing the four /sbin/modprobe/<module name> lines, or just reboot. Make sure you are the root user, and open up a console window. Now this is a tricky part for two reasons: ALSA mutes all channels by default, and the KDE mixer application was written to OSS drivers, so it has trouble with ALSA devices (even with the OSS emulation library). I haven't tested this with ESD and Gnome, but it is probably a similar situation there as well.
We will have to unmute the channels we want to use. Apparently ALSA mutes everything when it loads because some sound cards set all the levels to maximum after a reset, and some people's heads exploded when the sound card played a sound for the first time. No next of kin wants to clean up a loved one's exploded head, so we have to put up with the inconvenience of channels muted by default (and also with a crufty command line mixer). Open up the ALSA mixer program by issuing 'alsamixer' at the command line. Use the left (or right) arrow keys to change the channel selection (there are more than may fit in your console window, so the display will scroll accordingly). Hit the 'M' key to unmute a selected channel. You'll need to unmute the channels Master, Headphone, PCM, CD, Mic, Mic Boost (+20dB), Aux and Capture at a minimum. Well, you may be able to get away with less, but that covers the most common options. Have some music and/or sound effects files handy to test the sound levels. If you have a headset like I do, you'll find you have to adjust the 'Headphone' channel to get the right output volume; The 'Master' channel does nothing (in alsamixer and the KDE mixer). ***SUPER IMPORTANT*** Make sure that you adjust the 'Capture' channel, and set the 'Mic' channel as a capture device. I currently have my mic set to 87% and my capture set to 60%, but that's because my office is in a noisy server room. Depending on how your sound chipset is 'optioned', you may have to tweak the 'Mic Select' or 'Phone' channels. Adjust the other channels as you see fit by selecting them with the left and right arrow keys, and adjusting level with the up and down arrow keys.
OK, as I mentioned before, when an ALSA driver loads, it mutes all the channels. That is a problem, especially since we are forced to use a crappy curses-based mixer in order to adjust the proper channels. Well, ALSA gives us a handy utility to store and retrieve sound settings. That program is 'alsactl'. When you have adjusted the sound levels to your liking, hit the escape key in alsamixer (usually twice) to back out. DO NOT PRESS 'Q'! Issue this command from the command line: 'alsactl store'. Now your settings are stored. But, they need to be loaded at boot time. I know for a fact that Mandrake includes 'alsactl restore' in their boot scripts, so you Mandrake guys are probably all set. I'm not sure about the rest of the distros, but for Slackware, I had to add '/usr/sbin/alsactl restore' to my /etc/rc.d/rc.local script. Debian or Dedrat users, please chime in here and let me know how it's handled.
Lastly, give everyone read/write access to the /dev/dsp0 node. You can do this with 'chmod 666 /dev/dsp0'. If you have a special sound card set-up, it may be a device like 'dsp1', etc.
Getting TS Up and Running
If you just skipped to this section, shame on you! People more cautious than you had their heads exploded by not following the proper ALSA driver set-up procedures! Anyway, install TS as you normally would, and log-in as a regular user. If you run your box as root, you're living on borrowed time, but, this section still applies.
You have to shut down any sound servers prior to performing this step. You can do this in the KDE control panel for the Sound System by selection 'No audio i/o' and hitting the 'Apply' button. Sometimes artsd still hangs around, so you may have to open up the task list and kill the process manually. Now start up TS. Verify through alsamixer that your mic is the capture device, and is unmuted. Then, open up TS and go into the Sound Input/Output settings. Activate the local test module and speak into your mic. You may have to twiddle the capture devices in order to 'wake up' TS. I've had this problem in both the Windows and Linux clients; If I'm not getting anything, I'll rapidly switch between the mic/capture and maybe, say line-in or CD, and suddenly the TS test module echoes back. Adjust the output and input levels to your liking.
Finally, get on a real TS server (or your own local one). If you see the little orb next to your name, you know that you've gotten somewhere, because TS has deteced an active sound capture device. If you see the muted mic icon, back entirely out of TS and re-verify that your capture devices are unmuted and at reasonable levels, and that artsd, esd or anything other program that may use /dev/dsp is not running (verify in the control panel and the task list). When you connect and see that the orb lights up, ask others on the server to rate your signal, so you can adjust your mic gain (that +20dB boost is really handy).
Good luck!
-
13-02-2004, 05:45 #3
I just wanted to give you a whole-hearted thanks for putting this on here. I needed every bit of the detail you provided in order to carry this out. It has been quite a chore, let me tell you. I've got it working now, though, I believe.
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)


Reply With Quote

