Archivio

Posts Tagged ‘alsa’

Configurare l’audio in ubuntu server 13.04

settembre 1, 2013 11 commenti

Se si desidera un’ installazione minimale di ubuntu 13.04  si può partire da una mini.iso, da netboot oppure volendo si può anche partire dall’installazione base di ubuntu server e quindi cominciare ad aggiungere i vari pacchetti che possono interessare. Una volta installallato ubuntu una delle funzioni non tipiche di ubuntu server che probabilmente si vorranno avere a dispozione è l’audio. L’installazione minimale prevede l’utilizzo di alsa invece che pulseaudio.

Schede audio

A questo proposito controlliamo dappirma  le schede audio a disposizione con i comandi

cat /proc/asound/cards
 0 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                      HDA ATI HDMI at 0xfdefc000 irq 19
 1 [M2496          ]: ICE1712 - M Audio Audiophile 24/96
                      M Audio Audiophile 24/96 at 0xcf00, irq 21

e

cat /proc/asound/modules
0 snd_hda_intel
1 snd_ice1712

Il secondo comando  può essere utilizzato per visualizzare il nome con cui vengono identificate le interfacce audio.
In questo caso evidenzia che la scheda di default risulta essere la snd_hda_intel .

Se si desidera avere la ice1712 come scheda di default, considerato che nel mio caso  la snd_hda_intel è in relazione con l’ HDMI  della scheda ATI presente., la via più semplice è inserirla nella blacklist.

Per inserirla nella blacklist dei dispositivi editare blacklist.conf

nano /etc/moduleprobe.d/blacklist.conf

e in fondo digitare

...
blacklist snd_hda_intel

Poichè può verificarsi che la scheda integrata sia pure di tipo snd_hda_intel  si può provare ad operare un’azione più selettiva mettendo in blacklist

blacklist snd-hda-codec-hdmi

volendo i moduli in balcklist possono essere gestiti in files separati
del tipo blacklisthdmi.conf.

File di configurazione 

Se si desidera avere la ice1712 come scheda audio di default è possibile anche modificare il file di configurazione di alsa

/usr/share/alsa/alsa.conf

aprire con

nano /usr/share/alsa/alsa.conf
...
defaults.ctl.card 0 
defaults.pcm.card 0

cambiare le due righe riportate sostituendo lo 0 con la scheda che diventerà la default

defaults.ctl.card M2496
defaults.pcm.card M2496

Installazione alsa

adesso passiamo all’installaizone di alsa con

sudo apt-get install alsa

quindi dobbiamo aggiungere l’utente nel gruppo audio

sudo adduser user-current audio

Per avviare alsa

logout (exit) e nuovamente login 
eventualmente
sudo alsa force-reload

Il reboot comunque non è necessario.

Per impostare i volumi della scheda lanciare alsamixer

alsamixer
alsamixer

alsamixer

Per impostare  alsa al volo si può utilizzare il comando amixer.

La sintassi è del tipo:

amixer -c cardid sset channel p%
amixer -c cardid sget channel

Quindi per diminuire di un 10% il volume :

amixer -c 0 sset "Master" 10%-

Check alsa

Oltre al test classico per le uscite stereo

speaker-test -c2

si può testare l’audio con porgrammi da terminale quali mpg123 es:

mpg123 demo.mp3

per installare mpg123

sudo apt-get install mpg123

Per visualizzare le informazioni sul sistema e sull ‘installazione di alsa è displonibile questo utile scritp alsa-info.sh accessibile anche dalla pagina Help To Debug – AlsaProject.

Scaricare, rendere eseguibile avviare

wget http://www.alsa-project.org/alsa-info.sh
chmod +x  alsa-info.sh
./alsa-info.sh

Di seguito la parte inziale dell’articolato e completo output  generato dallo script

upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.4.62
!!################################

!!Script ran on: Wed Sep 285 07:21:27 UTC 2013

!!Linux Distribution
!!------------------
....
!!ALSA Version
!!------------

Driver version:     k3.8.0-30-lowlatency
Library version:    1.0.25
Utilities version:  1.0.25
...
...

Risorse:

Annunci

Informazioni schede audio in linux ubuntu debian

Di seguito alcuni utili comandi per ricercare in un sistema linux le schede audio presenti e altre informazioni relativi ai server audio installati e attivi.

Dispositivi hardware

Per elencare i dispositivi hardware per l’audio si possono utilizzare i comando lspci e lsusb.
Esempio per lspci

lspci | grep Audio
00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Trinity HDMI Audio Controller
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 01)

