Muted sound after Linux boot

LeonX300

New Member
Joined
Jun 18, 2024
Messages
2
Reaction score
0
Credits
22
Hello everyone! I am faced with a sound output problem. After I installed Linux (in my case, Kali or Mint), sound is muted. When I run alsamixer, it shows 0% every time system is booted. Could you help me to fix the problem? After system boot I have to run alsamixer and set volume levels every time, in spite of I have already executed alsactl store command.

So, my current system settings are listed below.

pactl info:
Bash:
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 70
Tile Size: 65472
User Name: leonx300
Host Name: leonx300-1001pxd
Server Name: PulseAudio (on PipeWire 1.0.6)
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_1b.0.analog-stereo
Default Source: alsa_input.pci-0000_00_1b.0.analog-stereo
Cookie: dcb9:2b3d

pactl list sinks:
Bash:
Sink #51
    State: SUSPENDED
    Name: alsa_output.pci-0000_00_1b.0.analog-stereo
    Description: Built-in Audio Analog Stereo
    Driver: PipeWire
    Sample Specification: s32le 2ch 48000Hz
    Channel Map: front-left,front-right
    Owner Module: 4294967295
    Mute: no
    Volume: front-left: 47320 /  72% / -8.49 dB,   front-right: 46664 /  71% / -8.85 dB
            balance -0.01
    Base Volume: 65536 / 100% / 0.00 dB
    Monitor Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
    Latency: 0 usec, configured 0 usec
    Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
    Properties:
        alsa.card = "0"
        alsa.card_name = "HDA Intel"
        alsa.class = "generic"
        alsa.components = "HDA:10ec0269,10438437,00100100"
        alsa.device = "0"
        alsa.driver_name = "snd_hda_intel"
        alsa.id = "Intel"
        alsa.long_card_name = "HDA Intel at 0xf7cf8000 irq 25"
        alsa.mixer_name = "Realtek ALC269VB"
        alsa.name = "ALC269VB Analog"
        alsa.resolution_bits = "16"
        alsa.subclass = "generic-mix"
        alsa.subdevice = "0"
        alsa.subdevice_name = "subdevice #0"
        api.alsa.card.longname = "HDA Intel at 0xf7cf8000 irq 25"
        api.alsa.card.name = "HDA Intel"
        api.alsa.path = "front:0"
        api.alsa.pcm.card = "0"
        api.alsa.pcm.stream = "playback"
        audio.channels = "2"
        audio.position = "FL,FR"
        card.profile.device = "3"
        device.api = "alsa"
        device.class = "sound"
        device.id = "47"
        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 = "Built-in Audio"
        node.name = "alsa_output.pci-0000_00_1b.0.analog-stereo"
        node.nick = "ALC269VB Analog"
        node.pause-on-idle = "false"
        object.path = "alsa:pcm:0:front:0:playback"
        priority.driver = "1009"
        priority.session = "1009"
        factory.id = "18"
        clock.quantum-limit = "8192"
        client.id = "46"
        node.driver = "true"
        factory.mode = "merge"
        audio.adapt.follower = ""
        library.name = "audioconvert/libspa-audioconvert"
        object.id = "51"
        object.serial = "51"
        api.acp.auto-port = "false"
        api.alsa.card = "0"
        api.alsa.use-acp = "true"
        api.dbus.ReserveDevice1 = "Audio0"
        api.dbus.ReserveDevice1.Priority = "-20"
        device.bus = "pci"
        device.bus_path = "pci-0000:00:1b.0"
        device.enum.api = "udev"
        device.form_factor = "internal"
        device.icon_name = "audio-card-analog-pci"
        device.name = "alsa_card.pci-0000_00_1b.0"
        device.nick = "HDA Intel"
        device.plugged.usec = "168507303"
        device.product.id = "0x27d8"
        device.product.name = "NM10/ICH7 Family High Definition Audio Controller (Eee PC 1015PX)"
        device.subsystem = "sound"
        sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
        device.vendor.id = "0x8086"
        device.vendor.name = "Intel Corporation"
        device.string = "0"
    Ports:
        analog-output-speaker: Speakers (type: Speaker, priority: 10000, availability group: Legacy 3, availability unknown)
        analog-output-headphones: Headphones (type: Headphones, priority: 9900, availability group: Legacy 2, not available)
    Active Port: analog-output-speaker
    Formats:
        pcm

/proc/asound/cards content:
Bash:
0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xf7cf8000 irq 25

/proc/asound/pcm content:
Bash:
00-00: ALC269VB Analog : ALC269VB Analog : playback 1 : capture 1

I tried to create sound configuraton file ~/.asoundrc like
Bash:
pcm.!default {
    type hw
    card 0
}

ctl.!default {
    type hw
    card 0
}

But it had no effect. Thus, I never understood how to permanently save changes of volume level configuration in my system. Thank you in advance for your answers!
 


@LeonX300
Usually the sound server, which looks like pipewire from the output above, is enabled in systemd, so it starts up on boot.

