No sound (Realtek ALC285)

Continuing the discussion from No sound from internal speaker on Asus laptop - how I can patch the kernel?:

80:1f.3 Multimedia audio controller: Intel Corporation 800 Series ACE (Audio Context Engine) (rev 10)
  Subsystem: ASUSTeK Computer Inc. Device 3f20
  Kernel driver in use: snd_hda_intel
  Kernel modules: snd_sof_pci_intel_mtl, snd_hda_intel

@jaom007 :

I see you are using the legacy snd_hda_intel driver, but your lspci output shows that your sound chip might work with the snd_sof_pci_intel_mtl driver. Have you tried creating a something.conf file under /etc/modprobe.d containing options snd-intel-dspcfg dsp_driver=3 and rebooting your PC? After rebooting, rerun that lspci command to confirm that your PC is using the SOF driver.

I added the file to /etc/modprobe.d with the content options options snd-intel-dspcfg dsp_driver=3 and restarted, but it still doesn’t work. The strange thing is that it does work with headphones, which I don’t understand.

lspci -k
Subsystem: ASUSTeK Computer Inc. Device 3f20
	Kernel driver in use: sof-audio-pci-intel-mtl
	Kernel modules: snd_sof_pci_intel_mtl, snd_hda_intel

Thanks for your reply. Do you have any other ideas?

Have you tried running alsamixer, selecting your sound card (F6), and making sure your speaker output isn’t muted and that the volume is turned up?

If the problem isn’t just the volume settings:

There are “pin out” settings that route the sound to different connections on the board. Sometimes the chips are wired up a little differently on one motherboard versus another.

If you use the snd_hda_intel driver (so undo that earlier change that didn’t work), it accepts parameters to change what wires/pins the sound is routed to. The parameters are listed here:

Unfortunately, you might have to experiment with them a bit to (hopefully) find one that works. Since yours is an ASUS PC, you might try asus-x101 or asus-zenbook first. If neither of those work, you can try others, even if they say they are for Dell or HP or whatever (but stay within the section that is designated for the ALC285 chip), and one of them might work.

To try the settings, you will have to create another file (ending in .conf) under /etc/modprobe.d with a line like the one shown below.

options snd-hda-intel model=asus-zenbook

After you’ve created that file and rebooted your PC, you can use cat /sys/module/snd_hda_intel/parameters/model to verify that your setting is in effect (ignore all the (null) fields unless you have multiple sound devices).

You can read more about all the settings (for the snd-hda-intel driver) and other possible workarounds here:

Yes, the volume is at 100%. I’ve also tried 10 models as you suggested, but without success; it still doesn’t work.

For what it’s worth, when I installed Fedora 43, everything worked at first, and it was only after updating Fedora with the corresponding kernel changes that I realized it stopped working. I have a question: if I boot from the original USB backup, is it possible to recover the original configuration, model, or anything else needed to make it work? And if so, how do I do it?

If you didn’t make any specific configuration changes to make it work, then there probably won’t be anything to recover.

If it worked with the initial kernel that came with Fedora Linux 43, then you should be able to reinstall that by running sudo dnf --repo=fedora downgrade kernel\*. You should also remove those .conf files you added to /etc/modprobe.d to restore the default configuration.

You’ll need to reboot and manually choose the older kernel from the GRUB boot menu to activate it. You can use uname -r to see what Linux kernel your PC is currently running on.

You will probably need to hold the Shift key while booting to get the GRUB boot menu to appear.

As I mentioned, I was lucky enough to install Fedora and have everything work without making any changes. Since the computer was new, I expected to have to make some adjustments, but I was in luck. Well, I tested it by booting from the live USB I used for the initial installation, and the laptop speakers are now working. I’m sending you the information I gathered so you can see what I need to do to configure the driver I had (HDA Intel PCH) and fix the problem.

Best regards.

Current settings:

