I have managed to get sound working, although the volume is high and cannot be changed from the Recalbox GUI. But too much sound is better than no sound 😉

What I did was this:

Remounted root as writable:

mount -o remount,rw /

Add env var for nano to work:

export TERM=xterm

Created a .asoundrc file:

nano ~/.asoundrc

with the following contents:

pcm.!default {
type plug
slave {
pcm "hdmi:0,3"
}
}
ctl.!default {
type hw
card 0
}

Saved the above file and rebooted from the GUI.

I still didn’t have sound and figured I might need another approach, like directly editing the conf file. Before doing that I went one more time to the GUI and tried selecting each audio output. Lo and behold now hw:0,7 worked!

To see if the settings would stick I rebooted. Sound still worked.

For grins I ssh’d back in and tool a look at ~/.asoundrc. To my surprise it was different than the file that I created. It now contained the hw:0,7 settings that must have come from my audio change in the GUI. Here’s the current contents of ~/.asoundrc:

pcm.!default {
type hw
card 0
device 7
}

ctl.!default {
type hw
card 0
}

Apparently the HDMI device 7 does work on my hardware as long as it’s set as the asla default? Strikes me as odd that I could not get this to work when calling aplay directly.

Anyway it appears that the real issue here is that the absence of a writable ~/.asoundrc file was the problem all along. Making the partition writable and creating this file has now allowed recalbox to be able to successfully write its own contents here and make sound work.

If I'm right about this and Recalbox needs to be able to create and write to the ~/.asoundrc file then this seems like a bug.

I guess I’m happy with this because I have sound. But it’s kind of a pain that the system volume slider is useless. It seems like the PC is now pumping out full volume, so I have to turn the TV sound bar way down when using recalbox.

It would be nice to be able to specify HDMI as the output and be able to control the volume. If anyone has ideas, please let me know. Otherwise I’ll just take what I have as a win.