Kalpa - No ALSA installed by default?

Hi,

Installed Kalpa on my ThinkPad X9 and noticed I didn’t have any sound. Checked zypper and I noticed “alsa” was missing. I’ve seen this behaviour before when I removed Yast from Tumbleweed during the install process - and also noticed Yast isn’t on Kalpa, is this a related issue?

Is alsa even needed for audio? Installing it with transactional update fixed my issue but I’m not sure if it’s the correct fix.

pipewire-alsa should be there

But that should be the only alsa package you need.

1 Like

It is there, but on a clean reinstall audio is still not working on first boot. I tried systemctl enable —now —user pipewire, pipewire-pulse and wireplumber to no effect.

I’ve not changed the package patterns in quite some time. what do you get when you run

zypper se -i pipewire and zypper se -i pulse for your base system?

Check that the low-level ALSA layer is functional first

https://en.opensuse.org/SDB:Audio_troubleshooting#Verify_hardware_and_ALSA_layer

I have Tumbleweed/KDE installs with just pipewire-alsa and no other alsa related package and sound is working, so it might just be a matter of checking the sound profile in system settings.

Still need to make sure ALSA kernel drivers / firmware installed (if applicable) and working as expected.

$: zypper se -i pulse
Loading repository data...
Reading installed packages...

S  | Name                    | Summary                                   | Type
---+-------------------------+-------------------------------------------+--------
i  | libKF6PulseAudioQt5     | Qt bindings for PulseAudio                | package
i  | libpulse-mainloop-glib0 | GLIB 2.0 Main Loop wrapper for PulseAudio | package
i  | libpulse0               | Client interface to PulseAudio            | package
i  | pipewire-pulseaudio     | PipeWire PulseAudio implementation        | package
i  | pulseaudio-utils        | PulseAudio utilities                      | package

$: zypper se -i pulse
Loading repository data...
Reading installed packages...

S  | Name                    | Summary                                   | Type
---+-------------------------+-------------------------------------------+--------
i  | libKF6PulseAudioQt5     | Qt bindings for PulseAudio                | package
i  | libpulse-mainloop-glib0 | GLIB 2.0 Main Loop wrapper for PulseAudio | package
i  | libpulse0               | Client interface to PulseAudio            | package
i  | pipewire-pulseaudio     | PipeWire PulseAudio implementation        | package
i  | pulseaudio-utils        | PulseAudio utilities                      | package

sof-firmware is also installed

!! PROVIDED BY DISTROBOX !!