Un comando più completo per visualizzare le periferiche audio installate con lspci
lspci -v | grep -A7 -i “audio”

lspci -v | grep -A7 -i "audio" 
00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Trinity HDMI Audio Controller
	Subsystem: Micro-Star International Co., Ltd. Device 7793
	Flags: bus master, fast devsel, latency 0, IRQ 63
	Memory at feb44000 (32-bit, non-prefetchable) [size=16K]
	Capabilities: 
	Kernel driver in use: snd_hda_intel

00:03.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 10h-1fh) Processor Root Port (prog-if 00 [Normal decode])
--
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 01)
	Subsystem: Micro-Star International Co., Ltd. Device d793
	Flags: bus master, slow devsel, latency 32, IRQ 16
	Memory at feb40000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: 
	Kernel driver in use: snd_hda_intel

Per ricercare il numero di schede audio presenti:

cat /proc/asound/cards

 cat /proc/asound/cards
 0 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                      HDA ATI HDMI at 0xfeb44000 irq 63
 1 [Generic        ]: HDA-Intel - HD-Audio Generic
                      HD-Audio Generic at 0xfeb40000 irq 16

Per evidenziare come vengono identificate le schede audio installate in base ai moduli caricati. Utile per impostare la scheda di default in alsa, l’eventuale ordine e/o inserimento in blacklist.

cat /proc/asound/modules
 0 snd_hda_intel
 1 snd_ice1712
 2 snd_hda_intel

Per elencare tutti i moduli del kernel in qualche modo collegati ai dispositivi audio presenti:

lsmod | grep “^snd_” | column -t

snd_seq_dummy          12798   1
snd_hda_codec_realtek  51465   1
snd_hda_codec_hdmi     41276   1
snd_hda_intel          48171   6
snd_hda_codec          188738  3  snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel
snd_hwdep              13602   1  snd_hda_codec
snd_pcm                102033  4  snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
snd_page_alloc         18710   2  snd_pcm,snd_hda_intel
snd_seq_midi           13324   0
snd_seq_midi_event     14899   1  snd_seq_midi
snd_rawmidi            30095   1  snd_seq_midi
snd_seq                61560   7  snd_seq_midi_event,snd_seq_dummy,snd_seq_midi
snd_seq_device         14497   4  snd_seq,snd_rawmidi,snd_seq_dummy,snd_seq_midi
snd_timer              29433   2  snd_pcm,snd_seq

blacklist

File per la blacklist
/etc/moduleprobe.d/blacklist.conf

ordinamento 
per ordine e sceglie la scheda di default in alsa
/etc/moduleprobe.d/alsa-base.conf

options snd_ice1712 index=0

Altro comando per elencare il numero di sound cards disponibili

 ls -ld /proc/asound/card* | grep ^d
dr-xr-xr-x 6 root root 0 Oct  7 14:06 /proc/asound/card0
dr-xr-xr-x 6 root root 0 Oct  7 14:06 /proc/asound/card1

Alsa

Alsa ( Audio in Linux: Oss, ALSA, pulseaudio ubuntu linux ) è diventato dalla versione 2.6 del kernel l’interfaccai predefinita nella fornitura di device driver per le schede audio.

Se alsa è installato per verificare  le schede audio riconosciute si può utilizzare il comando aplay -l
Se non viene trovata una scehda audio si otterrà un messagioo del tipo

aplay: device_list:221: no soundcard found...

diversamente si otterrà un elenco del tipo che segue

 aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

II file principale di configurazione si trova in :

/usr/share/alsa/alsa.conf

nel file di configurazione  la scheda di default  è impostata a 0  (la prima individuata )

cat  /usr/share/alsa/alsa.conf
...
defaults.ctl.card 0 
defaults.pcm.card 0  
default.pcm.device   0
...

Per visualizzare le informazioni sul sistema e sull ‘installazione di alsa è displonibile questo utile scritp alsa-info.sh accessibile anche dalla pagina Help To Debug – AlsaProject .

wget http://www.alsa-project.org/alsa-info.sh
chmod +x  alsa-info.sh
./alsa-info.sh

Di seguito la parte inziale dell’articolato e completo output  generato dallo script

upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.4.62
!!################################

!!Script ran on: Wed Sep 285 07:21:27 UTC 2013

!!Linux Distribution
!!------------------
....
!!ALSA Version
!!------------

Driver version:     k3.8.0-30-lowlatency
Library version:    1.0.25
Utilities version:  1.0.25
...
...

Servers audio installati

Per controllare il/i servers audio ( Audio in Linux: Oss, ALSA, pulseaudio ubuntu linux )  installati si può usare per pulseaudio ( Pulseaudio ubuntu ) un comando del tipo :

