# Fixing Internal Speaker Sound on Apple T2 Macs Running Gnoppix

**URL:** <https://forum.gnoppix.org/t/fixing-internal-speaker-sound-on-apple-t2-macs-running-gnoppix/6329>\
**Category:** How2's\
**Created:** [June 2, 2026, 7:20am UTC](https://forum.gnoppix.org/t/fixing-internal-speaker-sound-on-apple-t2-macs-running-gnoppix/6329 "2026-06-02T07:20:55Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![amu](https://forum.gnoppix.org/user_avatar/forum.gnoppix.org/amu/32/7_2.png) [@amu](https://forum.gnoppix.org/u/amu)\
**Post date:** [June 2, 2026, 7:20am UTC](https://forum.gnoppix.org/t/fixing-internal-speaker-sound-on-apple-t2-macs-running-gnoppix/6329/1 "2026-06-02T07:20:55Z")

</div>

Yes, my testing laptop is a donated, older Apple MacBook Pro with an Intel chip and a T2 security chip. After upgrading to Kernel 7.x, my audio stopped working. Since my time is very limited, i had no time to fix this until this morning.

## \*\*TLDR:\*\* If your internal speakers stopped working on an Apple T2 Mac running Linux, `fluidsynth` is likely holding the audio device hostage. Kill it, restart PipeWire, and the sound comes back. Full diagnosis and fix below.

## The Problem

I run Gnoppix 26 with KDE Plasma on an Apple T2-based Mac 🙂 One day, the internal speakers stopped producing any sound. KDE System Settings showed no usable audio output devices only HDMI outputs from the Intel PCH card.

At first glance, everything seemed fine:

- `aplay -l` detected the Apple T2 audio card
- PipeWire and PipeWire-Pulse services were active and running
- KDE Plasma was connected to PipeWire

Yet: \*\*no sound, no visible T2 device in KDE.\*\*

* * *

## Diagnosis: Step by Step

### 1. Verify the hardware is detected by ALSA

```bash  
$ aplay -l  
\*\*\*\* Liste der Hardware-Geräte (PLAYBACK) \*\*\*\*  
Karte 0: Audio [Apple T2 Audio], Gerät 0: Speaker [Speaker]  
Karte 0: Audio [Apple T2 Audio], Gerät 2: Codec Output [Codec Output]  
Karte 0: Audio [Apple T2 Audio], Gerät 4: Bridge Loopback [Bridge Loopback]  
Karte 2: PCH [HDA Intel PCH], Gerät 3: HDMI 0 [DELL P2415Q]  
```

The T2 card (`Karte 0`) is present with Speaker, Codec Output, and Bridge Loopback devices. The kernel driver is loaded. Hardware is fine.

### 2. Check what PipeWire sees

```bash  
$ pactl list cards short  
60 alsa\_card.pci-0000\_00\_1f.3 alsa  
```

Only the Intel HDMI card appears. \*\*The T2 card is completely absent from PipeWire.\*\*

### 3. Try to manually load the card profile

```bash  
$ pactl set-card-profile alsa\_card.pci-0000\_e6\_00.3 Default  
Failure: No such entity  
```

PipeWire has no record of the card. The problem is not the wrong profile the device was never registered.

### 4. Check if something is blocking the device

```bash  
$ cat /proc/asound/card0/pcm0p/info  
card: 0  
device: 0  
subdevices\_count: 1  
subdevices\_avail: 0 ← all sub-devices are in use  
```

`subdevices_avail: 0` means something has the device open exclusively.

```bash  
$ fuser -v /dev/snd/controlC0  
USER PID ACCESS  
/dev/snd/controlC0: amu 1070 F…  
```

A process with PID 1070 has the T2 control device open with exclusive access.

```bash  
$ ps -p 1070 -o pid,ppid,user,cmd  
PID PPID USER CMD  
1070 965 amu /usr/bin/fluidsynth -is -r 48000 -z 512 /usr/share/sounds/sf3/default-GM.sf3  
```

\*\*Found it: `fluidsynth`.\*\*

### 5. What is fluidsynth doing?

