From afe675bc9a8cf2570fa5f00753aec1544c6b47da Mon Sep 17 00:00:00 2001 From: Paresh Bhagat Date: Wed, 30 Sep 2026 14:49:38 +0530 Subject: [PATCH] feat(linux): Add doc for PipeWire Add fundamental concepts for PipeWire like Server, Clients, Session Manager etc. with info about nodes ports and links. Add doc about how to use pipewire for all devices and how to configure using SPA json files. Update audio doc to link it to pipewire doc Signed-off-by: Paresh Bhagat --- configs/AM62AX/AM62AX_linux_toc.txt | 1 + configs/AM62DX/AM62DX_linux_toc.txt | 1 + configs/AM62LX/AM62LX_linux_toc.txt | 1 + configs/AM62PX/AM62PX_linux_toc.txt | 1 + configs/AM62X/AM62X_linux_toc.txt | 1 + configs/AM64X/AM64X_linux_toc.txt | 1 + configs/AM67/AM67_linux_toc.txt | 1 + configs/AM67A/AM67A_linux_toc.txt | 1 + configs/AM69/AM69_linux_toc.txt | 1 + configs/AM69A/AM69A_linux_toc.txt | 1 + configs/J7200/J7200_linux_toc.txt | 1 + configs/J721E/J721E_linux_toc.txt | 1 + configs/J721S2/J721S2_linux_toc.txt | 1 + configs/J722S/J722S_linux_toc.txt | 1 + configs/J742S2/J742S2_linux_toc.txt | 1 + configs/J784S4/J784S4_linux_toc.txt | 1 + source/images/pipewire_stack.png | Bin 0 -> 109229 bytes .../Kernel/Kernel_Drivers/Audio.rst | 4 + .../Target/How_to_use_PipeWire.rst | 510 ++++++++++++++++++ .../linux/How_to_Guides_Developer_Notes.rst | 1 + 20 files changed, 531 insertions(+) create mode 100644 source/images/pipewire_stack.png create mode 100644 source/linux/How_to_Guides/Target/How_to_use_PipeWire.rst diff --git a/configs/AM62AX/AM62AX_linux_toc.txt b/configs/AM62AX/AM62AX_linux_toc.txt index 0591fbe6d..d30669a61 100644 --- a/configs/AM62AX/AM62AX_linux_toc.txt +++ b/configs/AM62AX/AM62AX_linux_toc.txt @@ -126,6 +126,7 @@ linux/How_to_Guides/Host/SYSFW_Trace_Parser linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customization linux/How_to_Guides/Target/How_to_boot_quickly linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_to_test_MCAN_on_AM62x linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux diff --git a/configs/AM62DX/AM62DX_linux_toc.txt b/configs/AM62DX/AM62DX_linux_toc.txt index 49de07843..f5126447a 100644 --- a/configs/AM62DX/AM62DX_linux_toc.txt +++ b/configs/AM62DX/AM62DX_linux_toc.txt @@ -110,6 +110,7 @@ linux/How_to_Guides/Host/SYSFW_Trace_Parser linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customization linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda #linux/How_to_Guides/Target/How_to_test_MCAN_on_AM62x linux/How_to_Guides/Target/How_to_Use_K3Conf_Tool diff --git a/configs/AM62LX/AM62LX_linux_toc.txt b/configs/AM62LX/AM62LX_linux_toc.txt index 336f87921..09d1602c4 100644 --- a/configs/AM62LX/AM62LX_linux_toc.txt +++ b/configs/AM62LX/AM62LX_linux_toc.txt @@ -131,6 +131,7 @@ linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux linux/How_to_Guides/Target/How_to_playback_audio_over_HDMI #linux/How_to_Guides/Target/How_to_boot_quickly linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_To_Enable_M2CC3301_in_linux linux/How_to_Guides/Target/Runtime_debug_unlock_on_secure_device diff --git a/configs/AM62PX/AM62PX_linux_toc.txt b/configs/AM62PX/AM62PX_linux_toc.txt index ea88d28b6..4d814a341 100644 --- a/configs/AM62PX/AM62PX_linux_toc.txt +++ b/configs/AM62PX/AM62PX_linux_toc.txt @@ -162,6 +162,7 @@ linux/How_to_Guides/Host/SYSFW_Trace_Parser #linux/How_to_Guides/Host/Minimal_Platform_Development linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customization linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda #linux/How_to_Guides/Target/How_to_suspend_to_ram_on_AM62x linux/How_to_Guides/Target/How_to_test_MCAN_on_AM62x diff --git a/configs/AM62X/AM62X_linux_toc.txt b/configs/AM62X/AM62X_linux_toc.txt index 07b01f227..e376cac57 100644 --- a/configs/AM62X/AM62X_linux_toc.txt +++ b/configs/AM62X/AM62X_linux_toc.txt @@ -169,6 +169,7 @@ linux/How_to_Guides/Host/Minimal_Platform_Development linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customization #linux/How_to_Guides/Target/How_to_boot_quickly linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_to_suspend_to_ram_on_AM62x linux/How_to_Guides/Target/How_to_test_MCAN_on_AM62x diff --git a/configs/AM64X/AM64X_linux_toc.txt b/configs/AM64X/AM64X_linux_toc.txt index c8ed786b6..dbd59c88b 100644 --- a/configs/AM64X/AM64X_linux_toc.txt +++ b/configs/AM64X/AM64X_linux_toc.txt @@ -152,6 +152,7 @@ linux/How_to_Guides/Host/How_to_Setup_and_Debug_using_Lauterbach linux/How_to_Guides/Host/SYSFW_Trace_Parser linux/How_to_Guides/Host/Program_MMC_boot_media linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_to_Tune_Real_Time_Linux common/How_to_Guides/AM64x_EVM_Hardware_Setup diff --git a/configs/AM67/AM67_linux_toc.txt b/configs/AM67/AM67_linux_toc.txt index be8507d39..bc6d9c6d8 100644 --- a/configs/AM67/AM67_linux_toc.txt +++ b/configs/AM67/AM67_linux_toc.txt @@ -116,6 +116,7 @@ linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customiz linux/How_to_Guides/Target/How_to_Change_dtb_File linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_to_visualize_statistics_data linux/How_to_Guides/Target/How_to_Use_K3Conf_Tool diff --git a/configs/AM67A/AM67A_linux_toc.txt b/configs/AM67A/AM67A_linux_toc.txt index 33b1db8f6..e5da92dea 100644 --- a/configs/AM67A/AM67A_linux_toc.txt +++ b/configs/AM67A/AM67A_linux_toc.txt @@ -116,6 +116,7 @@ linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customiz linux/How_to_Guides/Target/How_to_Change_dtb_File linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_to_visualize_statistics_data linux/How_to_Guides/Target/How_to_Use_K3Conf_Tool diff --git a/configs/AM69/AM69_linux_toc.txt b/configs/AM69/AM69_linux_toc.txt index 404c58488..e23aa5588 100644 --- a/configs/AM69/AM69_linux_toc.txt +++ b/configs/AM69/AM69_linux_toc.txt @@ -122,6 +122,7 @@ linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customiz linux/How_to_Guides/Target/How_to_Change_dtb_File linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_to_visualize_statistics_data linux/How_to_Guides/Target/How_to_Use_K3Conf_Tool diff --git a/configs/AM69A/AM69A_linux_toc.txt b/configs/AM69A/AM69A_linux_toc.txt index 1fb0f5df3..395bfab0e 100644 --- a/configs/AM69A/AM69A_linux_toc.txt +++ b/configs/AM69A/AM69A_linux_toc.txt @@ -121,6 +121,7 @@ linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customiz linux/How_to_Guides/Target/How_to_Change_dtb_File linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_to_visualize_statistics_data linux/How_to_Guides/Target/How_to_Use_K3Conf_Tool diff --git a/configs/J7200/J7200_linux_toc.txt b/configs/J7200/J7200_linux_toc.txt index 559609ad6..d4af3fab2 100644 --- a/configs/J7200/J7200_linux_toc.txt +++ b/configs/J7200/J7200_linux_toc.txt @@ -109,6 +109,7 @@ linux/How_to_Guides/Host/K3_Resource_Partitioning_Tool linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customization linux/How_to_Guides/Target/How_to_Change_dtb_File linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_to_visualize_statistics_data linux/How_to_Guides/Target/How_to_Use_K3Conf_Tool diff --git a/configs/J721E/J721E_linux_toc.txt b/configs/J721E/J721E_linux_toc.txt index 9e6d06c17..c6160b4a3 100644 --- a/configs/J721E/J721E_linux_toc.txt +++ b/configs/J721E/J721E_linux_toc.txt @@ -132,6 +132,7 @@ linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customiz linux/How_to_Guides/Target/How_to_Change_dtb_File linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_to_visualize_statistics_data linux/How_to_Guides/Target/How_to_Use_K3Conf_Tool diff --git a/configs/J721S2/J721S2_linux_toc.txt b/configs/J721S2/J721S2_linux_toc.txt index ac3a08b5b..c8b3babcf 100644 --- a/configs/J721S2/J721S2_linux_toc.txt +++ b/configs/J721S2/J721S2_linux_toc.txt @@ -129,6 +129,7 @@ linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customiz linux/How_to_Guides/Target/How_to_Change_dtb_File linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_to_visualize_statistics_data linux/How_to_Guides/Target/How_to_Use_K3Conf_Tool diff --git a/configs/J722S/J722S_linux_toc.txt b/configs/J722S/J722S_linux_toc.txt index 1db71c708..b40651364 100644 --- a/configs/J722S/J722S_linux_toc.txt +++ b/configs/J722S/J722S_linux_toc.txt @@ -129,6 +129,7 @@ linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customiz linux/How_to_Guides/Target/How_to_Change_dtb_File linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_to_visualize_statistics_data linux/How_to_Guides/Target/How_to_Use_K3Conf_Tool diff --git a/configs/J742S2/J742S2_linux_toc.txt b/configs/J742S2/J742S2_linux_toc.txt index 6b71787c3..9e257d3a4 100644 --- a/configs/J742S2/J742S2_linux_toc.txt +++ b/configs/J742S2/J742S2_linux_toc.txt @@ -131,6 +131,7 @@ linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customiz linux/How_to_Guides/Target/How_to_Change_dtb_File linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_to_visualize_statistics_data linux/How_to_Guides/Target/How_to_Use_K3Conf_Tool diff --git a/configs/J784S4/J784S4_linux_toc.txt b/configs/J784S4/J784S4_linux_toc.txt index 98a2252b4..c05ec5017 100644 --- a/configs/J784S4/J784S4_linux_toc.txt +++ b/configs/J784S4/J784S4_linux_toc.txt @@ -131,6 +131,7 @@ linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customiz linux/How_to_Guides/Target/How_to_Change_dtb_File linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux linux/How_to_Guides/Target/How_to_emmc_boot +linux/How_to_Guides/Target/How_to_use_PipeWire linux/How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda linux/How_to_Guides/Target/How_to_visualize_statistics_data linux/How_to_Guides/Target/How_to_Use_K3Conf_Tool diff --git a/source/images/pipewire_stack.png b/source/images/pipewire_stack.png new file mode 100644 index 0000000000000000000000000000000000000000..0c75b74edc3b745594f56f9accef5f92280b9b2a GIT binary patch literal 109229 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

