You are not logged in.
Solution: Install the kernal driver for Cirrus Logic CS8409.
I have installed Arch on a late 2017 iMac. Everything goes fine except the sound. I tried installing the recommended firmware and configured alsa, but it still does not work. PAVU control shows dummy output. Here are the relevant outputs and configurations. (I am somewhat a noob so please correct my silly mistakes if any.)
First I note that I seem to have two sound cards, of which one is the AMD graphics card.
$ cat /proc/asound/cards
0 [HDMI ]: HDA-Intel - HDA ATI HDMI
HDA ATI HDMI at 0x92660000 irq 60
1 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0x92720000 irq 59
$ lspci -v | grep -i audio
00:1f.3 Audio device: Intel Corporation 100 Series/C230 Series Chipset Family HD Audio Controller (rev 31)
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X]
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X]
So I set the /etc/asound.conf files to:
defaults.pcm.card 1
defaults.pcm.device 1
defaults.ctl.card 1
And /etc/modprobe.d/modprobe.conf:
options snd_hda_intel model=imac27 index=1,0
I don't know which model to choose from since the controller seems to be Cirrus Logic CS8409 (checked by alsamixer), which does not appear in HD-Audio Codec-Specific Models.
Here are the outputs by aplay -lL, pacmd list-cards and pacmd list-sinks when a piece of music is playing:
$ aplay -lL
null
Discard all samples (playback) or generate zero samples (capture)
lavrate
Rate Converter Plugin Using Libav/FFmpeg Library
samplerate
Rate Converter Plugin Using Samplerate Library
speexrate
Rate Converter Plugin Using Speex Resampler
jack
JACK Audio Connection Kit
oss
Open Sound System
pipewire
PipeWire Sound Server
pulse
PulseAudio Sound Server
speex
Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix
Plugin for channel upmix (4,6,8)
vdownmix
Plugin for channel downmix (stereo) with a simple spacialization
default
Default ALSA Output (currently PulseAudio Sound Server)
hdmi:CARD=HDMI,DEV=0
HDA ATI HDMI, HDMI 0
HDMI Audio Output
hdmi:CARD=HDMI,DEV=1
HDA ATI HDMI, HDMI 1
HDMI Audio Output
hdmi:CARD=HDMI,DEV=2
HDA ATI HDMI, HDMI 2
HDMI Audio Output
hdmi:CARD=HDMI,DEV=3
HDA ATI HDMI, HDMI 3
HDMI Audio Output
hdmi:CARD=HDMI,DEV=4
HDA ATI HDMI, HDMI 4
HDMI Audio Output
hdmi:CARD=HDMI,DEV=5
HDA ATI HDMI, HDMI 5
HDMI Audio Output
usbstream:CARD=HDMI
HDA ATI HDMI
USB Stream Output
usbstream:CARD=PCH
HDA Intel PCH
USB Stream Output
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 11: HDMI 5 [HDMI 5]
Subdevices: 1/1
Subdevice #0: subdevice #0
$ pacmd list-cards
1 card(s) available.
index: 0
name: <alsa_card.pci-0000_01_00.1>
driver: <module-alsa-card.c>
owner module: 6
properties:
alsa.card = "0"
alsa.card_name = "HDA ATI HDMI"
alsa.long_card_name = "HDA ATI HDMI at 0x92660000 irq 60"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:01:00.1"
sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0"
device.bus = "pci"
device.vendor.id = "1002"
device.vendor.name = "Advanced Micro Devices, Inc. [AMD/ATI]"
device.product.id = "aae0"
device.product.name = "Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X]"
device.string = "0"
device.description = "Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X]"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
profiles:
output:hdmi-stereo: Digital Stereo (HDMI) Output (priority 5900, available: no)
output:hdmi-surround: Digital Surround 5.1 (HDMI) Output (priority 800, available: no)
output:hdmi-surround71: Digital Surround 7.1 (HDMI) Output (priority 800, available: no)
output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output (priority 5700, available: no)
output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2) Output (priority 600, available: no)
output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2) Output (priority 600, available: no)
output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Output (priority 5700, available: no)
output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3) Output (priority 600, available: no)
output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3) Output (priority 600, available: no)
output:hdmi-stereo-extra3: Digital Stereo (HDMI 4) Output (priority 5700, available: no)
output:hdmi-surround-extra3: Digital Surround 5.1 (HDMI 4) Output (priority 600, available: no)
output:hdmi-surround71-extra3: Digital Surround 7.1 (HDMI 4) Output (priority 600, available: no)
output:hdmi-stereo-extra4: Digital Stereo (HDMI 5) Output (priority 5700, available: no)
output:hdmi-surround-extra4: Digital Surround 5.1 (HDMI 5) Output (priority 600, available: no)
output:hdmi-surround71-extra4: Digital Surround 7.1 (HDMI 5) Output (priority 600, available: no)
output:hdmi-stereo-extra5: Digital Stereo (HDMI 6) Output (priority 5700, available: no)
output:hdmi-surround-extra5: Digital Surround 5.1 (HDMI 6) Output (priority 600, available: no)
output:hdmi-surround71-extra5: Digital Surround 7.1 (HDMI 6) Output (priority 600, available: no)
off: Off (priority 0, available: unknown)
active profile: <off>
ports:
hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: no)
properties:
device.icon_name = "video-display"
hdmi-output-1: HDMI / DisplayPort 2 (priority 5800, latency offset 0 usec, available: no)
properties:
device.icon_name = "video-display"
hdmi-output-2: HDMI / DisplayPort 3 (priority 5700, latency offset 0 usec, available: no)
properties:
device.icon_name = "video-display"
hdmi-output-3: HDMI / DisplayPort 4 (priority 5600, latency offset 0 usec, available: no)
properties:
device.icon_name = "video-display"
hdmi-output-4: HDMI / DisplayPort 5 (priority 5500, latency offset 0 usec, available: no)
properties:
device.icon_name = "video-display"
hdmi-output-5: HDMI / DisplayPort 6 (priority 5400, latency offset 0 usec, available: no)
properties:
device.icon_name = "video-display"
Looks like the sound card is running.
pacmd list-sinks
1 sink(s) available.
* index: 0
name: <auto_null>
driver: <module-null-sink.c>
flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: RUNNING
suspend cause: (none)
priority: 1000
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 13.83 ms
max request: 12 KiB
max rewind: 12 KiB
monitor source: 0
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 1
linked by: 1
configured latency: 75.01 ms; range is 0.50 .. 2000.00 ms
module: 16
properties:
device.description = "Dummy Output"
device.class = "abstract"
device.icon_name = "audio-card"
I've been testing this around for several days so I would appreciate any hint/help!!!
Last edited by frankenstein (2022-07-13 11:27:03)
Offline
Which audio-related packages do you have installed?
pacman -Qs | grep "alsa\|pulse\|wire"
I have tried a lot so I have all of these. (Will this cause conflicts?)
local/alsa-card-profiles 1:0.3.54-1
local/alsa-firmware 1.2.4-2
Firmware binaries for loader programs in alsa-tools and hotplug firmware loader
local/alsa-lib 1.2.7.1-1
local/alsa-plugins 1:1.2.7.1-1
local/alsa-topology-conf 1.2.5.1-1
local/alsa-ucm-conf 1.2.7.1-1
local/alsa-utils 1.2.7-1
nl80211 based CLI configuration utility for wireless devices
local/lib32-alsa-lib 1.2.7.1-1
local/lib32-alsa-plugins 1.2.7.1-1
local/lib32-libpulse 16.1-1
local/libpulse 16.1-1
local/pipewire 1:0.3.54-1
local/pulseaudio 16.1-1
local/pulseaudio-alsa 1:1.2.7.1-1
local/pulseaudio-bluetooth 16.1-1
Offline
You'll have to decide between 'pulseaudio' and 'pipewire' and get rid of the other, respectively.
See the wiki for setting them up, e.g. pipewire.
Maybe that'll do to solve your issue...
I use gnome and it seems to depend on both pulseaudio (gnome-settings-daemon depends on it) and pipewire (mutter depends on it), so I cannot get rid of them (maybe?). I remember a long time ago when I used KDE in Arch the sound was also a problem.
Last edited by frankenstein (2022-07-12 13:21:16)
Offline
If you opt for 'pipewire', install 'pipewire-pulse' as well, which will provide/replace 'pulseaudio'...
Last edited by dogknowsnx (2022-07-12 13:32:49)
Installed pipewire but still not working. I suspect the problem would be in the configurations (but shouldn't the drivers work out of the box or only with few tweaks in most cases?).
Output of
pacman -Qs | grep "alsa\|pulse\|wire"
local/alsa-card-profiles 1:0.3.54-1
local/alsa-firmware 1.2.4-2
Firmware binaries for loader programs in alsa-tools and hotplug firmware loader
local/alsa-lib 1.2.7.1-1
local/alsa-plugins 1:1.2.7.1-1
local/alsa-topology-conf 1.2.5.1-1
local/alsa-ucm-conf 1.2.7.1-1
local/alsa-utils 1.2.7-1
nl80211 based CLI configuration utility for wireless devices
local/lib32-alsa-lib 1.2.7.1-1
local/lib32-alsa-plugins 1.2.7.1-1
local/lib32-libpulse 16.1-1
local/libpulse 16.1-1
local/pipewire 1:0.3.54-1
local/pipewire-media-session 1:0.4.1-2
local/pipewire-pulse 1:0.3.54-1.0
local/pulseaudio-alsa 1:1.2.7.1-1
Last edited by frankenstein (2022-07-12 13:45:55)
Offline
If you opt for 'pipewire', install 'pipewire-pulse' as well, which will provide/replace 'pulseaudio'...
Same goes for 'pipewire-alsa' <-> 'pulseaudio-alsa' - please be mindful of the wiki...
Yep I noted that. But I couldn't remove pulseaudio-alsa. When installing pipewire-pulse, pacman substituted pipewire for pulseaudio, but it did not say pulseaudio-alsa was in conflict, and it refused to execute pacman -Rn pulseaudio-alsa with dependency requirements.
Offline
If you try to remove a dependency without replacing it, pacman will protect your system by aborting. Simply install 'pipewire-alsa' and pacman will replace 'pulsaudio-alsa' - reboot and cross fingers
Last edited by dogknowsnx (2022-07-12 13:57:28)
Ah thanks for the pacman information.
However, this still does not work, no sound and dummy output --- I note that /etc/pipewire/pipewire-pulse.conf does not exist (as in PipeWire#No_Sound_or_pactl_info_shows_Failure:_Connection_refused), although ls /etc/pipewire gives
client.conf.d minimal.conf.d pipewire-pulse.conf.d
client-rt.conf.d pipewire.conf.d
(empty directories)
Any more configurations required?
Last edited by frankenstein (2022-07-12 14:15:34)
Offline
Then try and copy the config
#cp -vi /usr/share/pipewire/pipewire-pulse.conf /etc/pipewire/
If still not playing ball, please post the strace...
EDIT: Also
#pacman -Syu
since there's a pipewire update available already...
Last edited by dogknowsnx (2022-07-12 14:31:03)
Here's strace's result.
Offline
No mention of imac 18.2, but maybe worth trying:
https://wiki.archlinux.org/title/IMac_A … work_right
EDIT:
Here's strace's result.
The linked site doesn't open for me
Last edited by dogknowsnx (2022-07-12 15:04:42)
Yep that was tried before. I also tried other models that fit with Cirrus Logic CS8409 more but no hope so far.
Update for strace: How about this link?
https://pastebin.ubuntu.com/p/fkZtNr3476/
Last edited by frankenstein (2022-07-12 15:13:05)
Offline
Yep that was tried before. I also tried other models that fit with Cirrus Logic CS8409 more but no hope so far.
Oops, have missed that one...
EDIT:
https://wiki.archlinux.org/title/Advanc … A_firmware ?
Last edited by dogknowsnx (2022-07-12 15:48:47)
Yep I've also installed sof.
Offline
Try /etc/asound.conf:
defaults.pcm.card 0
defaults.ctl.card 0
EDIT:
I presume you already did
amixer sset Master unmute
amixer sset Speaker unmute
amixer sset Headphone unmute
Last edited by dogknowsnx (2022-07-12 16:00:18)
Yep unmuted but not working.
A clue: Previously I note that amixer sset Speaker unmute gives
amixer: Unable to find simple control 'Speaker',0
The same for Headphone, but Master is fine.
Last edited by frankenstein (2022-07-12 16:13:02)
Offline
You could try a different session manager - it is recommended to use wireplumber in the arch wiki, which comes with/allows for a more finegrained configuration than 'pipewire-media-session'...
pulseaudio or pipewire are completely irrelevant if the device does not appear in aplay -l, if there's no valid ALSA device then neither pulse nor pipewire can access anything.
If you remove the modprobe config as well as the custom asound.conf and reboot what is your output for
aplay -lL
sudo dmesg | grep snd
FWIW while we can look at these outputs, I'm fairly certain this won't be workable without actual kernel changes. There's this repo for an out of tree driver and patches: https://github.com/davidjo/snd_hda_macbookpro no clue how well this works.
Last edited by V1del (2022-07-12 20:20:27)
Offline
FWIW while we can look at these outputs, I'm fairly certain this won't be workable without actual kernel changes. There's this repo for an out of tree driver and patches: https://github.com/davidjo/snd_hda_macbookpro no clue how well this works.
An interesting observation is that I changed to the 4.19 kernel instead today and the dummy output disappeared. However, still no sound.
Last edited by frankenstein (2022-07-13 08:29:21)
Offline
And it was replaced by? Normal default config is to just allocate a dummy output so that application expecting any form of audio device being present don't crash if no valid card can be found. Can you post the aplay/dmesg/pactl outputs from that kernel?
FWIW assuming the HDMI card is always evaluated first the correct way to do that modprobe configuration would be
options snd_hda_intel model=auto,imac27
the index value just assigns the indexes to the cards it finds , it does not actually define which card a certain parameter is applied to.
Last edited by V1del (2022-07-13 10:31:12)
Offline
FWIW while we can look at these outputs, I'm fairly certain this won't be workable without actual kernel changes. There's this repo for an out of tree driver and patches: https://github.com/davidjo/snd_hda_macbookpro no clue how well this works.
This patch definitely works (both in 4.19 and 5.15, I have to switch back to 5.15 because the magic mouse does not work completely in 4.19). I should have searched for Cirrus 8409. Thanks and cheers!!!
(btw Input has not been tested yet.)
Offline