User Tools

Site Tools


doc:appunti:linux:sa:mpd

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:appunti:linux:sa:mpd [2012/08/17 12:24] – created niccolodoc:appunti:linux:sa:mpd [2012/08/17 15:14] (current) – [Test MP3] niccolo
Line 5: Line 5:
 Si possono utilizzare numerosi client, prenderemo in esame un client con interfaccia web (da installare sullo stesso Lacie) e un client per smartphone Android. Si possono utilizzare numerosi client, prenderemo in esame un client con interfaccia web (da installare sullo stesso Lacie) e un client per smartphone Android.
  
-In generale l'installazione dovrebbe essere semplice e automatica, nel nostro caso invece si sono presentati diversi problemi dovuti all'hardware abbastanza esoterico: il Lacie è un [[wp>System on a chip]] Armel, sul quale abbiamo installato una scheda audio USB. Il kernel è un 2.6.32 appositamente compilato (è previsto un aggiornamento alla versione 3), la distribuzione una Debian Sarge.+In generale l'installazione dovrebbe essere semplice e automatica, nel nostro caso invece si sono presentati diversi problemi dovuti all'hardware abbastanza esoterico: il Lacie è un [[wp>System on a chip]] [[wp>ARM_architecture|ARM]], sul quale abbiamo installato una scheda audio USB. Il kernel è un 2.6.32 appositamente compilato (è previsto un aggiornamento alla versione 3), la distribuzione una Debian Sarge. 
 + 
 +===== Configurazione del server ===== 
 + 
 +==== Sistema audio ALSA ==== 
 + 
 +Anzitutto conviene verificare che il sottositema audio funzioni a dovere. L'hardware audio viene supportato dai **driver ALSA** inclusi nel kernel, ma noi vogliamo anche la **compatibilità con il vecchio sistema OSS** (vedremo poi il perché). 
 + 
 +Dopo il boot verifichiamo che una scheda audio sia stata rilevata e che i moduli kernel siano stati caricati: 
 + 
 +<code> 
 +lsusb  
 +Bus 001 Device 002: ID 0c76:1607 JMTek, LLC. audio controller 
 +... 
 +</code> 
 + 
 +<code> 
 +lsmod | grep snd 
 +snd_usb_audio 
 +snd_pcm 
 +snd_usb_lib 
 +snd_hwdep 
 +snd 
 +soundcore 
 +usbcore 
 +... 
 +</code> 
 + 
 +Questa è la "vista" dell'hardware audio da parte del sistema ALSA; elenco conciso delle schede audio: 
 + 
 +<code> 
 +cat /proc/asound/cards  
 + 1 [Set            ]: USB-Audio - USB Headphone Set 
 +                      USB Headphone Set at usb-orion-ehci.0-1, full speed 
 +</code> 
 + 
 +elenco delle schede audio e di tutti i device audio digitali: 
 + 
 +<code> 
 +aplay -l 
 +**** List of PLAYBACK Hardware Devices **** 
 +card 1: Set [USB Headphone Set], device 0: USB Audio [USB Audio] 
 +  Subdevices: 0/1 
 +  Subdevice #0: subdevice #0 
 +</code> 
 + 
 +elenco dei dispositivi capaci di riprodurre audio [[wp>Pulse-code_modulation|PCM]]: 
 + 
 +<code> 
 +aplay -L 
 +null 
 +    Discard all samples (playback) or generate zero samples (capture) 
 +front:CARD=Set,DEV=0 
 +    USB Headphone Set, USB Audio 
 +    Front speakers 
 +surround40:CARD=Set,DEV=0 
 +    USB Headphone Set, USB Audio 
 +    4.0 Surround output to Front and Rear speakers 
 +surround41:CARD=Set,DEV=0 
 +    USB Headphone Set, USB Audio 
 +    4.1 Surround output to Front, Rear and Subwoofer speakers 
 +surround50:CARD=Set,DEV=0 
 +    USB Headphone Set, USB Audio 
 +    5.0 Surround output to Front, Center and Rear speakers 
 +surround51:CARD=Set,DEV=0 
 +    USB Headphone Set, USB Audio 
 +    5.1 Surround output to Front, Center, Rear and Subwoofer speakers 
 +surround71:CARD=Set,DEV=0 
 +    USB Headphone Set, USB Audio 
 +    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers 
 +iec958:CARD=Set,DEV=0 
 +    USB Headphone Set, USB Audio 
 +    IEC958 (S/PDIF) Digital Audio Output 
 +</code> 
 + 
 +Il problema principale è che alla scheda audio **viene assegnato l'identificativo #1**, mentre tutti i programmi Alsa per impostazione predefinita usano la scheda #0. 
 +==== Test ALSA ==== 
 + 
 +Il **primo problema** lo incontriamo con il comando **''aplay''** che non sa quale dispositivo audio utilizzare: 
 + 
 +<code> 
 +aplay /usr/share/sounds/alsa/Front_Center.wav 
 +ALSA lib confmisc.c:768:(parse_card) cannot find card '0' 
 +ALSA lib conf.c:4170:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory 
 +ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings 
 +ALSA lib conf.c:4170:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory 
 +ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name 
 +ALSA lib conf.c:4170:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory 
 +ALSA lib conf.c:4649:(snd_config_expand) Evaluate error: No such file or directory 
 +ALSA lib pcm.c:2190:(snd_pcm_open_noupdate) Unknown PCM default 
 +aplay: main:654: audio open error: No such file or directory 
 +</code> 
 + 
 +Specificando il dispositivo si ha un miglioramento, ma resta il **problema del numero di canali**: il file audio è mono, mentre il device è stereo: 
 + 
 +<code> 
 +aplay --device='front:CARD=Set,DEV=0' /usr/share/sounds/alsa/Front_Center.wav 
 +Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono 
 +aplay: set_params:1059: Channels count non available 
 +</code> 
 + 
 +Lo stesso identico risultato si ottiene usando **''hw:1,0''** (scheda audio #1, device #0) al posto della stringa descrittiva ''CARD=Set,DEV=0''
 + 
 +Anche il **mixer Alsa** non funziona alla prima: 
 + 
 +<code> 
 +alsamixer  
 +cannot open mixer: No such file or directory 
 +</code> 
 + 
 +La soluzione a tutti i problemi è creare un file di configurazione **''/etc/asound.conf''**: 
 + 
 +<file> 
 +# Give an alias to PCM device hw:1,0 (card 1, device 0): 
 +pcm.def_pcm { 
 +    type hw 
 +    card 1 
 +    device 0 
 +
 +# Default (virtual) PCM device goes through the "plug" plugin (which does 
 +# rate and channels resampling on-the-fly) to the real PCM device: 
 +pcm.!default { 
 +    type plug 
 +    slave { 
 +        pcm def_pcm 
 +    } 
 +
 +# Default control (e.g. for mixer) is card 1: 
 +ctl.!default { 
 +    type hw 
 +    card 1 
 +</file> 
 + 
 +Il file di configurazione vale per tutto il sistema, il singolo utente può crearsi un ''.asoundrc'' alternativo. Viene utilizzato per definire alias, device virtuali che combinano funzioni di pre o post-processing, ... In generale non dovrebbe essere necessario, vedere la [[http://alsa.opensrc.org/.asoundrc|documentazione relativa]]. 
 + 
 +==== Test MP3 ==== 
 + 
 +Dopo che il sistema Alsa è stato configurato e collaudato, è possibile testare il funzionamento del decoding mp3: 
 + 
 +<code> 
 +mpg321 -o alsa track001.mp3 
 +</code> 
 + 
 +nel nostro caso specifico ci sono dei problemi di qualità: l'audio è disturbato e di pessima qualità. 
 +===== MP Client ===== 
 + 
 +==== Client per Android ==== 
 + 
 +  * [[http://mpd.wikia.com/wiki/Client:Bitmpc|Bitmpc]] 
 +  * [[http://mpd.wikia.com/wiki/Client:Droidmpdclient|Droidmpdclient]] 
 +  * [[http://mpd.wikia.com/wiki/MPDriod|MPDriod]]
doc/appunti/linux/sa/mpd.1345199042.txt.gz · Last modified: 2012/08/17 12:24 by niccolo