dpkg -l pulseaudio | grep ii 
ii  pulseaudio                                1:4.0-0ubuntu6                          amd64        PulseAudio sound server

per alsa

 
  dpkg -l alsa | grep ii

Server audio attivo

Verificare quale server audio è attivo con:
ps aux | grep [p]ulseaudio
e
ps aus | grep [a]lsa

Altri Comandi

Per evidenziare specifici dettagli quando è sono noto il modulo legato alla scheda possono essere:

 
cat /proc/interrupts | grep intel
 16:        275        389       1390        606  IR-IO-APIC-fasteoi   snd_hda_intel
 63:         47         48         47         48  IR-PCI-MSI-edge      snd_hda_intel

dmesg | grep -i intel | grep -i hda

dmesg | grep -i intel | grep -i hda
[   15.973396] hda-intel 0000:00:01.1: Using LPIB position fix
[   15.973400] hda-intel 0000:00:01.1: Force to non-snoop mode
[   15.973451] snd_hda_intel 0000:00:01.1: irq 63 for MSI/MSI-X
[   15.976436] hda-intel 0000:00:01.1: Enable sync_write for stable communication
[   15.983220] hda-intel 0000:00:14.2: Using LPIB position fix
[   15.991171] hda-intel 0000:00:14.2: Enable sync_write for stable communication

[SOLVED] Two snd_hda_intel – how to get rid of one?

Problemi:

Se si ottiene No sound/ Dummy Output Only  riavviare il server alsa con

sudo alsa force-reload     

Altro
sudo depmod -a

Nel blog:

Risorse:

Hardware compatibile risorse:

Audio in Linux: Oss, ALSA, pulseaudio ubuntu linux

Linux Audio Stack

Linux Audio Stack

La gestione dell’audio in Linux storicamente ha subito varie evoluzioni.

OSS

Il primo “sistema sonoro” suportato dal Kernel Linux fino alla versione 2.4.x è stato Open Sound System (OSS). L’API del sistema portabile OSS tuttavia soffriva di alcune limitazioni: mancanza di supporto hardware per MIDI, hardware mixing di multipli canali audio, …

ALSA

A partire dalla versione 2.5.x (2002) del Kernel venne introdotto l’Advanced Linux Sound Architecture (ALSA). Questo componente del Kernel dalla versione 2.6.è diventata l’interfaccia predefinita nella fornitura di device driver per le schede audio. Obiettivo di ALSA la configurazione automatica del hardware e un efficace gestione delle schede audio. ALSA prevede una modalità opzionale di emulazione di OSS.  JACK è un completo framework che utilizza ALSA per consentire operazioni di mixing ed editing audio a bassa latenza tipiche del livello professionale. I programmi che operano solo su Linux utilizzano in genere ALSA, quelli che utilizzano altri sistemi linux come BSD sfruttano OSS. ALSA ha un API più complessa di OSS e risolve alcuni dei limiti di OSS consentendo: sintesi MIDI a livello hardware, driver di perifica per l’ambito multiprocessore, mixing hardware di canali multipli, full duplex.
ALSA fornisce una libreria in user space che consente agli sviluppatori di evitare di interagiere con il Kernel in modo diretto.

Tra i pacchetti che potrebbe essere opporuno avere installato  oatre  a alsa-base

  • alsa-utils
  • alsa-tools-gui
  • alsamixer e/o alsamixergui
  • ( gstreamer0.10-alsa )

testare che la funzionalità audio

speaker-test -c 2

alsamixer il mixer da terminale è completo ed efficace

alsamixer

alsamixergui mixer a interfaccia grafica

Pulseaudio

PulseAudio ( già Polyaudio ) è un server audio multipiattaforma (funziona anche in Windows ) usato in alternativa ad ALSA. PulseAudio si appoggia ad ALSA e consente a differenza di quest’ultimo di riprodurre il suono da più fonti audio diverse contemporaneamente  ( pulseaudio ubuntu )

per verificare che sia operativo pulseaudio basta verificare che il pacchetto in questione sia installato

eventualmente digitare

ps fax | grep [p]ulseaudio

Funzionalità

