User Tools

Site Tools


doc:appunti:linux:tux:alsa

Moduli ALSA

Con kernel 2.6

Con il kernel 2.6 il supporto ALSA è compreso, per sapere quale versione è disponibile nel kernel in uso:

# uname -a
Linux corinto 2.6.17 #1 PREEMPT Sat Nov 11 17:02:46 CET 2006 i686 GNU/Linux
# cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.11rc4 (Wed Mar 22 10:27:24 2006 UTC).

Con kernel 2.4

Il supporto audio ALSA è stato integrato nel kernel ufficiale a partire dalla versione 2.6, prima era necessario installare i sorgenti e compilare i moduli dopo aver compilato il kernel. Ecco la procedura.

Si scelgono i moduli ALSA perché hanno un maggior supporto alle schede audio. Se si è compilato un kernel ad hoc con make-kpkg si procede come segue:

  • Installazione dei pacchetti Debian alsa-source alsa-base e alsa-utils
  • Scompattare /usr/src/alsa-driver.tar.bz2
  • Configurare le opzioni di compilazione con dpkg-reconfigure alsa-source
  • Compilare i moduli e creare il pacchetto Debian:
  cd /usr/src/linux
  make-kpkg --revision=linuxtop.2.3 --added-modules alsa-driver modules_image
  dpkg -i ../alsa-modules-2.4....

I moduli ALSA non vengono caricati da /etc/init.d/alsa come accadeva con Debian Woody, dovrebbe pensarci hotplug. Se questo non è installato basta dichiarare i moduli in /etc/modules. Conviene caricare anche l'emulazione OSS offerta da ALSA con il modulo snd-pcm-oss.

Integrazione in KDE

KDE si avvale del demone aRts al quale le applicazioni si rivolgono per produrre audio, questi provvede a mixare le varie sorgenti. Il problema è che non tutte le applicazioni sono aRts-aware, comunque aRts dovrebbe intercettare le chiamate OSS e ALSA e farle passare in modo trasparente. Il demone aRts si appoggia a sua volta a OSS (originale o all'emulazione fornita da ALSA) per produrre effettivamente il suono.

Impostazione dei livelli volume

Si può utilizzare alsamixer oppure KMix in KDE. Dopo aver impostato i livelli con alsactl store le impostazioni vengono salvate in /var/lib/alsa/asound.state.

Verifica dispositivi audio

Dispositivi di cattura audio, esempio:

arecord --list-devices
**** List of CAPTURE Hardware Devices ****
card 0: PCI [ESS Allegro PCI], device 0: Allegro [Allegro]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: V8237 [VIA 8237], device 0: VIA 8237 [VIA 8237]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: V8237 [VIA 8237], device 1: VIA 8237 [VIA 8237]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

si vede che esistono due schede audio: la card 0 è una ESS Allegro PCI, la card 1 è un chip ALC655 integrato nel chipset VIA 8237. Sulla prima esiste un solo dispositivo di cattura audio: device 0 identificato con il nome generico Allegro, probabilmente corrisponde all'ingresso LINE-IN. Sulla seconda esistono due dispositivi di cattura: device 0 e device 1 entrambi identificati con il nome generico VIA 8237, probabilmente si tratta del LINE-IN e dell'ingresso MIC.

L'elenco dei device audio ALSA si ottiene con:

# cat /proc/asound/devices
  0: [ 0]   : control
  1:        : sequencer
 16: [ 0- 0]: digital audio playback
 24: [ 0- 0]: digital audio capture
 32: [ 1]   : control
 33:        : timer
 48: [ 1- 0]: digital audio playback
 49: [ 1- 1]: digital audio playback
 56: [ 1- 0]: digital audio capture
 57: [ 1- 1]: digital audio capture
doc/appunti/linux/tux/alsa.txt · Last modified: 2006/11/16 09:06 by 127.0.0.1