Au88x0

From the ALSA wiki

Jump to: navigation, search

All cards based off of the Aureal 88x0 chipsets now have an ALSA driver! For details, please visit http://savannah.nongnu.org/projects/openvortex/


Note: In all of the notes below, you should replace au88x0 with au8830, au8820 or au8810 depending on which driver you have. You may be able to figure it out by looking at /proc/pci but we might want to have Wiki page about this.


Contents

Supported cards

Known supported cards (please add to this list, if the driver works for you as well):

Supported features:

Compile and Install

(NOTE: you can check which soundcard you have by: lspci (or lspci -v if you want more info).)

NB. If you are using cvs then you need to type

./cvscompile

instead of

./configure.

In a shell type these commands:

Make a directory to store the alsa source code in.

cd /usr/src
mkdir alsa
cd alsa
cp /downloads/alsa-* .

Now unzip and install the alsa-driver package

bunzip2 alsa-driver-xxx
tar -xf alsa-driver-xxx
cd alsa-driver-xxx
./configure --with-snd-card=au88x0  --with-sequencer=yes;

(NOTE: you may have to patch 4 make files before you run the make but after you have run configure. I have put the patch and directions for using it at the bottom of this page. It was contributed to alsa-devel mail list by Eric Hathaway. This would also be a good time to read the INSTALL file in the alsa-driver-xxx directory particularly the bits about having kernel-sources installed - check by trying to install them eg in Mdk9.1: urpmi kernel-source - and having sound loaded - do: lsmod to see if it is and: modprobe sound if sound isn't in the list of loaded modules resulting from: lsmod. There is also a section on Troubleshooting which might be of use -it was to me!)

make;make install
./snddevices

Now unzip and install the alsa-lib package

cd ..
bunzip2 alsa-lib-xxx
tar -xf alsa-lib-xxx
cd alsa-lib-xxx
./configure;make;make install

Now unzip and install the alsa-utils package

cd ..
bunzip2 alsa-utils-xxx
tar -xf alsa-utils-xxx
cd alsa-utils-xxx
./configure;make;make install

Loading the modules

Now insert the modules into the kernel space.

modprobe snd-au88x0 ;modprobe snd-pcm-oss;modprobe snd-mixer-oss; modprobe snd-seq-oss

There are a couple of ways to get the modules to load at boottime. One is to modify the /etc/modules.conf (or add a snd-au88x0 file in /etc/modutils for Debian users) and /etc/modules files. You can find more information about /etc/modules.conf at A short explanation of what happens in the /etc/modules.conf file. If you add snd-au88x0 to /etc/modules, it will load automatically on bootup, based on the options you have in /etc/modules.conf.

You can also look at the utils/alsasound file. This script is designed for the RedHat distribution, but it can be used with other distributions which use System V style rc init scripts. This will allow you to load your modules at boot time. Of course if you want to do this you could just compile them into the kernel instead and save yourself the hassle of coming to terms with the rc init scripts.

Default options

I am not exactly sure what the defaults are, so if someone could fill this in, please do.

Module Specific Options

If you want other special driver options, please post to the Savannah Openvortex-dev list.

The module options to fix au88x0 cards on VIA chipsets with a broken PCI implementation are listed below. These are known to work for KT133, PLE133, and Apollo MVP3 chipsets (if you need it for your chipset, please add it to the list!). It reduces crackling and prevents the system from hard-locking when under stress (AGP transfers, heavy processing, massive disk activity, etc.).

For MVP3 chipsets, you might have to force it to use mode 3 (both fixes), as it may not autodetect properly. This is also the case for the PLE133 chipset used on first-generation VIA EPIA motherboards.

The snd-au88?0 module parameter "pcifix" can take the following parameters:


but where's the prameter "pcifix" in alsa-driver module snd-au8830?

# modinfo /lib/modules/2.4.22-ck3/kernel/sound/pci/au88x0/snd-au8830.o
filename:    /lib/modules/2.4.22-ck3/kernel/sound/pci/au88x0/snd-au8830.o
description: "Aureal vortex"
author:      <none>
license:     "GPL"
parm:        index int array (min = 1, max = 8), description "Index value for Aureal Vortex 2 3D Sound Processor soundcard."
parm:        id string array (min = 1, max = 8), description "ID string for Aureal Vortex 2 3D Sound Processor soundcard."
parm:        enable int array (min = 1, max = 8), description "Enable Aureal Vortex 2 3D Sound Processor soundcard."

Other configuration

Now you'll need to adjust your soundcard's volume levels. All mixer channels are muted by default. You must use a native mixer program to unmute appropriate channels, for example alsamixer from the alsa-utils package or alsamixergui, available separately. Using alsamixergui makes it much easier.

MX300 users (and possibly others which should be noted here): You will probably need to set the "External Amplifier Power Down" to On. When this is Off/muted the sound will be much quieter than one would expect -- roughly 1/3 to 1/2 of that of the Windows driver. It can be found near the end of the list in alsamixer. Hit m to un-mute the External channel.

Other solution

Just want to play a few MP3's and only have one sound card?

Please note you should verify all of the following yourself as it is simply a solution which worked for one newbie on one machine with particular linux, cars, alsa drivers and you follow these suggestions at your own risk. If you have more sophisticated setup (eg more than 1 soundcard) or more complicated needs, what follows may not be appropriate for you.

Note: If you have kde 3.1 installed there are files you can test with for:

If you just want to open eg Noatun and play an mp3 and you only have 1 soundcard there are 2 issues when rebooting after you have successfully installed the alsa drivers and devices and heard sound eg by playing midi and mp3s.

  1. you don't want to have to reload all the modules manually and in the right order; and
  2. you don't want to have to open alsamixergui and unmute the master and PCM channels and adjust their volumes.

Solution:

​1. Open /etc/modules as root and add all the modules that you installed using modprobe:

sound (remember you had to have sound loaded before you started installing alsa-driver-0.9.8)
snd-au8820 (or 10 or 30, depending on your soundcard)
snd-pcm-oss
snd-mixer-oss
snd-seq-oss

​2. Once you have opened alsamixergui or otherwise set your unmuting and volumes, do command: alsactl --help You will see that if you do command: alsactl store you will save your values into a configuration file saved at /etc/asound.state You may well be able to edit that file manually once it has been set up initially by: alsactl store

​3. Putting something like the following in your /etc/modules.conf file (in older installations this might be conf.modules):

# ALSA portion
alias snd-card-0 snd-interwave
alias snd-card-1 snd-cmipci
options snd-cmipci id="first" enable_midi="1"

# OSS/Free portion - card #1
alias sound-slot-0 snd-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

Setting up modprobe and kmod support

Before you send a mail complaining that "I don't have /etc/modules.conf, where do I find it ....." ,The /etc/conf.modules has been deprecated with a few distro's so in your case, it may still be /etc/conf.modules. Basically they are both the same, but recent version of modutils uses /etc/modules.conf instead. Nothing to worry about as such, optionally please update to latest version of modutils. This should solve your problem.

Here is an example for an au8830 based card. Copy and paste this to the bottom of your /etc/modules.conf file and change the au8830 to au8810 or au8820 if necessary.

Note to Debian users: You need to save this information into a file -- preferably with the same name as your driver -- in the /etc/modutils/ directory (Eg. /etc/modutils/alsa) and run update-modules. See the modutils package and the update-modules man page. Do any other distributions use this?

# --Sound aliases
# ALSA portion
alias char-major-116 snd
alias snd-card-0 snd-au8830

# sound options should go here

#OSS/Free portion
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-12 snd-pcm-oss

Unresolved Symbols

Other useful info re unresolved symbols at: http://www.mail-archive.com/alsa-devel%40lists.sourceforge.net/msg09813.html

Read the post: [Alsa-devel] aureal driver compile problem and patch From: Carolyn and Eric Hathaway \<10/30/2003>

If you use the CVS files from aureal.soundforge.net instead of the alsa-driver-0.9.8 you may need info re possible need to edit files because of compiler incompatibilities: http://www.mandrakeusers.org/index.php?showtopic=4874&hl=gcc3

For problems with --disable-verbose-printk add to your./configure command eg:

./configure --with-isapnp=no --with-cards=au8820 --with-sequencer=yes --with-oss=yes --disable-verbose-printk

Once the modules are installed following the Quick Install instructions, make the changes to the /etc/modules/conf file as per the link above.

Vortexcontrol

Vortexcontrol - Vortex Control Panel for alsa driver au88x0

http://lists.nongnu.org/archive/html/openvortex-dev/2005-06/pngCc7d96YsiT.png

http://savannah.nongnu.org/support/?func=detailitem&item_id=103017

Note

NOTE: Possible need to patch some make files:

You could check this and apply the patch after running ./configure in the alsa-drivers-xxx file.

To apply the patch you simply opne the makefile referred to in the top of each segment of the patch and add the statements beginning with a + (making sure you get the whole statement including any portion wrapped to the next line. In Mdk 9.1 with KDE3.1 I use FileManager - SU mode to locate the files, right click on them and choose open with Kwrite. I can save when I make the changes that way. If I didn't do it htat way I couldn't save the changes.

--------------- BEGIN PATCH -----------------------
diff -ur alsa-driver-0.9.8/acore/Makefile
alsa-driver-0.9.8-patched/acore/Makefile
--- alsa-driver-0.9.8/acore/Makefile Tue Sep 16 06:14:03 2003
+++ alsa-driver-0.9.8-patched/acore/Makefile Tue Oct 21 22:21:12 2003
@@ -10,6 +10,9 @@
obj-$(CONFIG_SND_SERIALMIDI) += snd-rawmidi.o snd.o
obj-$(CONFIG_SND_MSND_PINNACLE) += snd-pcm.o snd-timer.o snd-page-alloc.o snd.o snd-rawmidi.o
obj-$(CONFIG_SND_USB_US428) += snd-pcm.o snd-timer.o snd-page-alloc.o snd.o snd-rawmidi.o snd-hwdep.o
+obj-$(CONFIG_SND_AU8810) += snd-pcm.o snd-timer.o snd-page-alloc.o snd.o snd-rawmidi.o
+obj-$(CONFIG_SND_AU8820) += snd-pcm.o snd-timer.o snd-page-alloc.o snd.o snd-rawmidi.o
+obj-$(CONFIG_SND_AU8830) += snd-pcm.o snd-timer.o snd-page-alloc.o snd.o snd-rawmidi.o

export-objs := sound.o pcm.o pcm_lib.o rawmidi.o timer.o hwdep.o memalloc.o

diff -ur alsa-driver-0.9.8/acore/seq/Makefile
alsa-driver-0.9.8-patched/acore/seq/Makefile
--- alsa-driver-0.9.8/acore/seq/Makefile Mon Jun 2 09:03:38 2003
+++ alsa-driver-0.9.8-patched/acore/seq/Makefile Tue Oct 21 22:21:20 2003@@ -7,6 +7,9 @@

obj-$(CONFIG_SND_SERIALMIDI) += snd-seq-midi.o snd-seq.o snd-seq-device.o snd-seq-midi-event.o
obj-$(CONFIG_SND_MSND_PINNACLE) += snd-seq-midi.o snd-seq.o snd-seq-device.o snd-seq-midi-event.o
+obj-$(CONFIG_SND_AU8810) += snd-seq-midi.o snd-seq.o snd-seq-device.o snd-seq-midi-event.o snd-seq-instr.o
+obj-$(CONFIG_SND_AU8820) += snd-seq-midi.o snd-seq.o snd-seq-device.o snd-seq-midi-event.o snd-seq-instr.o
+obj-$(CONFIG_SND_AU8830) += snd-seq-midi.o snd-seq.o snd-seq-device.o snd-seq-midi-event.o snd-seq-instr.o

export-objs := seq_device.o seq.o seq_instr.o seq_midi_emul.o \
seq_midi_event.o seq_virmidi.o
diff -ur alsa-driver-0.9.8/drivers/mpu401/Makefile
alsa-driver-0.9.8-patched/drivers/mpu401/Makefile
--- alsa-driver-0.9.8/drivers/mpu401/Makefile Mon Jun 2 09:03:39 2003
+++ alsa-driver-0.9.8-patched/drivers/mpu401/Makefile Tue Oct 21 22:21:36 2003@@ -3,6 +3,10 @@
include $(TOPDIR)/toplevel.config
include $(TOPDIR)/Makefile.conf


+obj-$(CONFIG_SND_AU8810) += snd-mpu401-uart.o
+obj-$(CONFIG_SND_AU8820) += snd-mpu401-uart.o
+obj-$(CONFIG_SND_AU8830) += snd-mpu401-uart.o
+
export-objs  := mpu401_uart.o

TOPDIR = $(MAINSRCDIR)
diff -ur alsa-driver-0.9.8/pci/ac97/Makefile
alsa-driver-0.9.8-patched/pci/ac97/Makefile
--- alsa-driver-0.9.8/pci/ac97/Makefile Sun Feb 9 13:35:57 2003
+++ alsa-driver-0.9.8-patched/pci/ac97/Makefile Tue Oct 21 22:21:49 2003 @@ -3,6 +3,10 @@
include $(TOPDIR)/toplevel.config
include $(TOPDIR)/Makefile.conf


+obj-$(CONFIG_SND_AU8810) += snd-ac97-codec.o
+obj-$(CONFIG_SND_AU8820) += snd-ac97-codec.o
+obj-$(CONFIG_SND_AU8830) += snd-ac97-codec.o
+
export-objs  := ac97_codec.o ak4531_codec.o


TOPDIR = $(MAINSRCDIR)
--------------- END PATCH -----------------------

Questions

This Install Guide doesn't work for at least Linux-kernel-2.6.{0-3}. During ALSA configuration, I got an error; "You have built-in ALSA in your kernel". It might work if the ALSA is disabled during kernel source configuration. That I haven't tried yet. The AU88x0 driver is part of kernel 2.6.5 (and above?). Which makes this Install Guide obsolete. Like my computer. Music sounds tinny to me. 6 Apr 2004 Questions/Comments/Corrections ONLY about this ONE paragraph to : \<jdc843@sccoast.net>

See also

Retrieved from "http://alsa.opensrc.org/Au88x0"

Category: ALSA modules

GITHUB | EDIT