Le principali funzioni di PulseAudio includono:

  • Supporto per fonti audio multiple;
  • Un demone del sistema sonoro ( configurabile da riga di comando);
  • Capacità di sincronizzare molteplici flussi di riproduzione;
  • Una architettura di memoria di tipo zero-copy, per ridurre il carico del processore; Nota ATTENZIONE Che il programma pavucontrol “mangia” risorse di CPU notevoli tenerlo aprto il minimo indispensabile.
  • Capacità di localizzare i computers della rete con PulseAudio, permettendo la riproduzione sugli stessi del flusso audio;
  • Controllo del volume a livello di singola applicazione:
  • Possibilità di cambio al volo  del dispositivo di riproduzione;
  • Funzioni di conversione dei campioni e ricampionamento;
  • Capacità di combinare più schede audio in una sola;
  • Un’interfaccia a riga di comando con capacità di scripting;
  • Supporto ai dispositivi audio bluetooth e al loro riconoscimento;
  • Consente di regolare l’equalizzazione a livello di sistema;
  • Un’architettura di plugin estendibile con supporto ai moduli caricabili;

Jack 

JACK Audio Connection Kit (JACK e un server audio o demone che consente connessioni a bassa latenza per gestire dati sia audio che midi.

Jack è sfruttato dalla gran parte delle applicazioni audio professioni su Linux …

Interfacce audio

Alcuni comandi per elencare le interfacce audio presenti nel sistema in ubuntu debian

:~$ cat /proc/asound/cards
 0 [M2496          ]: ICE1712 - M Audio Audiophile 24/96
                      M Audio Audiophile 24/96 at 0xcf00, irq 21
 1 [USB20MIDI      ]: USB-Audio - USB2.0-MIDI
                      USB2.0-MIDI at usb-0000:00:12.0-2, full speed

cat /proc/asound/modules è il comando da utilizzare per visualizzare il nome con cui vengono identificate le interfacce audio. Questono me si utilizza anche per cambiare la scheda audio di defaul, l’ordine delle stesse,  l’eventuale inserimento in backlist …

cat /proc/asound/modules
0 snd_hda_intel
1 snd_ice1712
2 snd_usb_audio

altro comando per elencare le schede audio pci

lspci -v | grep -A7 -i "audio"
00:14.2 Audio device: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA)
	Subsystem: Giga-byte Technology GA-MA770-DS3rev2.0 Motherboard
	Flags: bus master, slow devsel, latency 32, IRQ 16
	Memory at fe024000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [50] Power Management version 2
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd-hda-intel

--
01:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Cedar HDMI Audio [Radeon HD 5400/6300 Series]
	Subsystem: PC Partner Limited Device aa68
	Flags: bus master, fast devsel, latency 0, IRQ 44
	Memory at fdffc000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [50] Power Management version 3
	Capabilities: [58] Express Legacy Endpoint, MSI 00
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
	Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 
--
03:06.0 Multimedia audio controller: VIA Technologies Inc. ICE1712 [Envy24] PCI Multi-Channel I/O Controller (rev 02)
	Subsystem: VIA Technologies Inc. M-Audio Delta Audiophile 2496
	Flags: bus master, medium devsel, latency 32, IRQ 20
	I/O ports at cf00 [size=32]
	I/O ports at ce00 [size=16]
	I/O ports at cd00 [size=16]
	I/O ports at cc00 [size=64]
	Capabilities: [80] Power Management version 1
	Kernel driver in use: snd_ice1712

Risorse:

Linux Audio Users Guide

installare ppstream in ubuntu 12.04 64 bit

per installare ppstream in Ubuntu 12.04 64 bit facciamo riferimento al file presente nel ppa per ppstream della versione ubuntu lucid

scarichiamo il file con

wget https://launchpad.net/~cnav/+archive/ppa/+files/ppstream_1.0.0-3lucid2_amd64.deb

Prima dell’installazione  controlliamo la presenza dei librerie  ia32-libs per l’architettura i386 nei kernel a 64 bit

sudo dpkg --list ia32-libs* 

se assente installiamo

sudo apt-get install ia32-libs

Adesso installiamo le due librerie seguenti

sudo apt-get install lib32stdc++6 lib32z1

qualora non sia installato mplayer installiamo anche mplayer:  sudo apt-get install mplayer

adesso installiamo ppsrteam player con

sudo dpkg -i ppstream_1.0.0-3lucid2_amd64.deb

ppstream player in ubuntu 12.04 64 bit

ppstream player – ubuntu 12.04 64 bit

Nota: Se dovessero esserci richieste di librerie mancanti conviene installare anche i pacchetti ia32-libs sudo apt-get install ia32-libs

A questo punto manca l’audio:

terza Voce menu (in alto a destra)  > CTRL+O > ultima riga in basso

selezionare <alsa>  l’opzione predefinita <oss>

ppstream audio setting

ppstream audio setting choose alsa

riavviare ppstream player.

E adesso non c’è che da diversi con gli ideogrammi