Hi,
I am running Fedora 37 Server aarch64 on a raspberry pi 4 (8gb).
I would like to play music using the 3,5mm jack but Alsa will not recognize this as a sound device.
If I use the F37 Workstation on the rpi4 everything works out of the box but I would like to avoid the overhead of a desktop environment.
If I can just ouput any sound to my speakers using the 3.5mm jack I can probably take it from there.
Previous experience and expectation
I have an install of Fedora 36 Server on a VMWare machine.
There all I had to do was to install the alsa-utils (implicitly also installing alsa-lib and alsa-ucm).
Then I can play a sound with aplay.
I can use alsamixer to control volume and output device.
“aplay --list-devices” lists all my devices.
So this was my expectation when installing F37 Server on my rpi4.
Actual experience
After installing alsa-utils I am unable to play sound with aplay.
Alsamixer says that “This sound device does not have any controls”
Alsamixer and “aplay --list-devices” only lists the hdmi ports as possible devices
Investigations
Firmware/software
Ok, maybe the vmware firmware is more readily supported.
I find and install the alsa-firmware package.
No change.
I install pretty much all alsa-related packages.
No change.
After it was suggested here I also installed the “Audio Production” group.
No change.
Try another distro
So, perhaps there is something wrong with my rpi hardware?
I tried to run the Fedora 37 Workstation on the same rpi4.
This time sound worked out of the box as alsa-utils along with everything else comes preinstalled.
aplay --list-devices now correctly list the bcm2835_headpho device.
Investigate differences between Fedora Server and Workstation aarch64.
Ok, it is not the hw, so if I could modify the Server install to act like the Workstation install?
Now I am out of my depth but a bit of googling led me to the lsmod command and there I can see that the in the Workstation install snd_bcm2835 module is loaded.
Me fumbling in the darkness tries to modprobe the module on the server install. It loads but does not change the situation.
I put a script in /etc/modprobe.d to load it at boot.
No change.
Google is failing me at this moment and I am not sure if learning all the kernel ins and outs will help me in the end.
Future investigations
I will try to install Arch Linux and see if I encounter the same problem there. It easier to see why then but I am afraid that the differences between Arch and Fedora are too great to compare them like this.
I will also try to install Fedora 37 Server on a VM and Fedora 36 Server on the rpi4 to see if the problem exists in this version only.
Current state
My guess is that it has something to do with the snd_bcm2835 module.
Alsa does seems to recognize the hdmi devices without further configuration.
Does the 3.5mm output require special alsa configuration or is it the kernel modules that needs to be setup?
Any help or advice is appreciated!
BR,
Erik Estrada