I'm by no means an expert or even a certified individual so feel free to ask for more infos if needed.

I've kalix64 dualbooted with windows 10. The problem has been present since the get go.

When boot up, I can normally use the audio card volumes but I can't connect to any bluetooth devices. It automatically disabled everytime I clicked the connection button in bluetooth gui.

The <systemctl --user status pulseaudio> initially shows inactive(dead).
○ pulseaudio.service - Sound Service
     Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; vendor preset: enabled)
    Drop-In: /usr/lib/systemd/user/pulseaudio.service.d
     Active: inactive (dead)
TriggeredBy: ○ pulseaudio.socket
Then when I issued <systemctl --user start pulseaudio>, the status turned into this.
● pulseaudio.service - Sound Service
     Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; vendor preset: enabled)
    Drop-In: /usr/lib/systemd/user/pulseaudio.service.d
     Active: active (running) since Wed 2021-11-10 21:55:38 +XXXX; 1min 56s ago
TriggeredBy: ● pulseaudio.socket
   Main PID: 2711 (pulseaudio)
      Tasks: 6 (limit: 4455)
     Memory: 6.7M
        CPU: 220ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pulseaudio.service
             ├─2711 /usr/bin/pulseaudio --daemonize=no --log-target=journal
             └─2712 /usr/libexec/pulse/gsettings-helper

Nov 10 21:55:37 KALIDESK systemd[1278]: Starting Sound Service...
Nov 10 21:55:37 KALIDESK pulseaudio[2711]: Stale PID file, overwriting.
Nov 10 21:55:38 KALIDESK systemd[1278]: Started Sound Service.
Nov 10 21:55:40 KALIDESK pulseaudio[2711]: Failed to load module "module-alsa-card" (argument: "device_id="0" name="pci-0000_00_1f.3" card_name="alsa_card.pci-0000_00_1>
Nov 10 21:57:33 KALIDESK pulseaudio[2711]: org.freedesktop.DBus.Properties.Get /org/bluez/hci0/dev_54_A4_93_54_2D_3C/sep1/fd0 Volume failed: org.freedesktop.DBus.Error.>
Then I'll be able to connect to bluetooth and get the audio output. (The last line above only appeared after I've connected to bluetooth.) But then the original integrated audio doesn't work anymore and its volume control is replaced with a dummy one. In pavucontrol output devices, there will only be the bluetooth audio device.

If I want to use the integrated audio card again, I have to restart the pc which will put me back to square one. I can't also use <systemctl --user enable pulseaudio> to make the pulseaudio run at every startup. For some reason, the terminal will take the input but it won't change anything.

So my question is what's going on? Why is starting pulseaudio.service lead to the loading module failure? Why doesn't pulseaudio even run at the startup? I've used kali before and I didn't have to bother with this. The problem's only happening with this installation.

Additional informations(I don't know these are necessary but just in case)
  • Gnome version - 41(changed from lightdm to gdm3)
  • Kali is latest - have finished sudo apt updates, upgrades and dist-upgrades. Sources.list is checked and filled with only kali repository.
  • Have reinstalled pulseaudio and its related packages.
  • Have removed ~/.pulse and ~/.pulse-cookie as per suggestion from another thread (not ~/.config/pulse)
  • Neither pulseaudio -k nor pulseaudio -D helped.
  • /usr/lib/systemd/user/pulseaudio.service shows the below script

Description=Sound Service

# We require pulseaudio.socket to be active before starting the daemon, because
# while it is possible to use the service without the socket, it is not clear
# why it would be desirable.
# A user installing pulseaudio and doing `systemctl --user start pulseaudio`
# will not get the socket started, which might be confusing and problematic if
# the server is to be restarted later on, as the client autospawn feature
# might kick in. Also, a start of the socket unit will fail, adding to the
# confusion.
# After=pulseaudio.socket is not needed, as it is already implicit in the
# socket-service relationship, see systemd.socket(5).

ExecStart=/usr/bin/pulseaudio --daemonize=no --log-target=journal
# Note that notify will only work if --daemonize=no

P.S. I've been finding a solution on this for a while and still have no clues, so help from you guys is very much appreciated. Thanks.