alsa-ucm-conf icon indicating copy to clipboard operation
alsa-ucm-conf copied to clipboard

pulseaudio can't load configuration for snd_hda_intel

Open hzhuang1 opened this issue 3 years ago • 6 comments

In v1.2.2, the content of HDA-Intel.conf is in below. v1.2.2 is widely used, such as in ubuntu 20.04.

Syntax 3
  
Define.Use ""  # a non-empty string to use UCM configuration for HDA devices

Define.AcpCardId "$${CardIdByName:acp}"

With this content, pulseaudio can't load configuration from UCM. Then I tried to edit the content. Change it to

Define.Use "2"

or

Define.Use "3"

Pulseaudio worked with "options snd-hda-intel probe_mask=1" on DELL laptop.

My question is what's the real meaning of Define.Use at here. Why the default value of Define.Use is empty string? Even in latest code, the Define.Use is also an empty string.

hzhuang1 avatar Jun 10 '21 12:06 hzhuang1

Empty Use means fallback to the legacy configuration (no UCM). Why do you need UCM config for your hardware?

perexg avatar Jun 10 '21 14:06 perexg

With Define.Use "", the log of "pacmd list-cards" is in below.

hzhuang1@E7270:~$ pacmd list-cards
1 card(s) available.
    index: 0
	name: <alsa_card.pci-0000_00_1f.3>
	driver: <module-alsa-card.c>
	owner module: 7
	properties:
		alsa.card = "0"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0xe1348000 irq 135"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1f.3"
		sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "9d70"
		device.product.name = "Sunrise Point-LP HD Audio"
		device.form_factor = "internal"
		device.string = "0"
		device.description = "Built-in Audio"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	profiles:
		input:analog-stereo: Analog Stereo Input (priority 60, available: unknown)
		output:analog-stereo: Analog Stereo Output (priority 6000, available: no)
		output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (priority 6060, available: no)
		off: Off (priority 0, available: unknown)
	active profile: <input:analog-stereo>
	sources:
		alsa_input.pci-0000_00_1f.3.analog-stereo/#0: Built-in Audio Analog Stereo
	ports:
		B-analog-output-lineout: Line Out (priority 9900, latency offset 0 usec, available: no)
			properties:
				
hzhuang1@E7270:~$ 

With Define.Use "3", the log of "pacmd list-cards" is in below.

hzhuang1@E7270:~$ pacmd list-cards
1 card(s) available.
    index: 0
	name: <alsa_card.pci-0000_00_1f.3>
	driver: <module-alsa-card.c>
	owner module: 7
	properties:
		alsa.card = "0"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0xe1348000 irq 135"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1f.3"
		sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "9d70"
		device.product.name = "Sunrise Point-LP HD Audio"
		device.form_factor = "internal"
		device.string = "0"
		device.description = "Built-in Audio"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	profiles:
		HiFi: Play HiFi quality Music (priority 8000, available: unknown)
		off: Off (priority 0, available: unknown)
	active profile: <HiFi>
	sinks:
		alsa_output.pci-0000_00_1f.3.HiFi__hw_PCH__sink/#0: Built-in Audio Speaker + Headphones
	sources:
		alsa_output.pci-0000_00_1f.3.HiFi__hw_PCH__sink.monitor/#0: Monitor of Built-in Audio Speaker + Headphones
		alsa_input.pci-0000_00_1f.3.HiFi__hw_PCH__source/#1: Built-in Audio Headphones Stereo Microphone
	ports:
		[Out] Speaker: Speaker (priority 100, latency offset 0 usec, available: unknown)
			properties:
				
		[Out] Headphones: Headphones (priority 200, latency offset 0 usec, available: yes)
			properties:
				
		[In] Mic2: Headphones Stereo Microphone (priority 200, latency offset 0 usec, available: unknown)
			properties:
				
hzhuang1@E7270:~$ 

For the default configuration, pulseaudio can't work at all.

hzhuang1 avatar Jun 10 '21 14:06 hzhuang1

Then the pulseaudio legacy config probably didn't find the right controls. You may check the pulseaudio verbose output and modify /usr/share/pulseaudio/alsa-mixer/paths/ config to detect your hardware.

It's possible to add support for all HDA hardware to UCM, but there's no ETA.

perexg avatar Jun 10 '21 14:06 perexg

Then the pulseaudio legacy config probably didn't find the right controls. You may check the pulseaudio verbose output and modify /usr/share/pulseaudio/alsa-mixer/paths/ config to detect your hardware.

OK. I'll try it.

It's possible to add support for all HDA hardware to UCM, but there's no ETA.

Excuse me, what does ETA stand for at here? I'm not familiar with the abbreviation.

hzhuang1 avatar Jun 10 '21 14:06 hzhuang1

It's possible to add support for all HDA hardware to UCM, but there's no ETA.

Excuse me, what does ETA stand for at here? I'm not familiar with the abbreviation.

I meant this: https://www.allacronyms.com/ETA/Estimated_Time_of_Availability

perexg avatar Jun 10 '21 14:06 perexg

I restored to Define.Use "". Then I found that pulseaudio is trying to parse /usr/share/pulseaudio/alsa-mixer/profile-sets/B-default.conf without UCM from verbose log. And there's default.conf in the same directory.

If I removed B-default.conf, pulseaudio can't work. I have to create a symbol link from default.conf to B-default.conf instead. Then it works.

Thanks for your suggestion. By the way, do you know why pulseaudio tries to parse B-default.conf?

hzhuang1 avatar Jun 11 '21 01:06 hzhuang1