$ sudo lspci -k
...
80:1f.3 Multimedia audio controller: Intel Corporation 800 Series ACE (Audio Context Engine) (rev 10)
    Subsystem: ASUSTeK Computer Inc. Device 3f20
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd_sof_pci_intel_mtl, snd_hda_intel
...

Setup from the liveUSB:

$ sudo lspci -k
...
80:1f.3 Multimedia audio controller: Intel Corporation Device 7f50 (rev 10)
    Subsystem: ASUSTeK Computer Inc. Device 3f20
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd_sof_pci_intel_mtl, snd_hda_intel
...

Current settings:

$ pactl list sinks
Destino #55
  Estado: RUNNING
  Nombre: alsa_output.pci-0000_80_1f.3.analog-stereo
  Descripción: 800 Series ACE (Audio Context Engine) Estéreo analógico
  Controlador: PipeWire
  EspecificaciĂłn de muestra: s32le 2ch 48000Hz
  Mapa de canales: front-left,front-right
  MĂłdulo propietario: 4294967295
  Silenciado: no
  Volumen: front-left: 19130 /  29% / -32,09 dB,   front-right: 19130 /  29% / -32,09 dB
          balance 0,00
  Volumen base: 65536 / 100% / 0,00 dB
  Fuente del monitor: alsa_output.pci-0000_80_1f.3.analog-stereo.monitor
  Latencia: 0 µs, configurados 0 µs
  Indicadores: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
  Propiedades:
    object.path = "alsa:acp:PCH:7:playback"
    api.alsa.path = "front:1"
    api.alsa.pcm.card = "1"
    api.alsa.pcm.stream = "playback"
    port.group = "playback"
    device.icon_name = "audio-card-analog"
    device.bus = "pci"
    audio.channels = "2"
    audio.position = "FL,FR"
    device.routes = "2"
    alsa.resolution_bits = "16"
    alsa.card = "1"
    alsa.card_name = "HDA Intel PCH"
    alsa.long_card_name = "HDA Intel PCH at 0x8000210000 irq 224"
    alsa.driver_name = "snd_hda_intel"
    alsa.mixer_name = "Realtek ALC285"
    alsa.components = "HDA:10ec0285,10433f20,00100002 HDA:8086281d,80860101,00100000"
    alsa.id = "PCH"
    device.api = "alsa"
    device.class = "sound"
    alsa.class = "generic"
    alsa.subclass = "generic-mix"
    alsa.name = "ALC285 Analog"
    alsa.subdevice = "0"
    alsa.subdevice_name = "subdevice #0"
    alsa.device = "0"
    alsa.sync.id = "00000000:00000000:00000000:00000000"
    device.profile.name = "analog-stereo"
    device.profile.description = "Estéreo analógico"
    card.profile.device = "7"
    device.id = "44"
    factory.name = "api.alsa.pcm.sink"
    node.pause-on-idle = "false"
    priority.driver = "1009"
    priority.session = "1009"
    media.class = "Audio/Sink"
    node.name = "alsa_output.pci-0000_80_1f.3.analog-stereo"
    node.nick = "ALC285 Analog"
    device.description = "800 Series ACE (Audio Context Engine)"
    api.alsa.card.name = "HDA Intel PCH"
    api.alsa.card.longname = "HDA Intel PCH at 0x8000210000 irq 224"
    factory.id = "19"
    clock.quantum-limit = "8192"
    client.id = "42"
    node.driver = "true"
    node.loop.name = "data-loop.0"
    library.name = "audioconvert/libspa-audioconvert"
    object.id = "55"
    object.serial = "55"
    node.max-latency = "16384/48000"
    api.alsa.period-size = "1024"
    api.alsa.period-num = "32"
    api.alsa.headroom = "0"
    device.enum.api = "udev"
    api.alsa.card = "1"
    device.plugged.usec = "6235974"
    device.bus_path = "pci-0000:80:1f.3"
    sysfs.path = "/devices/pci0000:80/0000:80:1f.3/sound/card1"
    device.subsystem = "sound"
    device.vendor.id = "0x8086"
    device.vendor.name = "Intel Corporation"
    device.product.id = "0x7f50"
    device.product.name = "800 Series ACE (Audio Context Engine)"
    device.name = "alsa_card.pci-0000_80_1f.3"
    device.nick = "HDA Intel PCH"
    api.alsa.use-acp = "true"
    api.acp.auto-profile = "false"
    api.acp.auto-port = "false"
    api.dbus.ReserveDevice1.Priority = "-20"
    api.alsa.split-enable = "true"
    api.dbus.ReserveDevice1 = "Audio1"
    spa.object.id = "4"
    device.string = "1"
  Puertos:
    analog-output-speaker: Altavoces (tipo: Altavoz, prioridad: 10000, grupo de disponibilidad: Legacy 2, disponibilidad desconocida)
    analog-output-headphones: Auriculares (tipo: Auriculares, prioridad: 9900, grupo de disponibilidad: Legacy 3, no disponible)
  Puerto Activo: analog-output-speaker
  Formatos:
    pcm