$: aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sofsoundwire [sof-soundwire], device 0: Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 2: Speaker (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 5: HDMI1 (*) [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 6: HDMI2 (*) [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 7: HDMI3 (*) [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 31: Deepbuffer Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
$: cat /proc/asound/cards
 0 [sofsoundwire   ]: sof-soundwire - sof-soundwire
                      LENOVO-21Q60029US-ThinkPadX9_15Gen1
$: cat /proc/asound/modules
 0 snd_soc_sof_sdw
!! PROVIDED BY DISTROBOX !!

$ inxi -Aa
Audio:
  Device-1: Intel Lunar Lake IPU vendor: Lenovo driver: intel-ipu7
    bus-ID: 00:05.0 chip-ID: 8086:645d class-ID: 0480
  Device-2: Intel Lunar Lake-M HD Audio vendor: Lenovo
    driver: sof-audio-pci-intel-lnl bus-ID: 00:1f.3 chip-ID: 8086:a828
    class-ID: 0401
  API: ALSA v: k7.0.5-1-default status: kernel-api tools: N/A
$: pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 1460
Tile Size: 65472
User Name: user
Host Name: localhost.localdomain
Server Name: PulseAudio (on PipeWire 1.6.4)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_00_1f.3-platform-sof_sdw.stereo-fallback
Default Source: alsa_output.pci-0000_00_1f.3-platform-sof_sdw.stereo-fallback.monitor
Cookie: dcba:6e9f
$: pactl list short sinks
1124    alsa_output.pci-0000_00_1f.3-platform-sof_sdw.stereo-fallback   PipeWire        s32le 2ch 48000Hz       SUSPENDED
1124    alsa_output.pci-0000_00_1f.3-platform-sof_sdw.stereo-fallback.monitor   PipeWire        s32le 2ch 48000Hz       SUSPENDED

Here’s a ton of info, if it helps.

As I said, it works fine if I install alsa,

 zypper se alsa
Loading repository data...
Reading installed packages...

S  | Name                          | Summary                                                     | Type
---+-------------------------------+-------------------------------------------------------------+--------
   | alsa                          | Advanced Linux Sound Architecture                           | package
   | alsa-devel                    | Header files for ALSA development                           | package
   | alsa-devel-32bit              | Header files for ALSA development                           | package
   | alsa-docs                     | Additional Package Documentation for ALSA                   | package
   | alsa-firmware                 | Firmware Data Files for ALSA                                | package
   | alsa-oss                      | LD_PRELOAD-able library that translates OSS into ALSA calls | package
   | alsa-oss-32bit                | LD_PRELOAD-able library that translates OSS into ALSA calls | package
   | alsa-plugins                  | Extra Plug-Ins for ALSA Library                             | package
   | alsa-plugins-a52              | A52 Output Plug-In for ALSA Library                         | package
   | alsa-plugins-aaf              | AVTP Audio Format PCM Plug-In for ALSA Library              | package
   | alsa-plugins-arcam-av         | Arcam AV Amplifier Plug-In for ALSA Library                 | package
   | alsa-plugins-jack             | JACK I/O Plug-In for ALSA Library                           | package
   | alsa-plugins-jack-32bit       | JACK I/O Plug-In for ALSA Library                           | package
   | alsa-plugins-lavrate          | Rate Converter Plug-In for ALSA Library using libavcodec    | package
   | alsa-plugins-maemo            | Maemo Plug-Ins for ALSA Library                             | package
   | alsa-plugins-maemo-32bit      | Maemo Plug-Ins for ALSA Library                             | package
   | alsa-plugins-oss              | Plug-Ins for ALSA Library to Access OSS Devices             | package
   | alsa-plugins-pulse            | Pulseaudio Plug-In for ALSA Library                         | package
   | alsa-plugins-pulse-32bit      | Pulseaudio Plug-In for ALSA Library                         | package
   | alsa-plugins-samplerate       | Samplerate Plug-In for ALSA Library                         | package
   | alsa-plugins-samplerate-32bit | Samplerate Plug-In for ALSA Library                         | package
   | alsa-plugins-speex            | Speex Prerocessor Plug-In for ALSA Library                  | package
   | alsa-plugins-speexrate        | Rate Converter Plug-In for ALSA Library using Speex         | package
   | alsa-plugins-upmix            | PCM Up-mix Plug-In for ALSA Library                         | package
   | alsa-plugins-usb-stream       | PCM I/O Plug-In for ALSA Library to access USB USx2y audio  | package
   | alsa-plugins-vdownmix         | PCM Virtual Down-mix Plug-In for ALSA Library               | package
   | alsa-scarlett-gui             | ALSA Scarlett Gen 2/3/4 Control Panel                       | package
   | alsa-topology-conf            | ALSA topology configurations                                | package
   | alsa-topology-devel           | Header files for ALSA topology development                  | package
   | alsa-topology-devel-32bit     | Header files for ALSA topology development                  | package
   | alsa-ucm-conf                 | ALSA UCM Profiles                                           | package
   | alsa-utils                    | Advanced Linux Sound Architecture Utilities                 | package
   | alsabat                       | Command-line sound tester for ALSA sound card driver        | package
   | alsaequal                     | Equalizer plugin for ALSA                                   | package
   | balsa                         | The GNOME Mail Program                                      | package
   | balsa-lang                    | Translations for package balsa                              | package
   | bumblebee-status-module-alsa  | Control the alsa volume                                     | package
   | ghc-alsa-core                 | Binding to the ALSA Library API (Exceptions)                | package
   | ghc-alsa-core-devel           | Haskell alsa-core library development files                 | package
   | ghc-alsa-core-doc             | Haskell alsa-core library documentation                     | package
   | ghc-alsa-core-prof            | Haskell alsa-core profiling library                         | package
   | ghc-alsa-mixer                | Bindings to the ALSA simple mixer API                       | package
   | ghc-alsa-mixer-devel          | Haskell alsa-mixer library development files                | package
   | ghc-alsa-mixer-doc            | Haskell alsa-mixer library documentation                    | package
   | ghc-alsa-mixer-prof           | Haskell alsa-mixer profiling library                        | package
   | libdrumstick-alsa2            | MIDI Sequencer C++ Library                                  | package
i  | pipewire-alsa                 | PipeWire media server ALSA support                          | package
   | pipewire-alsa-32bit           | PipeWire media server ALSA support                          | package
   | python311-alsa                | Python ALSA binding                                         | package
   | python311-pyalsaaudio         | ALSA bindings for Python                                    | package
   | python313-alsa                | Python ALSA binding                                         | package
   | python313-pyalsaaudio         | ALSA bindings for Python                                    | package
   | python314-alsa                | Python ALSA binding                                         | package
   | python314-pyalsaaudio         | ALSA bindings for Python                                    | package
   | qemu-audio-alsa               | ALSA based audio support for QEMU                           | package

Whoops, I pasted the wrong search twice, here’s pipewire:

$: zypper se -i pipewire 
Loading repository data...
Reading installed packages...

S  | Name                      | Summary                                                                  | Type
---+---------------------------+--------------------------------------------------------------------------+--------
i  | gstreamer-plugin-pipewire | Gstreamer Plugin for PipeWire                                            | package
i  | kpipewire6-imports        | QtQuick bindings for kpipewire6                                          | package
i  | libKPipeWire6             | PipeWire integration for KDE Plasma - main library                       | package
i  | libKPipeWireDmaBuf6       | PipeWire integration for KDE Plasma - DMA-BUF support                    | package
i  | libKPipeWireRecord6       | PipeWire integration for KDE Plasma - recording support                  | package
i  | libpipewire-0_3-0         | A Multimedia Framework designed to be an audio and video server and more | package
i  | pipewire                  | A Multimedia Framework designed to be an audio and video server and more | package
i  | pipewire-alsa             | PipeWire media server ALSA support                                       | package
i  | pipewire-modules-0_3      | Modules For PipeWire, A Multimedia Framework                             | package
i  | pipewire-pulseaudio       | PipeWire PulseAudio implementation                                       | package
i  | pipewire-spa-plugins-0_2  | Plugins For PipeWire SPA                                                 | package
i  | pipewire-spa-tools        | The PipeWire SPA Tools                                                   | package
i  | pipewire-tools            | The PipeWire Tools       ```

Ok, so let me ask the dumb question, that I should have asked first. When you’re saying “I didn’t have any sound” what exactly do you mean?

Desktop sounds (e.g. like the desktop notification/startup sounds)?

No sound in something like a video/audio player?

No sound when you’re hitting something like youtube in a browser?

I’m not trying to be difficult, or anything here, it’s just a question I should have asked in the first place.

Sorry, I should’ve been more clear in my OP too, it’s a total lack of audio from what I can discern, test sounds aren’t audible, YouTube/Steam/etc, when I click the slider in KDEs volume tool there’s no sound output.

It’s almost like the system is muted, the outputs are detected, when I open the volume slider when a sound is playing I see it represented in the level monitor, I just can’t hear it.

Followup question, I assume that you’re talking about sound coming from the laptop speakers?

And have you (if you have such available) seen if you’re getting any output via some sort of USB sound device and/or the headphone jack or bluetooth?

I don’t think your thinkpad should have any sort of exotic sound hardware, but I don’t know that. I can say, mostly all I use are thinkpads, and the sound is working fine for me on all of them, without alsa being installed. But I don’t have the same model thinkpad that you do.

I’ll try the other outputs when I get a chance!

With it being Lunar Lake, unfortunately everything is exotic, the webcam still doesn’t work on Linux because we’re waiting on imx471.c to be upstreamed.

Kalpa is excellent by the way, thank you for the work you put into this!

Ah. All of my thinkpads are AMD, or old Intel, so it may be that we just don’t have the hardware driver support yet. You can try installing the ALSA packages, but I’d suspect it probably won’t help.

3.5mm headphones do not work
USB-C headphones DO work

I had an install of Kalpa before, and when I installed “alsa” it worked, but as per the start of thread you mentioned it shouldn’t be needed, so I was wondering what the proper fix would be if not to install alsa. If installing alsa is the solution then that’s also fine!

Worth noting, but it seems like alsa gets deselected when removing some YAST packages, I had this issue on Tumbleweed too because I manually remove X11 and YAST on there.

If I install Tumbleweed without touching any defaults, it works.

Try installing the UCM and topology packages. On newer Intel SOF/SoundWire platforms, those packages may be needed to provide the routing/topology definitions for speakers, amps, jacks, etc.

Do
sudo zypper install alsa-ucm-conf alsa-topology-conf
and reboot.

I can try that, I guess it would be transactional-update pkg install though :stuck_out_tongue:

Yes, sorry - I wasn’t thinking about the distro in question. :wink:

YaST is mostly a red herring, and only there due to the current installer still using the YaST Installer. It’s not actually tested or intended to be used, and won’t be there at all in the beta release.

Sorry to clarify. I didn’t touch any YAST options in Kalpa.

When I install Tumbleweed, I usually remove YAST, which deselects alsa for some reason (I can’t remember the exact YAST component that does it), so when I install tumbleweed, I also have to install alsa if I touch YAST. (If I don’t touch YAST, my sound works OOTB).

I was thinking, if Kalpa doesn’t include YAST aside from the installer, maybe this is why alsa doesn’t get pulled for me, but I don’t know anything about packaging so maybe I’m barking up the wrong tree.