Next Previous Contents

4. The mainboard integrated soundcard

4.1 The SIS7012 chipset

The SIS7012 chipset implements the AC'97 audio codec. This chipset is integrated in the SIS745 chipset.

SIS provides his own driver for linux, but i didn't try it. You can get it from the download platform : http://download.sis.com/.

4.2 The ALSA (snd-intel8x0) and the OSS (i810_audio) drivers

There are two drivers for the SIS7012 chipset. It seems that there are some problems with the OpenSound System (OSS) i810_audio driver. Personally, I use the Advanced Linux Sound Architecture (ALSA) snd-intel8x0 driver. It works fine.

4.3 Installing the packages

Get the latest version from http://www.alsa-project.org/.

See the ALSA mini-HOWTO from http://www.tldp.org/HOWTO/Alsa-sound.html.

As root, install the package :

[root@localhost /root]# rpm -ivh libalsa-x.x.x-xxx.rpm
[root@localhost /root]# rpm -ivh libalsa-data-x.x.x-xxx.rpm
[root@localhost /root]# rpm -ivh alsa-utils-x.x.x-xxx.rpm

4.4 Configuration files

Edit /etc/modules.conf and add to it the following lines:

# For compatibility with OSS
above snd-pcm-oss snd-seq-oss
above snd-intel8x0 snd-pcm-oss 

#
alias sound-slot-0 snd-intel8x0 

Some Linux distribution like Mandrake Linux have a /etc/sysconfig/alsa file with the following lines:

# Define true if you want the OSS compatibility layer
# to be automatically loaded as well
startosslayer=true

# Define true if you want to unload alsa modules before 
# your system suspneds. This is currently useful if your
# machine is hanged up after resume.
force_stop_modules_before_suspend=false

# Uncomment if you always want to stop alsa modules forcibly in
# /etc/init.d/alsa stop or restart by killing all of running
# applications which use sound devices.
ALSA_KILL_MODE="force"

It defines options for the /etc/rc.d/init.d/alsa script. The startosslayer=true option is equivalent with the two first lines in the /etc/modules.conf.

4.5 Testing the soundcard

As root, load the module :

[root@localhost /root]# modprobe snd-intel8x0

Verify that the modules are well loaded :

[root@localhost /root]# lsmod
Module                  Size  Used by    Not tainted
...
snd-seq-oss            26176   0  (unused)
snd-seq-midi-event      3208   0  [snd-seq-oss]
snd-seq                33264   2  [snd-seq-oss snd-seq-midi-event]
snd-pcm-oss            36932   0  (unused)
snd-mixer-oss           9016   0  [snd-pcm-oss]
snd-intel8x0           10880   0
snd-ac97-codec         25508   0  [snd-intel8x0]
snd-pcm                55808   0  [snd-pcm-oss snd-intel8x0]
snd-timer               9964   0  [snd-seq snd-pcm]
snd-mpu401-uart         2752   0  [snd-intel8x0]
snd-rawmidi            12864   0  [snd-mpu401-uart]
snd-seq-device          3836   0  [snd-seq-oss snd-seq snd-rawmidi]
snd                    24804   0  [snd-seq-oss snd-seq-midi-event snd-seq snd-pcm-oss snd-mixer-oss snd-intel8x0 snd-ac97-codec snd-pcm snd-timer snd-mpu401-uart snd-rawmidi snd-seq-device]
soundcore               3780   0  [snd]
...

A /proc/asound/ directory must have been created, with card0/, dev/ and seq/ subdirectories and oss/ if you specified the OSS compatibility.

[root@localhost /root]# ls /proc/asound
card0/  cards  dev/  devices  oss/  pcm  seq/  timers  version

Active the driver :

[root@localhost /root]# alsactl restore

Now, you can play music !

In the console, use aplay, arecord and alsamixer to set the volumes of each canal.

In graphic mode, use xmms and alsamixergui, a front-end for alsamixer in a additional package.

If everything goes well, run /etc/rc.d/init.d/alsa start at boot-time. This script will automatically load the modules and launch the alsa driver.


Next Previous Contents