Setup from the liveUSB:

$ pactl list sinks
Sink #55
	State: IDLE
	Name: alsa_output.pci-0000_80_1f.3.analog-stereo
	Description: HDA Intel PCH Analog Stereo
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 61604 /  94% / -1.61 dB,   front-right: 61604 /  94% / -1.61 dB
	        balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor Source: alsa_output.pci-0000_80_1f.3.analog-stereo.monitor
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
	Properties:
		alsa.card = "1"
		alsa.card_name = "HDA Intel PCH"
		alsa.class = "generic"
		alsa.components = "HDA:10ec0285,10433f20,00100002 HDA:8086281d,80860101,00100000"
		alsa.device = "0"
		alsa.driver_name = "snd_hda_intel"
		alsa.id = "ALC285 Analog"
		alsa.long_card_name = "HDA Intel PCH at 0x8000210000 irq 201"
		alsa.mixer_name = "Realtek ALC285"
		alsa.name = "ALC285 Analog"
		alsa.resolution_bits = "16"
		alsa.subclass = "generic-mix"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.sync.id = "00000000:00000000:00000000:00000000"
		api.alsa.card.longname = "HDA Intel PCH at 0x8000210000 irq 201"
		api.alsa.card.name = "HDA Intel PCH"
		api.alsa.path = "front:1"
		api.alsa.pcm.card = "1"
		api.alsa.pcm.stream = "playback"
		audio.channels = "2"
		audio.position = "FL,FR"
		card.profile.device = "7"
		device.api = "alsa"
		device.bus = "pci"
		device.class = "sound"
		device.icon_name = "audio-card-analog"
		device.id = "44"
		device.profile.description = "Analog Stereo"
		device.profile.name = "analog-stereo"
		device.routes = "2"
		factory.name = "api.alsa.pcm.sink"
		media.class = "Audio/Sink"
		device.description = "HDA Intel PCH"
		node.name = "alsa_output.pci-0000_80_1f.3.analog-stereo"
		node.nick = "ALC285 Analog"
		node.pause-on-idle = "false"
		object.path = "alsa:acp:PCH:7:playback"
		port.group = "playback"
		priority.driver = "1009"
		priority.session = "1009"
		factory.id = "19"
		clock.quantum-limit = "8192"
		client.id = "42"
		node.driver = "true"
		node.loop.name = "data-loop.0"
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "55"
		object.serial = "55"
		node.max-latency = "16384/48000"
		api.alsa.period-size = "1024"
		api.alsa.period-num = "32"
		api.alsa.headroom = "0"
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "1"
		api.alsa.split-enable = "true"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio1"
		api.dbus.ReserveDevice1.Priority = "-20"
		device.bus_path = "pci-0000:80:1f.3"
		device.enum.api = "udev"
		device.name = "alsa_card.pci-0000_80_1f.3"
		device.nick = "HDA Intel PCH"
		device.plugged.usec = "24220294"
		device.product.id = "0x7f50"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:80/0000:80:1f.3/sound/card1"
		device.vendor.id = "0x8086"
		device.vendor.name = "Intel Corporation"
		spa.object.id = "4"
		device.string = "1"
	Ports:
		analog-output-speaker: Speakers (type: Speaker, priority: 10000, availability group: Legacy 2, availability unknown)
		analog-output-headphones: Headphones (type: Headphones, priority: 9900, availability group: Legacy 3, not available)
	Active Port: analog-output-speaker
	Formats:
		pcm

