########################################################################################## MISC-50: PulseAudio can't see my laptop's built-in speakers ########################################################################################## Issue Type: Bug ----------------------------------------------------------------------------------------- Issue Information ==================== Priority: Major Status: Closed Resolution: Fixed (2021-08-18 09:37:27) Project: Miscellaneous (MISC) Reported By: btasker Assigned To: btasker Time Estimate: 0 minutes Time Logged: 0 minutes ----------------------------------------------------------------------------------------- Issue Description ================== On bumblebee I want to use the laptop's built in speakers (rather than my headset) for alerts from Slack and Pagerduty. But, the device doesn't appear at all in pavucontrol or pacmd list-sinks alsamixer on the other hand, shows it as a Realtek ALC287 *Environment* -- BEGIN SNIPPET -- ben@bumblebee:/tmp$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 21.04 Release: 21.04 Codename: hirsute ben@bumblebee:/tmp$ uname -a Linux bumblebee 5.11.0-25-generic #27-Ubuntu SMP Fri Jul 9 23:06:29 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux ben@bumblebee:/tmp$ dpkg-query -l pulseaudio Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-===============-============-================================= ii pulseaudio 1:14.2-1ubuntu1 amd64 PulseAudio sound server ben@bumblebee:/tmp$ dpkg-query -l alsa-base Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-====================-============-================================= ii alsa-base 1.0.25+dfsg-0ubuntu7 all ALSA driver configuration files -- END SNIPPET -- *Hardware* -- BEGIN SNIPPET -- ben@bumblebee:/tmp$ sudo lshw | head -n 5 bumblebee description: Notebook product: 20XWCTO1WW (LENOVO_MT_20XW_BU_Think_FM_ThinkPad X1 Carbon Gen 9) vendor: LENOVO version: ThinkPad X1 Carbon Gen 9 ben@bumblebee:/tmp$ lspci -vk -s 00:1f.3 00:1f.3 Audio device: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller (rev 20) (prog-if 80) Subsystem: Lenovo Tiger Lake-LP Smart Sound Technology Audio Controller Flags: bus master, fast devsel, latency 64, IRQ 182, IOMMU group 13 Memory at 603d1c8000 (64-bit, non-prefetchable) [size=16K] Memory at 603d000000 (64-bit, non-prefetchable) [size=1M] Capabilities: Kernel driver in use: sof-audio-pci Kernel modules: snd_hda_intel, snd_sof_pci -- END SNIPPET -- ----------------------------------------------------------------------------------------- Activity ========== ----------------------------------------------------------------------------------------- 2021-08-18 09:29:38 btasker ----------------------------------------------------------------------------------------- To summarise: - Alsamixer reports the card as sof-hda-dsp with a Realtek ALC287 Chip - Pulse audio doesn't show the card at all Going to try explicitly telling PA to use it. Stopping Pulse -- BEGIN SNIPPET -- ben@bumblebee:/tmp$ systemctl --user stop pulseaudio.socket ben@bumblebee:/tmp$ systemctl --user stop pulseaudio.service -- END SNIPPET -- Listing out the devices that Alsa can see, need to know card no. and device no. -- BEGIN SNIPPET -- ben@bumblebee:/tmp$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Device [USB Audio Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: Mpow224 [Mpow-224], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: sofhdadsp [sof-hda-dsp], device 0: HDA Analog (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: sofhdadsp [sof-hda-dsp], device 1: HDA Digital (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: sofhdadsp [sof-hda-dsp], device 3: HDMI1 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: sofhdadsp [sof-hda-dsp], device 4: HDMI2 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: sofhdadsp [sof-hda-dsp], device 5: HDMI3 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 -- END SNIPPET -- Play a sound to verify that Card 2, dev 0 is the one we want -- BEGIN SNIPPET -- ben@bumblebee:/tmp$ sudo aplay -D plughw:2,0 /usr/share/sounds/alsa/Front_Center.wav Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono -- END SNIPPET -- Gets me audio out of the laptop speaker Editing pulse's config to add a module-alsa-sink line: -- BEGIN SNIPPET -- ben@bumblebee:/tmp$ sudo nano /etc/pulse/default.pa ben@bumblebee:/tmp$ grep -A4 MISC-50 /etc/pulse/default.pa # Added for MISC-50 load-module module-alsa-sink device=plughw:2,0 ### Automatically load driver modules depending on the hardware available .ifexists module-udev-detect.so -- END SNIPPET -- Starting PA again -- BEGIN SNIPPET -- ben@bumblebee:/tmp$ systemctl --user start pulseaudio.service ben@bumblebee:/tmp$ systemctl --user start pulseaudio.socket -- END SNIPPET -- The card now shows up in pavucontrol as Tiger Lake-LP Smart Sound Technology Audio Controller. Which is interesting, because there were previously a bunch of outputs like that listed before - Tiger Lake-LP Smart Sound Technology Audio Controller HDMI1 Output - Tiger Lake-LP Smart Sound Technology Audio Controller HDMI2 Output - Tiger Lake-LP Smart Sound Technology Audio Controller HDMI3 Output The pacmd output for one of those was -- BEGIN SNIPPET -- index: 4 name: driver: flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: SUSPENDED suspend cause: IDLE priority: 9035 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: 0.00 ms max request: 0 KiB max rewind: 0 KiB monitor source: 6 sample spec: s16le 2ch 48000Hz channel map: front-left,front-right Stereo used by: 0 linked by: 0 configured latency: 0.00 ms; range is 0.50 .. 341.33 ms card: 2 module: 9 properties: alsa.resolution_bits = "16" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "" alsa.id = "HDMI1 (*)" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "3" alsa.card = "2" alsa.card_name = "sof-hda-dsp" alsa.long_card_name = "sof-hda-dsp" alsa.driver_name = "snd_soc_skl_hda_dsp" device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card2" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "a0c8" device.product.name = "Tiger Lake-LP Smart Sound Technology Audio Controller" device.string = "hw:sofhdadsp,3" device.buffering.buffer_size = "65536" device.buffering.fragment_size = "16384" device.access_mode = "mmap+timer" device.profile.name = "HiFi: hw:sofhdadsp,3: sink" device.profile.description = "HDMI1 Output" alsa.mixer_device = "hw:sofhdadsp" device.description = "Tiger Lake-LP Smart Sound Technology Audio Controller HDMI1 Output" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" ports: [Out] HDMI1: HDMI1 Output (priority 500, latency offset 0 usec, available: yes) properties: device.product.name = "LG HDR 4K" active port: <[Out] HDMI1> -- END SNIPPET -- None of those HDMI outputs are listed anymore: -- BEGIN SNIPPET -- ben@bumblebee:/tmp$ pacmd list-sinks 3 sink(s) available. index: 0 name: driver: flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: IDLE suspend cause: (none) priority: 9030 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: 39.49 ms max request: 7 KiB max rewind: 7 KiB monitor source: 0 sample spec: s16le 2ch 48000Hz channel map: front-left,front-right Stereo used by: 0 linked by: 1 configured latency: 40.00 ms; range is 0.50 .. 341.33 ms module: 6 properties: alsa.resolution_bits = "16" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "" alsa.id = "HDA Analog (*)" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "0" alsa.card = "2" alsa.card_name = "sof-hda-dsp" alsa.long_card_name = "sof-hda-dsp" alsa.driver_name = "snd_soc_skl_hda_dsp" device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card2" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "a0c8" device.product.name = "Tiger Lake-LP Smart Sound Technology Audio Controller" device.string = "plughw:2,0" device.buffering.buffer_size = "65536" device.buffering.fragment_size = "16384" device.access_mode = "mmap+timer" device.description = "Tiger Lake-LP Smart Sound Technology Audio Controller" device.icon_name = "audio-card-pci" index: 1 name: driver: flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: IDLE suspend cause: (none) priority: 9049 volume: front-left: 38295 / 58% / -14.00 dB, front-right: 38295 / 58% / -14.00 dB balance 0.00 base volume: 65536 / 100% / 0.00 dB volume steps: 65537 muted: no current latency: 45.61 ms max request: 7 KiB max rewind: 7 KiB monitor source: 1 sample spec: s16le 2ch 48000Hz channel map: front-left,front-right Stereo used by: 0 linked by: 1 configured latency: 40.00 ms; range is 0.50 .. 2000.00 ms card: 0 module: 8 properties: alsa.resolution_bits = "16" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "USB Audio" alsa.id = "USB Audio" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "0" alsa.card = "1" alsa.card_name = "Mpow-224" alsa.long_card_name = "C-Media Electronics Inc. Mpow-224 at usb-0000:00:14.0-5.1.2, full speed" alsa.driver_name = "snd_usb_audio" device.bus_path = "pci-0000:00:14.0-usb-0:5.1.2:1.0" sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.1/3-5.1.2/3-5.1.2:1.0/sound/card1" udev.id = "usb-C-Media_Electronics_Inc._Mpow-224_20200316-00" device.bus = "usb" device.vendor.id = "0d8c" device.vendor.name = "C-Media Electronics, Inc." device.product.id = "0014" device.product.name = "Audio Adapter (Unitek Y-247A)" device.serial = "C-Media_Electronics_Inc._Mpow-224_20200316" device.string = "front:1" device.buffering.buffer_size = "384000" device.buffering.fragment_size = "192000" device.access_mode = "mmap+timer" device.profile.name = "analog-stereo" device.profile.description = "Analogue Stereo" device.description = "Audio Adapter (Unitek Y-247A) Analogue Stereo" module-udev-detect.discovered = "1" device.icon_name = "audio-card-usb" ports: analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown) properties: active port: * index: 2 name: driver: flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: IDLE suspend cause: (none) priority: 9049 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: 41.35 ms max request: 7 KiB max rewind: 7 KiB monitor source: 3 sample spec: s16le 2ch 48000Hz channel map: front-left,front-right Stereo used by: 0 linked by: 1 configured latency: 40.00 ms; range is 0.50 .. 2000.00 ms card: 1 module: 9 properties: alsa.resolution_bits = "16" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "USB Audio" alsa.id = "USB Audio" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "0" alsa.card = "0" alsa.card_name = "USB Audio Device" alsa.long_card_name = "C-Media Electronics Inc. USB Audio Device at usb-0000:00:14.0-5.1.4.3, full spe" alsa.driver_name = "snd_usb_audio" device.bus_path = "pci-0000:00:14.0-usb-0:5.1.4.3:1.0" sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.1/3-5.1.4/3-5.1.4.3/3-5.1.4.3:1.0/sound/card0" udev.id = "usb-C-Media_Electronics_Inc._USB_Audio_Device-00" device.bus = "usb" device.vendor.id = "0d8c" device.vendor.name = "C-Media Electronics, Inc." device.product.id = "0012" device.product.name = "USB Audio Device" device.serial = "C-Media_Electronics_Inc._USB_Audio_Device" device.string = "front:0" device.buffering.buffer_size = "384000" device.buffering.fragment_size = "192000" device.access_mode = "mmap+timer" device.profile.name = "analog-stereo" device.profile.description = "Analogue Stereo" device.description = "USB Audio Device Analogue Stereo" module-udev-detect.discovered = "1" device.icon_name = "audio-card-usb" ports: analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown) properties: device.icon_name = "audio-speakers" active port: -- END SNIPPET -- I've now been able to set Slack to use the speakers. So, it looks like PulseAudio was focusing on the HDMI outputs (not sure why there were 3?) and ignoring the speakers ----------------------------------------------------------------------------------------- 2021-08-18 09:31:51 btasker ----------------------------------------------------------------------------------------- Oddly, the card doesn't show up in list-cards -- BEGIN SNIPPET -- ben@bumblebee:/tmp$ pacmd list-cards 3 card(s) available. index: 0 name: driver: owner module: 8 properties: alsa.card = "1" alsa.card_name = "Mpow-224" alsa.long_card_name = "C-Media Electronics Inc. Mpow-224 at usb-0000:00:14.0-5.1.2, full speed" alsa.driver_name = "snd_usb_audio" device.bus_path = "pci-0000:00:14.0-usb-0:5.1.2:1.0" sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.1/3-5.1.2/3-5.1.2:1.0/sound/card1" udev.id = "usb-C-Media_Electronics_Inc._Mpow-224_20200316-00" device.bus = "usb" device.vendor.id = "0d8c" device.vendor.name = "C-Media Electronics, Inc." device.product.id = "0014" device.product.name = "Audio Adapter (Unitek Y-247A)" device.serial = "C-Media_Electronics_Inc._Mpow-224_20200316" device.string = "1" device.description = "Audio Adapter (Unitek Y-247A)" module-udev-detect.discovered = "1" device.icon_name = "audio-card-usb" profiles: input:mono-fallback: Mono Input (priority 1, available: unknown) input:multichannel-input: Multichannel Input (priority 1, available: unknown) output:analog-stereo: Analogue Stereo Output (priority 6500, available: unknown) output:analog-stereo+input:mono-fallback: Analogue Stereo Output + Mono Input (priority 6501, available: unknown) output:analog-stereo+input:multichannel-input: Analogue Stereo Output + Multichannel Input (priority 6501, available: unknown) output:iec958-stereo: Digital Stereo (IEC958) Output (priority 5500, available: unknown) output:iec958-stereo+input:mono-fallback: Digital Stereo (IEC958) Output + Mono Input (priority 5501, available: unknown) output:iec958-stereo+input:multichannel-input: Digital Stereo (IEC958) Output + Multichannel Input (priority 5501, available: unknown) off: Off (priority 0, available: unknown) active profile: sinks: alsa_output.usb-C-Media_Electronics_Inc._Mpow-224_20200316-00.analog-stereo/#1: Audio Adapter (Unitek Y-247A) Analogue Stereo sources: alsa_output.usb-C-Media_Electronics_Inc._Mpow-224_20200316-00.analog-stereo.monitor/#1: Monitor of Audio Adapter (Unitek Y-247A) Analogue Stereo alsa_input.usb-C-Media_Electronics_Inc._Mpow-224_20200316-00.mono-fallback/#2: Audio Adapter (Unitek Y-247A) Mono ports: analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: unknown) properties: device.icon_name = "audio-input-microphone" analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown) properties: iec958-stereo-output: Digital Output (S/PDIF) (priority 0, latency offset 0 usec, available: unknown) properties: index: 1 name: driver: owner module: 9 properties: alsa.card = "0" alsa.card_name = "USB Audio Device" alsa.long_card_name = "C-Media Electronics Inc. USB Audio Device at usb-0000:00:14.0-5.1.4.3, full spe" alsa.driver_name = "snd_usb_audio" device.bus_path = "pci-0000:00:14.0-usb-0:5.1.4.3:1.0" sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.1/3-5.1.4/3-5.1.4.3/3-5.1.4.3:1.0/sound/card0" udev.id = "usb-C-Media_Electronics_Inc._USB_Audio_Device-00" device.bus = "usb" device.vendor.id = "0d8c" device.vendor.name = "C-Media Electronics, Inc." device.product.id = "0012" device.product.name = "USB Audio Device" device.serial = "C-Media_Electronics_Inc._USB_Audio_Device" device.string = "0" device.description = "USB Audio Device" module-udev-detect.discovered = "1" device.icon_name = "audio-card-usb" profiles: input:mono-fallback: Mono Input (priority 1, available: unknown) input:multichannel-input: Multichannel Input (priority 1, available: unknown) output:analog-stereo: Analogue Stereo Output (priority 6500, available: unknown) output:analog-stereo+input:mono-fallback: Analogue Stereo Output + Mono Input (priority 6501, available: unknown) output:analog-stereo+input:multichannel-input: Analogue Stereo Output + Multichannel Input (priority 6501, available: unknown) output:iec958-stereo: Digital Stereo (IEC958) Output (priority 5500, available: unknown) output:iec958-stereo+input:mono-fallback: Digital Stereo (IEC958) Output + Mono Input (priority 5501, available: unknown) output:iec958-stereo+input:multichannel-input: Digital Stereo (IEC958) Output + Multichannel Input (priority 5501, available: unknown) off: Off (priority 0, available: unknown) active profile: sinks: alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo/#2: USB Audio Device Analogue Stereo sources: alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo.monitor/#3: Monitor of USB Audio Device Analogue Stereo alsa_input.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.mono-fallback/#4: USB Audio Device Mono ports: analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: unknown) properties: device.icon_name = "audio-input-microphone" analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown) properties: device.icon_name = "audio-speakers" iec958-stereo-output: Digital Output (S/PDIF) (priority 0, latency offset 0 usec, available: unknown) properties: index: 2 name: driver: owner module: 10 properties: alsa.card = "3" alsa.card_name = "HD Webcam USB" alsa.long_card_name = "HD Webcam USB HD Webcam USB at usb-0000:00:14.0-5.2, high speed" alsa.driver_name = "snd_usb_audio" device.bus_path = "pci-0000:00:14.0-usb-0:5.2:1.2" sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.2/3-5.2:1.2/sound/card3" udev.id = "usb-HD_Webcam_USB_HD_Webcam_USB_HD_Webcam_USB-02" device.bus = "usb" device.vendor.id = "0c45" device.vendor.name = "Microdia" device.product.id = "6366" device.product.name = "Webcam Vitade AF" device.serial = "HD_Webcam_USB_HD_Webcam_USB_HD_Webcam_USB" device.form_factor = "webcam" device.string = "3" device.description = "Webcam Vitade AF" module-udev-detect.discovered = "1" device.icon_name = "camera-web-usb" profiles: input:analog-stereo: Analogue Stereo Input (priority 65, available: unknown) input:iec958-stereo: Digital Stereo (IEC958) Input (priority 55, available: unknown) off: Off (priority 0, available: unknown) active profile: sources: alsa_input.usb-HD_Webcam_USB_HD_Webcam_USB_HD_Webcam_USB-02.analog-stereo/#5: Webcam Vitade AF Analogue Stereo ports: analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: unknown) properties: device.icon_name = "audio-input-microphone" iec958-stereo-input: Digital Input (S/PDIF) (priority 0, latency offset 0 usec, available: unknown) properties: -- END SNIPPET -- ----------------------------------------------------------------------------------------- 2021-08-18 09:37:27 ----------------------------------------------------------------------------------------- btasker changed status from 'Open' to 'Resolved' ----------------------------------------------------------------------------------------- 2021-08-18 09:37:27 ----------------------------------------------------------------------------------------- btasker added 'Fixed' to resolution ----------------------------------------------------------------------------------------- 2021-08-18 09:37:56 btasker ----------------------------------------------------------------------------------------- Closing as fixed. ----------------------------------------------------------------------------------------- 2021-08-18 09:37:56 ----------------------------------------------------------------------------------------- btasker changed status from 'Resolved' to 'Closed'