v?dA}om=vD7EvqR_~@ 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 LvrWa{d=vi(2{i62 literal 0 HcmV?d00001 diff --git a/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Audio.rst b/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Audio.rst index ae1c7b4f4..6eb97e236 100644 --- a/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Audio.rst +++ b/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Audio.rst @@ -28,6 +28,10 @@ Linux ALSA (Advanced Linux Sound Architecture) framework, which allows control and configuration of the hardware through common APIs. For more details check the `links below <#additional-information>`__. +The default audio server on TI Linux SDK is PipeWire, which provides a modern +multimedia framework for audio and video handling. For more information about +PipeWire setup and usage, refer :ref:`how-to-use-pipewire`. + Within the kernel there are separate drivers for each component. For each board a sound-card instance is created, usually using the :code:`sound {}` device tree node, that links together various components like different McASP diff --git a/source/linux/How_to_Guides/Target/How_to_use_PipeWire.rst b/source/linux/How_to_Guides/Target/How_to_use_PipeWire.rst new file mode 100644 index 000000000..1e6583f0e --- /dev/null +++ b/source/linux/How_to_Guides/Target/How_to_use_PipeWire.rst @@ -0,0 +1,510 @@ +.. _how-to-use-pipewire: + +################### +How to Use PipeWire +################### + +************ +Introduction +************ + +PipeWire is a modern, low-latency multimedia framework that has become the +standard for audio and video handling in Linux applications, providing +graph-based processing with real-time capabilities using unified +architecture. PipeWire’s multi-process architecture allows multiple +applications to seamlessly share multimedia content without conflicts or +resource contention. + +************** +Key Highlights +************** + +- Unified Multimedia Framework: Single solution for professional audio + (JACK), consumer audio (PulseAudio), and video processing. +- Low Latency Performance. +- Security Model: Built-in sandboxing support for containerized + applications. +- Multi-process architecture to let applications share multimedia content. +- Real-time multimedia processing on audio and video. + +************** +Basic Concepts +************** + +PipeWire Server +=============== +The server is the core daemon that manages a graph-based multimedia +processing engine. It handles the creation and execution of the media +graph where audio, video, or MIDI data flows between different processing +components. + +PipeWire Clients +================ +Clients are applications that connect to the PipeWire server to produce or +consume media streams. They create nodes in the media graph to send or +receive audio or video data. + +Session Manager +=============== +PipeWire does not handle device routing or policy decisions by itself. +These tasks are managed by a session manager, which monitors devices and +automatically connects streams. In this document, WirePlumber is used as +the session manager. + +Nodes, Ports, and Links +======================= +The PipeWire processing graph consists of nodes, ports, and links. A node +represents a processing element, ports act as input or output interfaces, +and links connect ports between nodes to allow media data to flow through +the graph. + +************************ +PipeWire Main Components +************************ + +- A PipeWire Daemon that implements the IPC and graph processing. +- An example PipeWire Session Manager that manages objects in the + PipeWire Daemon. +- A set of Programs to introspect and use the PipeWire Daemon. +- A PipeWire Library to develop PipeWire applications and plugins. +- The SPA (Simple Plugin API) used by both the PipeWire Daemon and in the + PipeWire Library. + +For more info refer `PipeWire Docs `__. + +************************* +Audio System Architecture +************************* + +.. figure:: /images/pipewire_stack.png + :align: center + :width: 600 + +- In Linux audio system using, applications such as media players, + browsers, VoIP clients, or tools like GStreamer send and receive + audio through APIs like the native PipeWire API or compatibility + layers for Jack, Pulseaudio or (ALSA). +- These audio streams are handled by the PipeWire media server, which + builds a processing graph to mix, route, and schedule audio from + multiple applications. +- A session manager such as WirePlumber applies policies like device + selection and automatic routing. +- PipeWire accesses actual audio devices using its SPA device plugins + (for example the ALSA plugin), which communicate with the ALSA sound + subsystem inside the Linux kernel. +- The kernel drivers then control the physical hardware such as audio + codecs, sound cards, or interfaces like I2S or HDMI, completing the + path from application audio streams to the real audio output or + input devices. + +********************** +Start and use PipeWire +********************** + +After the board is booted, use following commands to get started on +PipeWire: + +Check service status +==================== + +.. code-block:: console + + root@: systemctl status pipewire wireplumber + +Enable PipeWire and Wireplumber +=============================== + +Enable service to start automatically at boot + +.. code-block:: console + + root@: systemctl enable pipewire wireplumber + +.. ifconfig:: CONFIG_part_variant in ('AM62DX') + + A new service is also added by patches to set default audio devices in + WirePlumber to avoid manual setup. To enable it: + + .. code-block:: console + + root@: systemctl enable set-audio-defaults + +Start PipeWire and WirePlumber +============================== + +Start PipeWire and WirePlumber if not started by default + +.. code-block:: console + + root@: systemctl start pipewire wireplumber + +.. ifconfig:: CONFIG_part_variant in ('AM62DX') + + .. code-block:: console + + root@: systemctl start set-audio-defaults + +************************* +General PipeWire commands +************************* + +List all objects currently in PipeWire server +============================================= + +.. code-block:: console + + root@: pw-cli list-objects + id 0, type PipeWire:Interface:Core/4 + object.serial = "0" + core.name = "pipewire-0" + id 1, type PipeWire:Interface:Module/3 + object.serial = "1" + module.name = "libpipewire-module-rt" + id 2, type PipeWire:Interface:Module/3 + object.serial = "2" + module.name = "libpipewire-module-protocol-native" + id 3, type PipeWire:Interface:SecurityContext/3 + object.serial = "3" + id 4, type PipeWire:Interface:Module/3 + object.serial = "4" + module.name = "libpipewire-module-profiler" + id 5, type PipeWire:Interface:Profiler/3 + object.serial = "5" + +List only nodes +=============== + +.. code-block:: console + + root@: pw-cli list-objects Node + id 29, type PipeWire:Interface:Node/3 + object.serial = "29" + factory.id = "11" + priority.driver = "200000" + node.name = "Dummy-Driver" + id 30, type PipeWire:Interface:Node/3 + object.serial = "30" + factory.id = "11" + priority.driver = "190000" + node.name = "Freewheel-Driver" + id 31, type PipeWire:Interface:Node/3 + object.serial = "31" + factory.id = "19" + node.description = "Audio Output" + node.name = "alsa_audio_sink" + media.class = "Audio/Sink" + id 32, type PipeWire:Interface:Node/3 + object.serial = "32" + factory.id = "19" + node.description = "Audio Input" + node.name = "alsa_audio_source" + media.class = "Audio/Source" + +Inspect specific object +======================= + +Inspect specific object using command ``pw-cli info ``. + +.. code-block:: console + + root@: pw-cli info 31 + id: 31 + permissions: rwxm- + type: PipeWire:Interface:Node/3 + input ports: 0/0 + output ports: 8/129 + state: "suspended" + properties: + factory.name = "api.alsa.pcm.source" + node.name = "alsa_audio_source" + node.description = "Audio Input" + media.class = "Audio/Source" + api.alsa.period-size = "1024" + node.driver = "true" + api.alsa.disable-mmap = "false" + api.alsa.disable-batch = "false" + api.alsa.path = "hw:0,0" + audio.rate = "48000" + audio.channels = "8" + +Play and Record Stereo Audio +============================ + +Play audio via ``pw-play``. + +.. code-block:: console + + root@: pw-play + +Record audio via ``pw-record``. + +.. code-block:: console + + root@: pw-record + +Configuration Details +===================== + +A typical PipeWire setup consists of + +- PipeWire daemon +- Session manager (usually WirePlumber) +- Compatibility servers (PulseAudio, JACK) +- Client configuration + +Each of these has its own configuration file which uses SPA JSON format, +which is a relaxed JSON syntax. + +.. list-table:: Configuration files + :widths: 30 70 + :header-rows: 1 + + * - Files + - Purpose + * - pipewire.conf + - Configures the PipeWire daemon + * - client.conf + - Configures PipeWire clients + * - pipewire-pulse.conf + - PulseAudio compatibility server + * - filter-chain.conf + - Audio processing filters + +Instead of modifying the main file, PipeWire recommends using drop-in files +to override only specific settings. For other default paths and syntax info, +refer `PipeWire Conf Manual `__ + +.. code-block:: console + + $ /etc/pipewire/pipewire.conf.d/ + +.. ifconfig:: CONFIG_part_variant in ('AM62DX') + + There are two reference configurations files, sink and source added for + AM62D2-EVM. + + **90-pipewire-sink.conf** + + .. code-block:: text + + # PipeWire sink configuration for AM62D. + + context.objects = [ + { + factory = adapter + args = { + factory.name = api.alsa.pcm.sink + node.name = "alsa_audio_sink" + node.description = "Audio Output" + media.class = "Audio/Sink" + api.alsa.path = "hw:AM62D2EVM,0" + audio.rate = 48000 + audio.channels = 8 + audio.position = [ FL FR FC LFE RL RR SL SR ] + } + } + ] + + **91-pipewire-source.conf** + + .. code-block:: text + + # PipeWire source configuration for AM62D. + + context.objects = [ + { + factory = adapter + args = { + factory.name = api.alsa.pcm.source + node.name = "alsa_audio_source" + node.description = "Audio Input" + media.class = "Audio/Source" + api.alsa.path = "hw:AM62D2EVM,0" + audio.rate = 48000 + audio.channels = 8 + audio.position = [ FL FR FC LFE RL RR SL SR ] + } + } + ] + +.. ifconfig:: CONFIG_part_variant not in ('AM62DX') + + For other platforms, you can use similar configuration files for sink and source. + Below are example configurations for both. + + **90-pipewire-sink.conf** + + .. code-block:: text + + # PipeWire sink configuration + context.objects = [ + { + factory = adapter + args = { + factory.name = api.alsa.pcm.sink + node.name = "alsa_audio_sink" + node.description = "Audio Output" + media.class = "Audio/Sink" + api.alsa.path = "hw:0,0" + audio.rate = 48000 + audio.channels = 2 + audio.position = [ FL FR ] + } + } + ] + + **91-pipewire-source.conf** + + .. code-block:: text + + # PipeWire source configuration + context.objects = [ + { + factory = adapter + args = { + factory.name = api.alsa.pcm.source + node.name = "alsa_audio_source" + node.description = "Audio Input" + media.class = "Audio/Source" + api.alsa.path = "hw:0,0" + audio.rate = 48000 + audio.channels = 2 + audio.position = [ FL FR ] + } + } + ] + +Both files use identical structural patterns with only key functional +differences: + +- **context.objects** + Main configuration array defining objects created in PipeWire context. + Each object in this array becomes a node in the PipeWire graph. +- **factory = adapter** + Specifies that this object should be created using the "adapter" + factory. Adapters in PipeWire are used to bridge between different + APIs (in this case, ALSA to PipeWire). Both configuration files use + adapter factory to bridge ALSA hardware to PipeWire nodes. +- **factory.name** + Determines direction: output vs input +- **node.name** + Internal PipeWire node identifier. Creates alsa_audio_sink for playback + and alsa_audio_source for capture. +- **node.description** + Human-readable name in audio apps. +- **media.class** + PipeWire media classification "Audio/Sink" for playback and + "Audio/Source" for recording. +- **api.alsa.path** + For direct hardware access. Only PipeWire can access the audio hardware + and ALSA applications must go through PipeWire. +- **audio.channels** + Configures both input and output for 8 channel audio in case of + AM62D2-EVM and stereo audio in case of other devices. + +These configurations create two fundamental nodes in PipeWire's audio +graph: +- Sink Node: Terminal endpoint for audio playback chains +- Source Node: Starting point for audio capture chains +- Matched Pair: Enables full-duplex audio applications + +For more information, see the upstream `Alsa Configuration `__. + +WirePlumber Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. ifconfig:: CONFIG_part_variant in ('AM62DX') + + Use the command below to list all the available audio sinks and sources. + + .. code-block:: console + + root@: wpctl status + PipeWire 'pipewire-0' [1.6.0, root@am62dxx-evm, cookie:3333499771] + └─ Clients: + 34. WirePlumber [1.6.0, root@am62dxx-evm, pid:9716] + 58. WirePlumber [export] [1.6.0, root@am62dxx-evm, pid:9716] + 94. wpctl [1.6.0, root@am62dxx-evm, pid:9753] + + Audio + ├ Devices: + │ 59. Built-in Audio [alsa] + │ + ├ Sinks: + │ * 31. Audio Output [vol: 1.00] + │ 68. Built-in Audio Stereo [vol: 0.40] + │ + ├ Sources: + │ * 32. Audio Input [vol: 1.00] + │ 69. Built-in Audio Stereo [vol: 1.00] + │ + ├ Filters: + │ + └─ Streams: + + Video + ├ Devices: + │ + ├ Sinks: + │ + ├ Sources: + │ + ├ Filters: + │ + └─ Streams: + + Settings + └─ Default Configured Devices: + 0. Audio/Sink alsa_audio_sink + 1. Audio/Source alsa_audio_source + +.. ifconfig:: CONFIG_part_variant not in ('AM62DX') + + Use the command below to list all the available audio sinks and sources. + + .. code-block:: console + + root@: wpctl status + PipeWire 'pipewire-0' [1.6.0, root@, cookie:3333499771] + └─ Clients: + 34. WirePlumber [1.6.0, root@, pid:9716] + 58. WirePlumber [export] [1.6.0, root@am62dxx-evm, pid:9716] + 94. wpctl [1.6.0, root@, pid:9753] + + Audio + ├ Devices: + │ 59. Built-in Audio [alsa] + │ + ├ Sinks: + │ * 68. Built-in Audio Stereo [vol: 0.40] + │ + ├ Sources: + │ * 69. Built-in Audio Stereo [vol: 1.00] + │ + ├ Filters: + │ + └─ Streams: + + Video + ├ Devices: + │ + ├ Sinks: + │ + ├ Sources: + │ + ├ Filters: + │ + └─ Streams: + +Use ``wpctl`` inspect to display information about the specified object. + +.. code-block:: console + + root@: wpctl inspect + +Defaults source could also be set manually by using the ID number of sinks +and sources: + +.. code-block:: console + + root@: wpctl set-default diff --git a/source/linux/How_to_Guides_Developer_Notes.rst b/source/linux/How_to_Guides_Developer_Notes.rst index da025d99f..01c91e8cd 100644 --- a/source/linux/How_to_Guides_Developer_Notes.rst +++ b/source/linux/How_to_Guides_Developer_Notes.rst @@ -21,6 +21,7 @@ Developer Notes How_to_Guides/Target/How_To_Enable_M2CC3301_in_linux How_to_Guides/Target/How_to_flash_emmc_device How_to_Guides/Target/How_to_emmc_boot + How_to_Guides/Target/How_to_use_PipeWire How_to_Guides/Target/How_to_mmcsd_boot_emmc_uda How_to_Guides/Target/How_to_suspend_to_ram_on_AM62x How_to_Guides/Target/How_to_test_MCAN_on_AM62x