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/.
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.
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
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
.
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.