| news - about me - my system - columns - blackbox styles - projects - licenses - the curse - contact | |||
|
Using FM801 chipset soundcards (Genius SoundMaker Live 5.1) |
|
||
|
path xlife columns 20020118 |
|||
Using FM801 chipset soundcards (Genius SoundMaker Live 5.1)Xlife column for January 18, 2002:Summary: This column has been deprecated by the new one I wrote to catch up with the latest development in the ALSA drivers. Please go read that one instead! This one is here only for backward reference.
1 IntroductionWhen you're dealing with soundcards under Linux you must first make sure there is Linux support for them. If the answer is yes, you have to install drivers; make sure they are recognized by the kernel; use the drivers; configure your card. Usually it's a good idea to use the sndconfig utility, especially on a stock Linux installation. If you're lucky (that is, if your card is supported by the distro by default), it may do most of the above by itself. Even if it doesn't, it may at least provide some useful information about your soundcard, which you can use to further search for info or drivers. On the latest kernels you can also look into the /proc/pci file (if you have a PCI soundcard) or check out the output of the pnpdump command (if you have an ISA soundcard). Locate your card in there and see if there's additional information (like the chipset make) which could be useful. Don't forget to get yourself a copy of the trusted Sound HOWTO and keep it close by. 2 A few things about sound under LinuxSeveral approaches are available. For example, you can use a standalone program, like the esound. Or you can use drivers loaded and handled by the kernel in order to play sound. Such drivers are the OSS (Open Sound System) or the ALSA (Advanced Linux Sound Architecture). Some cards work best with OSS, some with ALSA, although both teams make efforts towards better coverage. 3 Getting the driversI did the above for my Genius SoundMaker card and sndconfig told me it doesn't have the drivers for it, but I should turn to the ALSA Project instead. It also identified my card as being built around a FM801 chipset (this was also in /proc/pci). This is important, since later on I would have to choose a certain driver from all the ones that ALSA provides. As I later discovered, I only needed the alsa-driver package, although there is more to ALSA than just the drivers (including libraries, utilities, tools and a special OSS compatibility package). I downloaded the drivers and unpacked them. 4 Kernel issuesMost important: you need the kernel sources in order to compile the ALSA drivers. Furthermore, it has to be the kernel you're gonna use them with. I usually keep around the kernel sources for the kernel I currently use, in /usr/src/linux. If you don't have them and ALSA complains, it depends on what your system's kernel current status is:
In case you ever need to recompile your kernel and you care at all about this, here's a tip: you only need Sound/Generic support, built as a module. Nothing else. Of course, if you have a stock kernel it comes with this support included, but I just thought you may like to know you can do without the other options in the Sound section of the kernel configuration. Second: since kernel 2.4.16 the file slab.h has apparently deprecated the use of malloc.h, so you'll get warning all over the place when you compile the ALSA drivers. You can either ignore this issue or go looking in the ALSA drivers package for files with this line in them: #include <linux/malloc.h> Replace that malloc.h with slab.h wherever it appears and you'll feel very cool. Plus no more warnings during compilation. 5 Compiling and installing the driversI'll assume you've unpacked the ALSA drivers package into /usr/src/alsa-driver. You need to do the following: $ cd /usr/src/alsa-driver $ ./configure $ make $ make install If it complains about missing kernel sources see above. Before doing make install make sure you're running the kernel you want to use ALSA with, so it will know in which /lib/modules subdirectory to put the drivers in. If it goes OK, you now need to create special devices in /dev for ALSA to use. You accomplish this by doing this: $ cd /usr/src/alsa-driver $ ./snddevices 6 Configuring the soundcardAll you need to do now is load the proper drivers at every system startup. This is done by adding the following lines at the bottom of your /etc/rc.d/rc.local file: modprobe snd-pcm-oss modprobe snd-card-fm801 aumix -L &> /dev/null The modprobe commands will load the drivers, and the aumix command will load the default sound settings (volume levels for various devices). In case you have a program which can use several drivers (like xmms just tell it to use the OSS drivers, since they have been replaced by ALSA now. If you want to adjust the volume levels for various devices use the aumix utility. Remember to save your settings so get written to disk and loaded by rc.local. You'll have to use aumix at least once, since ALSA comes with all volume muted by default. < Back to the top | Read other columns | Choose what column I should write next! > |
|||
|
Xlife ©2001-2009 Zuavra. All rights reserved. You are welcome to link to this site's text pages, but you must get explicit permission before you may reproduce or quote their contents. You may not link directly to binary files, such as images or tarballs. I do keep logs, you know, and offending sites will get their links redirected to shameful error messages. |
|||