`fluidsynth` is a software MIDI synthesizer (SoundFont renderer). For whatever reason, it had opened the T2 audio device and was holding it in exclusive mode. Because of how the `snd_soc_avs` (Apple T2 audio) kernel driver works, this prevented \*\*every other process\*\* including PipeWire from opening the device.

This explains everything:

- ALSA sees the card (kernel level: OK)
- PipeWire never creates a device node (because it can’t open the ALSA device)
- KDE shows no audio output (because PipeWire has nothing to show)

## The Fix

Kill `fluidsynth`, stop its service from respawning, restart PipeWire:

```bash

# Kill the blocking process

kill 1070  
killall fluidsynth 2\>/dev/null || true

# Stop and disable its user service

systemctl --user stop fluidsynth  
systemctl --user disable fluidsynth

# Wait for the device to be released

sleep 2

# Restart PipeWire

systemctl --user restart pipewire pipewire-pulse  
sleep 2  
```

Verify the device is free:

```bash  
$ fuser -v /dev/sound/controlC0

# (no output = device is free)

```

Check that PipeWire now sees the T2 card:

```bash  
$ pactl list cards short  
60 alsa\_card.pci-0000\_00\_1f.3 alsa  
152 alsa\_card.pci-0000\_e6\_00.3 alsa ← T2 card appeared!  
```

New sinks are available:

```bash  
$ pactl list sinks short  
…  
153 alsa\_output.pci-0000\_e6\_00.3.Speakers PipeWire s24-32le 4ch 48000Hz SUSPENDED  
154 alsa\_output.pci-0000\_e6\_00.3.Headphones PipeWire s24-32le 2ch 48000Hz SUSPENDED  
```

Switch to the Speakers sink:

```bash  
$ pactl set-card-profile alsa\_card.pci-0000\_e6\_00.3 Default  
$ pactl set-default-sink alsa\_output.pci-0000\_e6\_00.3.Speakers  
$ pactl set-sink-mute alsa\_output.pci-0000\_e6\_00.3.Speakers 0  
$ pactl set-sink-volume alsa\_output.pci-0000\_e6\_00.3.Speakers 65%  
```

Test:

```bash  
$ speaker-test -D pipewire -c 2 -l 1  
0 - Front Left  
1 - Front Right  
```

\*\*Sound!\*\* White noise from the internal speakers. Problem solved.

* * *

## Preventing Recurrence

To make sure `fluidsynth` never blocks the T2 audio device again:

```bash  
systemctl --user disable --now fluidsynth  
```

If you ever need MIDI sound synthesis in the future, you can re-enable it but be aware that it may steal the internal speakers again.

## The Fix Script

I saved the full fix as `fix-t2-speakers.sh`. Run it any time the internal speakers stop working:

```bash  
chmod +x ~./scripts/fix-t2-speakers.sh  
```

The script automatically: kills any process blocking the T2 device, stops fluidsynth, restarts PipeWire, switches to the Default profile, selects the Speakers sink, unmutes, sets volume to 65%, and plays a test tone.

* * *

## Lessons Learned

1. \*\*When PipeWire doesn’t see a card that ALSA does\*\*, check for processes holding the device open with `fuser -v /dev/snd/*` and `cat /proc/asound/card*/pcm*/info`.

2. \*\*`fluidsynth` can be a silent killer\*\* on Apple T2 Macs. It grabs the audio device exclusively, making it invisible to PipeWire. If you don’t need MIDI synthesis, disable it permanently.

3. \*\*`snd_soc_avs` (Apple T2 audio driver)\*\* doesn’t support multiple concurrent clients well. When one process opens the device exclusively, everything else is locked out.

4. \*\*Running PipeWire/PulseAudio commands as root\*\* won’t work — these are user-level services. Always run `pactl`, `wpctl`, and `systemctl --user` as your regular desktop user.

* * *

\*Posted: by amu June 2026 · Tags: linux, audio, pipewire, apple-t2, debian, kde, troubleshooting\*

Link: [https://media.gnoppix.org/fix-t2-speakers.sh](https://media.gnoppix.org/fix-t2-speakers.sh)