Current settings:

Setup from the liveUSB:

I suspect the most important thing is the output from uname -r. Is that different between the working and non-working versions?

You’re right. Sorry, Gregory, I forgot.

Current kernel:

6.19.12-200.fc43.x86_64

liveUSB kernel:

uname -r
6.17.1-300.fc43.x86_64

pls you try kernel 6.19.13 Making sure you're not a bot!

Hi Mark. I’ve updated it, but it’s still the same.

uname -r
6.19.13-200.fc43.x86_64

The settings in GNOME remain the same.

With alsamixer, I can select the device (HDA Intel PCH), but it still doesn’t work because I think it also needs to be changed in the GNOME settings.

Is it possible to force the change in GNOME, or is it more complicated than what I’m suggesting?

Is kernel 6.17.1-300.fc43.x86_64 still available on your system?

You can use the following command to list what kernels are currently installed on your system.

rpm -q kernel

If 6.17.1-300.fc43.x86_64 isn’t listed, then I think you can install it with the following command.

sudo dnf --repo=fedora downgrade kernel\*

Then reboot your system and hold the Shift key while booting and you should see a boot menu that will let you choose the older kernel.

No, I don’t have it; I’ve set it up so that they’re automatically deleted.

rpm -q kernel
kernel-6.19.12-200.fc43.x86_64
kernel-6.19.13-200.fc43.x86_64

Thanks, I’ll try it tomorrow, and then we’ll know if it’s the kernel or something else…

Warm regards to everyone.

you can install any kernel version from the repository updates-archive

$ dnf list --repo=updates-archive --releasever 43 kernel --available --showduplicates 
Updating and loading repositories:
Repositories loaded.
Available packages (available for reinstall, available for upgrade)
kernel.x86_64 6.17.4-300.fc43  updates-archive
kernel.x86_64 6.17.5-300.fc43  updates-archive
kernel.x86_64 6.17.6-300.fc43  updates-archive
kernel.x86_64 6.17.7-300.fc43  updates-archive
kernel.x86_64 6.17.8-300.fc43  updates-archive
kernel.x86_64 6.17.9-300.fc43  updates-archive
kernel.x86_64 6.17.11-300.fc43 updates-archive
kernel.x86_64 6.17.12-300.fc43 updates-archive
kernel.x86_64 6.18.3-200.fc43  updates-archive
kernel.x86_64 6.18.4-200.fc43  updates-archive
kernel.x86_64 6.18.5-200.fc43  updates-archive
kernel.x86_64 6.18.6-200.fc43  updates-archive
kernel.x86_64 6.18.7-200.fc43  updates-archive
kernel.x86_64 6.18.8-200.fc43  updates-archive
kernel.x86_64 6.18.9-200.fc43  updates-archive
kernel.x86_64 6.18.10-200.fc43 updates-archive
kernel.x86_64 6.18.12-200.fc43 updates-archive
kernel.x86_64 6.18.13-200.fc43 updates-archive
kernel.x86_64 6.18.16-200.fc43 updates-archive
kernel.x86_64 6.19.6-200.fc43  updates-archive
kernel.x86_64 6.19.7-200.fc43  updates-archive
kernel.x86_64 6.19.8-200.fc43  updates-archive
kernel.x86_64 6.19.9-200.fc43  updates-archive
kernel.x86_64 6.19.10-200.fc43 updates-archive
kernel.x86_64 6.19.11-200.fc43 updates-archive
kernel.x86_64 6.19.12-200.fc43 updates-archive

