spa-acp-tool
Manage PipeWire audio content protection
TLDR
List all ALSA objects
Probe a specific ALSA card by ID
List available ALSA profiles for a card
Set the active ALSA profile by ID
List available devices for a card
Get volume from a device
Set volume on a device
Toggle mute state on a device
SYNOPSIS
spa-acp-tool [OPTION...]
PARAMETERS
-h, --help
Display a help message and exit.
-v, --verbose
Enable verbose output for detailed execution information.
-d, --device DEVICE
Specify the ACP device path, e.g., /dev/snd/acp0.
-s, --status
Print the current status of the ACP device.
-e, --enable
Enable the Audio Class Protection (e.g., HDCP).
-D, --disable
Disable the Audio Class Protection.
-r, --reset
Reset the ACP device to its default state.
-p, --print-registers
Print the values of all ACP hardware registers.
-w, --write-register OFFSET VALUE
Write VALUE to the ACP register at OFFSET.
DESCRIPTION
spa-acp-tool is a utility designed for interacting with the Audio Class Protection (ACP) hardware interface, primarily found in systems utilizing Sound Open Firmware (SOF) for audio processing. Its main purpose is to debug, configure, and manage aspects related to digital audio content protection, such as High-bandwidth Digital Content Protection (HDCP) for HDMI audio outputs.
The tool allows users to query the current status of ACP, enable or disable its functionalities, reset the ACP state, and directly read from or write to ACP hardware registers. This granular control is essential for diagnosing issues with protected audio streams, particularly when dealing with HDMI audio output where HDCP compliance might be a factor. It is often used by developers and advanced users to troubleshoot audio path problems on platforms like Intel SoundWire-based systems, ensuring proper handling of protected audio content.
CAVEATS
- spa-acp-tool requires appropriate kernel modules (e.g., snd-sof-acp) to be loaded and the ACP device (/dev/snd/acpX) to be available.
- Improper use of this tool, especially writing to registers, can lead to system instability or audio malfunctions. It is primarily intended for debugging and advanced configuration.
- Changes made with this tool might not persist across reboots unless configured via system services or udev rules.
- Root privileges are often required to access and modify ACP device files.
CONTEXT
This tool is primarily relevant in environments where PipeWire is used as the audio server, especially on platforms that rely on Sound Open Firmware (SOF) for their audio hardware abstraction. It's not a general-purpose audio tool but rather a specialized utility for a specific subset of audio device management related to content protection.
USAGE SCENARIOS
spa-acp-tool is often used when troubleshooting issues with HDMI audio output, particularly when no sound is produced from protected content, or when investigating HDCP handshake failures. It allows a lower-level interaction than typical PipeWire or ALSA control utilities.
HISTORY
The spa-acp-tool is part of the PipeWire project, a media server for Linux that aims to provide a low-latency, graph-based processing engine for audio and video streams. Its development is closely tied to the evolution of modern audio frameworks on Linux, particularly for systems leveraging Sound Open Firmware (SOF) for hardware acceleration and advanced audio features.
This tool was created to provide a direct interface for debugging and managing Audio Class Protection (ACP) functionalities, which are crucial for handling DRM-protected content over interfaces like HDMI. Its emergence reflects the increasing complexity of audio stacks and the need for specialized tools to ensure compatibility and proper functioning of protected media pathways.


