You are not logged in.
I have monitor with built-in speakers connected to laptop via HDMI, and recently found out that this script ceased to work though it used to with another monitor on the same laptop
./hdmi-sound-toggle.sh
Couldn't get a file descriptor referring to the console.
card0-DP-1 connected
card0-eDP-1 connected
selecting output hdmi-stereo
Failure: No such entityAfter some debugging it turned out that my system can't even detect built-in laptop speakers
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7However system does detect newly connected devices (USB and bluetooth headphones) and they work properly.
$ sudo fuser -v /dev/snd/*
USER PID ACCESS COMMAND
/dev/snd/controlC0: andrhua 4695 F.... pulseaudio
/dev/snd/pcmC0D0p: andrhua 4695 F...m pulseaudio$ lspci | grep Audio
00:1f.3 Audio device: Intel Corporation 100 Series/C230 Series Chipset Family HD Audio Controller (rev 31)$ pacmd list-cards
2 card(s) available.
index: 0
name: <alsa_card.platform-snd_aloop.0>
driver: <module-alsa-card.c>
owner module: 6
properties:
alsa.card = "0"
alsa.card_name = "Loopback"
alsa.long_card_name = "Loopback 1"
alsa.driver_name = "snd_aloop"
device.bus_path = "platform-snd_aloop.0"
sysfs.path = "/devices/platform/snd_aloop.0/sound/card0"
device.form_factor = "internal"
device.string = "0"
device.description = "Built-in Audio"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card"
profiles:
input:analog-stereo: Analog Stereo Input (priority 65, available: unknown)
output:analog-stereo: Analog Stereo Output (priority 6500, available: unknown)
output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (priority 6565, available: unknown)
output:analog-surround-21: Analog Surround 2.1 Output (priority 1300, available: unknown)
output:analog-surround-21+input:analog-stereo: Analog Surround 2.1 Output + Analog Stereo Input (priority 1365, available: unknown)
output:analog-surround-40: Analog Surround 4.0 Output (priority 1200, available: unknown)
output:analog-surround-40+input:analog-stereo: Analog Surround 4.0 Output + Analog Stereo Input (priority 1265, available: unknown)
output:analog-surround-41: Analog Surround 4.1 Output (priority 1300, available: unknown)
output:analog-surround-41+input:analog-stereo: Analog Surround 4.1 Output + Analog Stereo Input (priority 1365, available: unknown)
output:analog-surround-50: Analog Surround 5.0 Output (priority 1200, available: unknown)
output:analog-surround-50+input:analog-stereo: Analog Surround 5.0 Output + Analog Stereo Input (priority 1265, available: unknown)
output:analog-surround-51: Analog Surround 5.1 Output (priority 1300, available: unknown)
output:analog-surround-51+input:analog-stereo: Analog Surround 5.1 Output + Analog Stereo Input (priority 1365, available: unknown)
output:analog-surround-71: Analog Surround 7.1 Output (priority 1200, available: unknown)
output:analog-surround-71+input:analog-stereo: Analog Surround 7.1 Output + Analog Stereo Input (priority 1265, available: unknown)
off: Off (priority 0, available: unknown)
active profile: <output:analog-stereo+input:analog-stereo>
sinks:
alsa_output.platform-snd_aloop.0.analog-stereo/#0: Built-in Audio Analog Stereo
sources:
alsa_output.platform-snd_aloop.0.analog-stereo.monitor/#0: Monitor of Built-in Audio Analog Stereo
alsa_input.platform-snd_aloop.0.analog-stereo/#1: Built-in Audio Analog Stereo
ports:
analog-input: Analog Input (priority 10000, latency offset 0 usec, available: unknown)
properties:
analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
properties:
index: 1
name: <alsa_card.platform-snd_aloop.0.2>
driver: <module-alsa-card.c>
owner module: 29
properties:
alsa.card = "0"
alsa.card_name = "Loopback"
alsa.long_card_name = "Loopback 1"
alsa.driver_name = "snd_aloop"
device.bus_path = "platform-snd_aloop.0"
sysfs.path = "/devices/platform/snd_aloop.0/sound/card0"
device.form_factor = "internal"
device.string = "0"
device.description = "Built-in Audio"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card"
profiles:
input:analog-stereo: Analog Stereo Input (priority 65, available: unknown)
output:analog-stereo: Analog Stereo Output (priority 6500, available: unknown)
output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (priority 6565, available: unknown)
output:analog-surround-21: Analog Surround 2.1 Output (priority 1300, available: unknown)
output:analog-surround-21+input:analog-stereo: Analog Surround 2.1 Output + Analog Stereo Input (priority 1365, available: unknown)
output:analog-surround-40: Analog Surround 4.0 Output (priority 1200, available: unknown)
output:analog-surround-40+input:analog-stereo: Analog Surround 4.0 Output + Analog Stereo Input (priority 1265, available: unknown)
output:analog-surround-41: Analog Surround 4.1 Output (priority 1300, available: unknown)
output:analog-surround-41+input:analog-stereo: Analog Surround 4.1 Output + Analog Stereo Input (priority 1365, available: unknown)
output:analog-surround-50: Analog Surround 5.0 Output (priority 1200, available: unknown)
output:analog-surround-50+input:analog-stereo: Analog Surround 5.0 Output + Analog Stereo Input (priority 1265, available: unknown)
output:analog-surround-51: Analog Surround 5.1 Output (priority 1300, available: unknown)
output:analog-surround-51+input:analog-stereo: Analog Surround 5.1 Output + Analog Stereo Input (priority 1365, available: unknown)
output:analog-surround-71: Analog Surround 7.1 Output (priority 1200, available: unknown)
output:analog-surround-71+input:analog-stereo: Analog Surround 7.1 Output + Analog Stereo Input (priority 1265, available: unknown)
off: Off (priority 0, available: unknown)
active profile: <output:analog-stereo+input:analog-stereo>
sinks:
alsa_output.platform-snd_aloop.0.analog-stereo.2/#4: Built-in Audio Analog Stereo
sources:
alsa_output.platform-snd_aloop.0.analog-stereo.2.monitor/#5: Monitor of Built-in Audio Analog Stereo
alsa_input.platform-snd_aloop.0.analog-stereo.2/#6: Built-in Audio Analog Stereo
ports:
analog-input: Analog Input (priority 10000, latency offset 0 usec, available: unknown)
properties:
analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
properties:Last edited by andrhua (2020-12-23 12:55:35)
Offline
And these snd_aloops come from where exactly? What's your ALSA configuration? What's your
dmesg | grep sndOffline
I don't remember editing ALSA config, and both /etc/asound.conf and ~/.asoundrc don't exist.
One of lines of dmesg was
snd_hda_intel 0000:00:1f.3: cannot find the slot for index 0Searching this gave a hint to edit etc/modprobe.d/alsa-base.conf
from
options snd_hda_intel index=0 model=dell-headset-multito
options snd_hda_intel position_fix=2 model=dell-headset-multiNow HDMI output works, but laptop speakers don't.
$ dmesg | grep snd
[ 2.743637] snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
[ 2.743660] snd_hda_intel 0000:00:1f.3: enabling device (0000 -> 0002)
[ 4.323121] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[ 4.373156] Modules linked in: iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c iptable_mangle iptable_filter nls_iso8859_1 nls_cp437 vfat fat x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm joydev mousedev iwlmvm irqbypass iTCO_wdt intel_pmc_bxt dell_laptop crct10dif_pclmul hid_multitouch crc32_pclmul iTCO_vendor_support mei_hdcp ghash_clmulni_intel ledtrig_audio mac80211 dell_wmi intel_rapl_msr dell_smbios dcdbas dell_wmi_descriptor mxm_wmi i915 aesni_intel wmi_bmof libarc4 crypto_simd cryptd dell_smm_hwmon snd_hda_intel glue_helper iwlwifi snd_intel_dspcfg rapl r8169 intel_cstate i2c_algo_bit snd_hda_codec realtek intel_uncore cfg80211 psmouse input_leds snd_hda_core pcspkr i2c_i801 mdio_devres i2c_smbus snd_hwdep drm_kms_helper of_mdio fixed_phy mei_me rfkill libphy cec rc_core mei intel_gtt intel_lpss_pci syscopyarea intel_lpss processor_thermal_device idma64 sysfillrect intel_rapl_common sysimgblt intel_pch_thermal intel_soc_dts_iosf fb_sys_fops
[ 4.373181] tpm_crb battery i2c_hid intel_hid tpm_tis sparse_keymap int3403_thermal tpm_tis_core int3400_thermal wmi acpi_thermal_rel tpm int3402_thermal rng_core int340x_thermal_zone evdev ac mac_hid pkcs8_key_parser snd_aloop snd_pcm snd_timer snd soundcore v4l2loopback_dc(OE) drm videodev fuse mc crypto_user agpgart ip_tables x_tables hid_generic ext4 usbhid hid crc32c_generic crc16 mbcache jbd2 serio_raw atkbd libps2 crc32c_intel xhci_pci xhci_pci_renesas xhci_hcd i8042 serio
[ 4.421052] snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC3246: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker
[ 4.421055] snd_hda_codec_realtek hdaudioC1D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 4.421056] snd_hda_codec_realtek hdaudioC1D0: hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[ 4.421057] snd_hda_codec_realtek hdaudioC1D0: mono: mono_out=0x0
[ 4.421058] snd_hda_codec_realtek hdaudioC1D0: inputs:
[ 4.421060] snd_hda_codec_realtek hdaudioC1D0: Headset Mic=0x19
[ 4.421061] snd_hda_codec_realtek hdaudioC1D0: Headphone Mic=0x1a
[ 4.421062] snd_hda_codec_realtek hdaudioC1D0: Internal Mic=0x12
[ 4.511236] snd_hda_codec_hdmi hdaudioC1D2: Monitor plugged-in, Failed to power up codec ret=[-13]
[ 5.938673] usbcore: registered new interface driver snd-usb-audioI don't actually care about laptop speakers, so I'll mark thread as solved, thanks V1del for help.
Here's info on position_fix and discussion on bugzilla for those who will encounter a decade old bug.
Last edited by andrhua (2020-12-23 12:59:02)
Offline
You misunderstand what position_fix is doing and it's not the fix to your problem. Your problem is that you are loading snd_aloop and have hardcoded index=0 in your snd_hda_intel line which then goes into a fight with snd_aloop on who gets there first. If you don't care which index it's ending up on just leave the index parameter away (... and don't add the position_fix) and it should work out for both.
Offline
Thanks for the remark, but removing position_fix hasn't fixed laptop speakers, dmesg is pretty much the same, maybe it is just muted somewhere. Interesting though why I had index=0 in the first place
Last edited by andrhua (2020-12-23 19:01:10)
Offline