To check what sound server you are running you can run the following command:
Code:
amixer info

To check what's controlling the sound devices run:
Code:
lsof /dev/snd/*

If you run the following command it should show if the sound server has been enabled by default:
Code:
systemctl --user status pipewire.service
If by chance the sound server is pulseaudio, substitute the command using that term.

The output will show lots of info, but will have a line like the following which is from a machine here where the sound server is enabled to run at boot:
Code:
(/usr/lib/systemd/user/pipewire.service; enabled; preset: enabled)

This info output on this machine shows that the sound server is enabled at boot. It is also preset to be enabled. It's the first occurrence of the term "enabled" on that line that indicates whether the service has been enabled on boot. If it says "disabled", then that can be resolved by enabling the sound server, thus, for example with pipewire:
Code:
systemctl --user enable pipewire.service
Then the sound server should start up on booting the machine.
Substitute the command using your sound server name.

If that's not the problem, there are other things that can be done.
 
Last edited:
@LeonX300
Usually the sound server, which looks like pipewire from the output above, is enabled in systemd, so it starts up on boot.

To check what sound server you are running you can run the following command:
Code:
amixer info

To check what's controlling the sound devices run:
Code:
lsof /dev/snd/*

If you run the following command it should show if the sound server has been enabled by default:
Code:
systemctl --user status pipewire.service
If by chance the sound server is pulseaudio, substitute the command using that term.

The output will show lots of info, but will have a line like the following which is from a machine here where the sound server is enabled to run at boot:
Code:
(/usr/lib/systemd/user/pipewire.service; enabled; preset: enabled)

This info output on this machine shows that the sound server is enabled at boot. It is also preset to be enabled. It's the first occurrence of the term "enabled" on that line that indicates whether the service has been enabled on boot. If it says "disabled", then that can be resolved by enabling the sound server, thus, for example with pipewire:
Code:
systemctl --user enable pipewire.service
Then the sound server should start up on booting the machine.
Substitute the command using your sound server name.

If that's not the problem, there are other things that can be done.
amixer info
Bash:
Card default 'pulse'/'PulseAudio'
  Mixer name    : 'PulseAudio'
  Components    : ''
  Controls      : 4
  Simple ctrls  : 2

lsof /dev/snd/*
Bash:
COMMAND    PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
pipewire  1184 leonx300   59u   CHR  116,1      0t0  366 /dev/snd/seq
pipewire  1184 leonx300   60u   CHR  116,1      0t0  366 /dev/snd/seq
wireplumb 1187 leonx300   24u   CHR  116,5      0t0  538 /dev/snd/controlC0

systemctl --user status pipewire.service
Bash:
● pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/user/pipewire.service.d
             └─kali.conf
     Active: active (running) since Tue 2024-06-18 06:38:18 EDT; 5min ago
TriggeredBy: ● pipewire.socket
   Main PID: 1184 (pipewire)
      Tasks: 3 (limit: 1047)
     Memory: 6.9M (peak: 7.4M)
        CPU: 387ms
     CGroup: /user.slice/user-1000.slice/[email protected]/session.slice/pipewire.service
             └─1184 /usr/bin/pipewire

Jun 18 06:38:18 leonx300-1001pxd systemd[1167]: Started pipewire.service - PipeWire Multimedia Service.
Jun 18 06:38:19 leonx300-1001pxd pipewire[1184]: mod.jackdbus-detect: Failed to receive jackdbus reply: org.freedesktop.DBus.Error.ServiceUnknown: The name org.jackaudio.service was not provided by any .service files

systemctl --user status pulseaudio.service
Bash:
○ pulseaudio.service - Sound Service
     Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/user/pulseaudio.service.d
             └─kali_pulseaudio.conf
     Active: inactive (dead)
TriggeredBy: ○ pulseaudio.socket

It seems there is no problem
 
Thanks for the the outputs. It looks like the sound server in use is pulseaudio from the amixer outputs, but the sound devices are controlled by pipewire. It might be worth trying to disable pipewire, and enabling pulseaudio:
Code:
systemctl --user stop pipewire.service
systemctl --user disable pipewire.service
systemctl --user enable pulseaudio.service
systemctl --user start pulseaudio.service

If that works, it sets up the machine for pulseaudio.

All of this is reversible to the original state the machine was in if it fails.

Another tack is to try and move to pipewire since that's the direction in which most linux distros are going. In the process to transfer from pulseaudio to pipewire, the package: pipewire-pulse is usually installed. That package contains the pulseaudio replacement daemon. Since that's the case, if the above fails, you could try to install that package if it's not installed, and then use the appropriate commands to disable pulseaudio and start pipewire. The packages on a machine here that run pipewire are:

libpipeline1
libpipewire-0.3-0t64
libpipewire-0.3-common
libpipewire-0.3-modules
pipewire-alsa
pipewire-audio
pipewire-bin
pipewire-pulse
pipewire
libwireplumber-0.5-0
wireplumber

The versions in mint may be different but that shouldn't matter.
 

Staff online


Top