try to find the newest working kernel. This could help to find the culprit kernel commit.

Thanks. OK, I’ll try it tomorrow and let you know how it goes…

What is the problem with audio anyway? the alsamixer screenshot looks fine.
Do headphones work? SPDIF (HDMI/DP) is muted.
I guess the internal speakers are not working?

The problem is that I can only test one of them; the others aren’t available to me.


$ dnf list --showduplicates kernel
Updating and fetching repositories:
Repositories fetched.
Packages installed
kernel.x86_64 6.17.1-300.fc43 fedora
kernel.x86_64 6.19.12-200.fc43 updates
kernel.x86_64 6.19.13-200.fc43 updates-testing

Available packages
kernel.x86_64 6.17.1-300.fc43 fedora
kernel.x86_64 6.19.12-200.fc43 updates

Testing the internal speakers with the kernel:

uname -r
6.17.1-300.fc43.x86_64

With kernel 6.17.1-300, the internal speakers do work for me

sudo dnf install fedora-repos-archive
sudo dnf config-manager setopt updates-archive.enabled=0

then install a specific kernel version, also add kernel-devel-<version> and/or kernel-modules-extra-<version> if installed on your system, rpm -qa kernel-devel kernel-modules-extra

i.e.

sudo dnf --enable-repo=updates-archive install kernel-6.18.16-200.fc43 \
   kernel-devel-6.18.16-200.fc43

Update:
does the system have a cirrus amp?
Try updating linux firmware and rebuild initramfs for 6.19.13

cirrus: cs35l41: Add support for new ASUS laptops
cirrus: cs35l56: Add firmware for Cirrus Amps for some ASUS laptops

Well, here are the results: the ones marked “Yes” are the ones where the internal speakers work, and the ones marked “No” are the ones where they don’t.

kernel.x86_64 6.17.4-300.fc43 updates-archive
kernel.x86_64 6.17.5-300.fc43 updates-archive
kernel.x86_64 6.17.6-300.fc43 updates-archive
kernel.x86_64 6.17.7-300.fc43 updates-archive
kernel.x86_64 6.17.8-300.fc43 updates-archive
kernel.x86_64 6.17.9-300.fc43 updates-archive
kernel.x86_64 6.17.11-300.fc43 updates-archive
kernel.x86_64 6.17.12-300.fc43 updates-archive  <- Yes
kernel.x86_64 6.18.3-200.fc43 updates-archive   <- Yes
kernel.x86_64 6.18.4-200.fc43 updates-archive
kernel.x86_64 6.18.5-200.fc43 updates-archive
kernel.x86_64 6.18.6-200.fc43 updates-archive
kernel.x86_64 6.18.7-200.fc43 updates-archive
kernel.x86_64 6.18.8-200.fc43 updates-archive
kernel.x86_64 6.18.9-200.fc43 updates-archive
kernel.x86_64 6.18.10-200.fc43 updates-archive
kernel.x86_64 6.18.12-200.fc43 updates-archive
kernel.x86_64 6.18.13-200.fc43 updates-archive
kernel.x86_64 6.18.16-200.fc43 updates-archive <- Yes
kernel.x86_64 6.19.6-200.fc43 updates-archive  <- Not
kernel.x86_64 6.19.7-200.fc43 updates-archive
kernel.x86_64 6.19.8-200.fc43 updates-archive
kernel.x86_64 6.19.9-200.fc43 updates-archive
kernel.x86_64 6.19.10-200.fc43 updates-archive
kernel.x86_64 6.19.11-200.fc43 updates-archive
kernel.x86_64 6.19.12-200.fc43 updates-archive

have you also tried updating linux firmware? see my Update in the previous post.

also boot 6.18.16 and post output of

sudo dmesg | grep -C1 -E 'ALSA|HDA|HDMI|snd[_-]|sound|audio|hda.codec|hda.intel' 

then repeat with a non working kernel 6.19.12/13

Okay, Mark, could you please tell me how to do that?