PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : monitor 2.0 - Soundkartenproblem die 2.



Max K.
15.02.2009, 18:33
Hallo,

wollte monitor heute mal auf meiner NSLU2 mit Debian zum laufen kriegen. Die Soundkarte funktioniert auch soweit.

Starte ich jedoch monitor, sagt er mir:



17:32:12.354 INFO: monitord/Monitor.cpp(108) monitord 2.0svn READY

17:32:12.355 INFO: monitord/Monitor.cpp(205) starting soundcard #0
17:32:12.356 INFO: monitord/SndPipe.cpp(152) creating decoders for soundcard #0
17:32:12.736 ERROR: monitord/posix/MonitorAudioOSS.cpp(54) ioctl: SNDCTL_DSP_SETFMT
17:32:12.737 ERROR: monitord/posix/MonitorAudioOSS.cpp(26) Error initializing PCM device /dev/dsp

Jemand ne Idee?

Danke..

DocSteel
15.02.2009, 20:07
Heißt Dein Sounddevice evtl /dev/dsp0 oder /dev/dsp1?

Prüf das mal

Max K.
15.02.2009, 20:11
Hi,

es gibt nur ein /dev/dsp. Ein cat /dev/urandom >> /dev/dsp funktioniert auch.

dekarl
16.02.2009, 08:30
wollte monitor heute mal auf meiner NSLU2 mit Debian zum laufen kriegen.

17:32:12.736 ERROR: monitord/posix/MonitorAudioOSS.cpp(54) ioctl: SNDCTL_DSP_SETFMT


Auszug aus dem Monitor Quellcode:

sndparam = AFMT_S16_LE; /* we want 16 bits/sample signed */
/* little endian; works only on little endian systems! */
if (ioctl(dev_handle, SNDCTL_DSP_SETFMT, &sndparam) == -1) {
FILE_LOG(logERROR) << "ioctl: SNDCTL_DSP_SETFMT";
return -1;
}

Der Monitor möchte bei OSS gerne 16bit little endian signed stereo lesen mit der von Dir angegebenen Samplerate. (aus der Konfig)

Allerdings scheint es beim Linux OSS Treiber eine Einschränkung zu geben was die Byte Order angeht.
Mein Vorschlag, probiere es doch mal mit ALSA. (Ich dachte das wäre bei Debian eh Standard)

Laut einer Debian NSLU2 FAQ gibt es sowohl eine LE als auch BE Portierung von Debian:

Der Prozessor des NSLU2 kann sowohl in big als auch in little endian arbeiten.
DebianSlug ist die little endian Portierung für die ARM Architektur,
OpenDebianSlug ist der big endian ARM Port. Die offizielle Debian
Paketverwaltung unterstützt nur die little endian ARMs.

Gruß,
Karl

Max K.
21.02.2009, 13:50
Danke für die Antwort,

wenn ich als ALSA-Sounddevice, wie in der Beispielkonfiguration angegeben, "plughw:0,0" angebe, erscheint:


Loglevel: DEBUG
12:47:07.722 INFO: monitord/Monitor.cpp(108) monitord 2.0svn READY

12:47:07.723 INFO: monitord/Monitor.cpp(205) starting soundcard #0
12:47:07.724 INFO: monitord/SndPipe.cpp(152) creating decoders for soundcard #0
12:47:07.726 DEBUG: monitord/SndPipe.cpp(178) creating decoder for soundcard #0 L:ZVEI
12:47:07.911 ERROR: monitord/posix/MonitorAudioOSS.cpp(48) open
12:47:07.912 ERROR: monitord/posix/MonitorAudioOSS.cpp(26) Error initializing PCM device plughw:0,0


/proc/asound/devices:


0: [ 0] : control
1: : sequencer
16: [ 0- 0]: digital audio playback
24: [ 0- 0]: digital audio capture
33: : timer


/proc/asound/cards:

0 [default ]: USB-Audio - USB AUDIO
USB AUDIO at usb-0000:00:01.1-1, full speed


lsmod:

snd_usb_audio 76416 0
snd_pcm_oss 45664 0
snd_mixer_oss 17888 1 snd_pcm_oss
snd_pcm 77960 2 snd_usb_audio,snd_pcm_oss
snd_page_alloc 10408 1 snd_pcm
snd_usb_lib 17344 1 snd_usb_audio
snd_seq_midi 8992 0
snd_seq_midi_event 7648 1 snd_seq_midi
snd_seq 55648 2 snd_seq_midi,snd_seq_midi_event
snd_timer 24164 2 snd_pcm,snd_seq
snd_rawmidi 25888 2 snd_usb_lib,snd_seq_midi
snd_seq_device 8940 3 snd_seq_midi,snd_seq,snd_rawmidi
snd_hwdep 9860 1 snd_usb_audio
snd 52756 10 snd_usb_audio,snd_pcm_oss,snd_mixer_oss,snd_pcm,sn d_seq,snd_timer,snd_rawmidi,snd_seq_device,snd_hwd ep
soundcore 10372 1 snd


Any Ideas?

dekarl
22.02.2009, 03:47
Danke für die Antwort,

wenn ich als ALSA-Sounddevice, wie in der Beispielkonfiguration angegeben, "plughw:0,0" angebe, erscheint:


Loglevel: DEBUG
12:47:07.912 ERROR: monitord/posix/MonitorAudioOSS.cpp(26) Error initializing PCM device plughw:0,0


Any Ideas?

MonitorAudioOSS.cpp ist der OSS Zugriff auf die Soundkarte (z.B. /dev/pcm) für ALSA sollte da schon MonitorAudioALSA.cpp (da passt dann auch plughw:0,0) stehen... was sagt denn ./configure zum Thema ALSA?

DocSteel
22.02.2009, 13:04
Wenn Ihr Alsa nutzen wollt müsst Ihr configure als

./configure --with-alsa

ausführen!

Max K.
22.02.2009, 14:10
Hi,


MonitorAudioOSS.cpp ist der OSS Zugriff auf die Soundkarte (z.B. /dev/pcm) für ALSA sollte da schon MonitorAudioALSA.cpp (da passt dann auch plughw:0,0) stehen...

Sowas habe ich mir schon gedacht :)



was sagt denn ./configure zum Thema ALSA?

Sowohl ./configure als auch ./configure --with-alsa sagen:


NSLU2:/home/max/monitord/monitord# grep -i alsa configure.log
checking for ALSA CFLAGS...
checking for ALSA LDFLAGS... -lasound -lm -ldl -lpthread

Der o.g. Fehler bleibt aber. :(


NSLU2:/home/max/monitord/monitord/monitord/posix# ls
MonitorAudioALSA.cpp MonitorAudioALSA.h MonitorAudioOSS.cpp MonitorAudioOSS.h monitord_monitord-MonitorAudioOSS.o

Edit:

Nachdem ich die MonitorAudioALSA.cpp aus Spaß mal so in den g++ geschmissen habe, kam ne Meldung, dass er "alsa/asoundlib.h" nicht finden könne. Die Datei soll sich in libasound2-dev befinden. Habe das mal installiert und werde den monitord "mal eben" neu kompilieren (Was auf der 266 MHz NSLU gar nicht mal so schnell geht, zum Glück habe ich nicht gentoo installiert :)

Edit 2:

OK, neuer Fehler:


14:41:11.373 INFO: monitord/Monitor.cpp(108) monitord 2.0svn READY

14:41:11.374 INFO: monitord/Monitor.cpp(205) starting soundcard #0
14:41:11.376 INFO: monitord/SndPipe.cpp(152) creating decoders for soundcard #0
14:41:11.377 DEBUG: monitord/SndPipe.cpp(178) creating decoder for soundcard #0L:ZVEI
ALSA lib pcm_params.c:2152:(snd_pcm_hw_refine_slave) Slave PCM not usable
14:41:11.641 ERROR: monitord/posix/MonitorAudioALSA.cpp(62) [ALSA] Can not configure this PCM device plughw:0,0. -22(Invalid argument)
14:41:11.644 ERROR: monitord/posix/MonitorAudioALSA.cpp(16) [ALSA] Error initializing PCM device plughw:0,0
monitord: pcm.c:695: snd_pcm_close: Assertion `pcm' failed.
Aborted

:-(