Stable: 2.5.2
Development: 2.6-alpha3
Hi
Just installed Digi+ Pro on my raspberry and set it up. Its working fine in mplayer and cmus but not in MOC. When I try to start moc it only says FATAL_ERROR: No valid sound driver!. The log file:
jan. 11 10:27:06.198742: alsa.c:365 alsa_init_mixer_channel(): ERROR: Can't find mixer PCM
jan. 11 10:27:06.198806: server.c:667 add_event_all(): No events have been added because there are no clients
jan. 11 10:27:06.198827: alsa.c:365 alsa_init_mixer_channel(): ERROR: Can't find mixer Master
jan. 11 10:27:06.198842: server.c:667 add_event_all(): No events have been added because there are no clients
jan. 11 10:27:06.198937: oss.c:207 oss_init(): ERROR: Can't open mixer device /dev/mixer: Ingen slik fil eller fil$
jan. 11 10:27:06.198954: server.c:667 add_event_all(): No events have been added because there are no clients
jan. 11 10:27:06.198987: oss.c:71 open_dev(): ERROR: Can't open /dev/dsp: Ingen slik fil eller filkatalog
jan. 11 10:27:06.199039: server.c:667 add_event_all(): No events have been added because there are no clients
jan. 11 10:27:06.199056: oss.c:87 set_capabilities(): ERROR: Can't open the device.
jan. 11 10:27:06.199071: server.c:667 add_event_all(): No events have been added because there are no clients
jan. 11 10:27:06.199112: audio.c:926 find_working_driver(): FATAL ERROR: No valid sound driver!
pi@raspberrypi:~ $ amixer
Simple mixer control 'Tx Source',0
Capabilities: enum
Items: 'S/PDIF RX' 'AIF'
Item0: 'AIF'
Anybody knows what I'm doing wrong?
tomaszg
Fri, 2019-01-11 12:30
Permalink
You could try to set
You could try to set AlsaMixer1 and AlsaMixer2 to "Tx Source" in MOC config file.
tropih
Fri, 2019-01-11 12:53
Permalink
I tried this
I tried this
ALSADevice = default
ALSAMixer1 = "Tx Source"
#ALSAMixer2 = "Tx Source"
Here is the output from the log file
an 11 13:49:11.918868: main.c:1189 main(): This is Music On Console (version 2.6-alpha3)
Jan 11 13:49:11.919272: main.c:1193 main(): Configured: '--build=arm-linux-gnueabihf' '--prefix=/usr' '--includedir=${prefix}/include' '--$
Jan 11 13:49:11.919341: main.c:1203 main(): Running on: Linux 4.14.79-v7+ armv7l
jan. 11 13:49:11.920645: main.c:1155 log_command_line(): mocp -D --config=/home/pi/.moc/config
jan. 11 13:49:11.921014: main.c:1169 log_popt_command_line(): mocp --debug --config='/home/pi/.moc/config'
jan. 11 13:49:11.988632: decoder.c:703 load_plugins(): Loaded 11 decoders: aac flac modplug mp3 musepack opus sidplay2 sndfile speex vorbi$
jan. 11 13:49:11.990170: server.c:329 server_init(): Starting MOC Server
jan. 11 13:49:11.990582: log.c:233 log_init_stream(): Writing log to: mocp_server_log
jan. 11 13:49:11.990797: server.c:300 log_process_stack_size(): Process's stack size: 8388608
jan. 11 13:49:11.991135: server.c:317 log_pthread_stack_size(): PThread's stack size: 8388608
jan. 11 13:49:11.991219: alsa.c:477 alsa_init(): Initialising ALSA device: default
jan. 11 13:49:11.994604: alsa.c:370 alsa_init_mixer_channel(): ERROR: Mixer device has no playback volume (Tx Source).
jan. 11 13:49:11.994660: server.c:667 add_event_all(): No events have been added because there are no clients
jan. 11 13:49:11.994681: alsa.c:365 alsa_init_mixer_channel(): ERROR: Can't find mixer Master
jan. 11 13:49:11.994697: server.c:667 add_event_all(): No events have been added because there are no clients
jan. 11 13:49:11.994766: audio.c:926 find_working_driver(): FATAL ERROR: No valid sound driver!
So unfortunatly it didn't work.
tomaszg
Fri, 2019-01-11 14:08
Permalink
Right, it seems this mixer
Right, it seems this mixer channel has no volume control and MOC can't use it. Regretfully, MOC for some unknown reason needs a working mixer channel. I believe it should be fixed and it was even discussed some time ago with MOC developer.
For now, as a workaround, you could play with .asoundrc file to create a virtual device with mixer capabilities. Maybe something like that would help: https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture#Dmix https://www.alsa-project.org/main/index.php/Asoundrc#Software_mixing
tropih
Fri, 2019-01-11 15:51
Permalink
Thanks
Thanks
Tried to put
pcm.dsp {
type plug
slave.pcm "dmix"
}
in my asound.conf file but its the same. To bad its such a pain to get it to work as I really like MOC.
tomaszg
Fri, 2019-01-11 21:48
Permalink
I can try to prepare a patch
I can try to prepare a patch for MOC, if you are willing to compile it yourself.
tomaszg
Fri, 2019-01-11 22:37
Permalink
Here's the patch: tomaszg.pl
Here's the patch: tomaszg.pl/moc/tg-no-mixer.patch.gz
You can apply it by zcat tg-no-mixer.patch.gz | patch -p0
It is not perfect but it should do the trick.
tropih
Sat, 2019-01-12 10:14
Permalink
Thanks for your help :)
Thanks for your help :)
I just downloaded it and put it in .moc folder. Ran the command and got this
can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: alsa.c
|===================================================================
|--- alsa.c (revision 2992)
|+++ alsa.c (working copy)
--------------------------
File to patch:
tomaszg
Sat, 2019-01-12 10:43
Permalink
You need to compile MOC from
You need to compile MOC from source code. Grab the current version from SVN as described on the page https://moc.daper.net/download. In that directory run patch command and then follow the rest of compilation instructions. You would need devel versions of many libraries for that to succeed. Sorry but I don't know your platform, so I can't help you with detailed instructions.
tropih
Sat, 2019-01-12 11:11
Permalink
Thanks for taking the time to
Thanks for taking the time to help :)
Right after I posted I figured I had to compile from source code. Many years since I did that last time so have to read a bit I think. It's a raspberry pi 3 b+ with raspbian stretch lite.
tropih
Sat, 2019-01-12 11:34
Permalink
BTW, do I have to remove moc
BTW, do I have to remove moc before I compile?
tomaszg
Sat, 2019-01-12 11:35
Permalink
In general no. You can
In general no. You can install the compiled version in a separate directory. By default it should go to /usr/local/bin, whereas original one is probably at /usr/bin.
Thanatos
Tue, 2019-06-11 10:02
Permalink
Thx for your help
Patched, compiled, using now.
But i have some trouble that i dont understand.
Using MOCP version 2.6.0r2935 with your patch.
I have self-writed daemon named "mocp" in init.d that contains commands "mocp -S && mocp -p" for autostart playing on boot. When I using command "mocp -S" all fine, it's starting, but when using daemon (systemd) autostart, it warns "No valid sound driver". What a difference between start from simple command and systemd?
tomaszg
Tue, 2019-06-11 10:14
Permalink
I don't know how systemd
I don't know how systemd works, but two things come to my mind: firstly, MOC might be launched with other user which might not have permission to access sound card. You might need to add some "sudo -u user xxxx" to your command. Secondly: MOC might try to start before soundsystem is initialized. There's probably some way to ask systemd to start it after ALSA.
tropih
Mon, 2019-01-14 21:05
Permalink
Tried it just now.
Tried it just now.
Downloaded moc-2.5.2.tar.bz2, unpacked it with tar -xvf moc-2.5.2.tar.bz2, copied tg-no-mixer.patch.gz to the new moc-2.5.2 folder, ran zcat tg-no-mixer.patch.gz | patch -p0 in that directory and got this message:
patching file alsa.c
Hunk #1 FAILED at 492.
Hunk #2 FAILED at 778.
Hunk #3 FAILED at 803.
Hunk #4 FAILED at 888.
4 out of 4 hunks FAILED -- saving rejects to file alsa.c.rej
what did I do wrong?
tomaszg
Mon, 2019-01-14 21:15
Permalink
You used old source version.
You used old source version. The patch is supposed to work against current SVN head, i.e. follow the instructions in "Current Development Sources" in download guide (svn co svn://svn.daper.net/moc/trunk and so on).
tropih
Mon, 2019-01-14 22:37
Permalink
Thanks for your help :)
Thanks for your help :)
Downloaded the alpha release, installed youre patch, installed a bunch of stuff and finaly got it working :)
Had to do it a couple of times since I forgot to install some stuff, but now I can play music again :D