BLUETOOTHCTL-ENDPOINT(1)
π bluetoothctl-endpoint π
okay so bestie, this is the BLUETOOTHCTL-ENDPOINT(1) page from the BlueZ manual β the Linux System Administration one β and we are about to make media endpoints make sense. It's giving βaudio streaming admin but make it cuteβ β¨
π NAME π
bluetoothctl-endpoint β Endpoint Submenu. That's the name, and honestly it ate π
πΈ SYNOPSIS πΈ
bluetoothctl [--options] [endpoint.commands]
This submenu manages media endpoints for audio streaming using the org.bluez.MediaEndpoint(5) and org.bluez.Media(5) interfaces. No cap, that's the whole vibe π¦
π§ ENDPOINT COMMANDS π§
π«Ά list π«Ά
List available endpoints. Iconic. Let's see what's in the group chat π
Usage:
Usage > list [local]
[local]β Only show locally registered endpoints (optional, shows all if omitted)
Example: List all available endpoints (local and remote)
> list
Example: List only locally registered endpoints
> list local
π«Ά show π«Ά
Endpoint information. It's giving βtell me everythingβ πββοΈ
Usage:
Usage > show [endpoint]
Uses org.bluez.MediaEndpoint(5) properties
[endpoint]β Path to specific endpoint to display (optional, shows current selection if omitted)
Example: Show information for currently selected endpoint
> show
Example: Show local endpoint information
> show /local/endpoint/ep0
Example: Show remote endpoint information
> show /org/bluez/hci0/dev_00_11_22_33_44_55/ep1
Example: Show another local endpoint
> show /local/endpoint/ep1
π«Ά register π«Ά
Register Endpoint. This is where you make it official, bestie π
Usage:
Usage > register <UUID> <codec[:company]> [capabilities...]
Uses org.bluez.Media(5) method RegisterEndpoint
<UUID>β Bluetooth service UUID for the endpoint type (required)<codec[:company]>β Codec ID in hex format, optionally with company ID (required)[capabilities...]β Optional codec-specific capability data in hex format
Example: LC3 BAP source
>endpoint.register 00002bcb-0000-1000-8000-00805f9b34fb 0x06
>Auto Accept (yes/no): y
>Max Transports (auto/value): a
>Locations: a
>Supported Context (value): 3
>Context (value): 3
>CIG (auto/value): a
>CIS (auto/value): a
Example: LC3 BAP sink with extra capabilities
>endpoint.register 00002bc9-0000-1000-8000-00805f9b34fb 0x06 "0x03 0xe5 0x03 0x00 0x02 0xe6 0x07"
>Enter Metadata (value/no): n
>Auto Accept (yes/no): y
>Max Transports (auto/value): a
>Locations: a
>Supported Context (value): 3
>Context (value): 3
>CIG (auto/value): a
>CIS (auto/value): a
Example: LC3 BAP Broadcast source
>endpoint.register 00001852-0000-1000-8000-00805f9b34fb 0x06
>Auto Accept (yes/no): y
>Max Transports (auto/value): a
>Locations: 3
>Supported Context (value): 1
Example: LC3 BAP Broadcast sink
>endpoint.register 00001851-0000-1000-8000-00805f9b34fb 0x06
>Auto Accept (yes/no): y
>Max Transports (auto/value): a
>Locations: 3
>Supported Context (value): 1
Note: If running the setup with an audio server that has LE Audio support (such as PipeWire) it will automatically register endpoints according to the configured roles. For more details about configuring a Broadcast Source with PipeWire check: https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/doc/dox/config/pipewire-props.7.md π
π«Ά unregister π«Ά
Unregister Endpoint. Time to leave the group chat, respectfully π
Usage:
Usage > unregister <UUID/object>
Uses org.bluez.Media(5) method UnregisterEndpoint
<UUID/object>β Either the service UUID or the object path of the endpoint to unregister
Example: Unregister LC3 source endpoint by UUID
> unregister 00002bcb-0000-1000-8000-00805f9b34fb
Example: Unregister LC3 sink endpoint by UUID
> unregister 00002bc9-0000-1000-8000-00805f9b34fb
Example: Unregister broadcast source endpoint by UUID
> unregister 00001852-0000-1000-8000-00805f9b34fb
Example: Unregister broadcast sink endpoint by UUID
> unregister 00001851-0000-1000-8000-00805f9b34fb
Example: Unregister endpoint by object path
> unregister /local/endpoint/ep0
Example: Unregister another endpoint by object path
> unregister /local/endpoint/ep1
Example: Unregister source endpoint by path
> unregister /local/endpoint/source0
Example: Unregister sink endpoint by path
> unregister /local/endpoint/sink0
Note: If the endpoint was registered by an audio server, it can't be unregistered from bluetoothctl. This must be done by the audio server as well. No sneaky bypass, bestie π
π«Ά config π«Ά
Configure Endpoint. Matchmaker, matchmaker, make me a match π
Usage:
Usage > config <endpoint> <local endpoint> [preset]
Uses org.bluez.MediaEndpoint(5) method SetConfiguration
<endpoint>β Path to the remote endpoint to configure<local endpoint>β Path to the local endpoint to use for the configuration[preset]β Audio quality preset name (optional, auto-detected if omitted)
Example: Configure remote endpoint with local endpoint (auto preset)
> config /org/bluez/hci0/dev_00_11_22_33_44_55/ep0 /local/endpoint/ep0
Example: Configure LE Audio Unicast with BAP setting 32_1_1
> config /org/bluez/hci0/dev_00_11_22_33_44_55/ep0 /local/endpoint/ep0 32_1_1
Example: Configure LE Audio Broadcast Source
> config /org/bluez/hci0/dev_00_11_22_33_44_55/bis0 /local/endpoint/broadcast0
Note: If the endpoint was registered by an audio server, it can't be configured from bluetoothctl. This must be done by the audio server as well. The audio server has main character energy here π
π«Ά presets π«Ά
List available presets. This is the preset menu and it is lowkey huge, so buckle up π’
Usage:
Usage > presets <endpoint>/<UUID> [codec[:company]] [preset] [codec config] [metadata]
<endpoint>/<UUID>β Either endpoint path or service UUID to work with presets[codec[:company]]β Codec ID with optional company identifier[preset]β Preset name to display details or create custom preset[codec config]β Custom codec configuration data in hex format[metadata]β Additional metadata for the preset
Example: using endpoint
>presets /local/endpoint/ep0 32_1_1
>presets /local/endpoint/ep0
Preset 32_1_1
Configuration.**>0: len 0x02 type 0x01
Configuration.Sampling Frequency: 32 Khz (0x06)
Configuration.**>1: len 0x02 type 0x02
Configuration.Frame Duration: 7.5 ms (0x00)
Configuration.**>2: len 0x03 type 0x04
Configuration.Frame Length: 60 (0x003c)
Example: List all available presets for local endpoint
>presets /local/endpoint/ep0
Example: List all presets for another endpoint
>presets /local/endpoint/ep1
Example: using UUID
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 32_1_1
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06
...
*32_1_1
Example: List all LC3 sink presets
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06
Example: List all LC3 source presets
>presets 00002bcb-0000-1000-8000-00805f9b34fb 0x06
Example: List all broadcast source presets
>presets 00001852-0000-1000-8000-00805f9b34fb 0x06
Example: List all broadcast sink presets
>presets 00001851-0000-1000-8000-00805f9b34fb 0x06
Example: Show details for 48kHz stereo preset
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 48_2_1
Example: Show details for 24kHz mono high-quality preset
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 24_1_2
Example: Show details for 16kHz mono preset
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 16_1_1
Example: setting up LC3 custom preset
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 custom
>[Codec] Enter frequency (Khz): 48
>[Codec] Enter frame duration (ms): 10
>[Codec] Enter channel allocation: 3
>[Codec] Enter frame length: 100
>[QoS] Enter Target Latency (Low, Balance, High): Low
>[QoS] Enter SDU Interval (us): 1000
>[QoS] Enter Framing (Unframed, Framed): Unframed
>[QoS] Enter PHY (1M, 2M): 2M
>[QoS] Enter Max SDU: 200
>[QoS] Enter RTN: 3
>[QoS] Enter Max Transport Latency (ms): 10
>[QoS] Enter Presentation Delay (us): 20000
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06
...
*custom
Example: setting up LC3 custom preset with extra configuration
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 custom "0x03 0xe8 0x00 0x00 0x02 0xe9 0x00"
>[Codec] Enter frequency (Khz): 48
>[Codec] Enter frame duration (ms): 10
>[Codec] Enter channel allocation: 3
>[Codec] Enter frame length: 100
>[QoS] Enter Target Latency (Low, Balance, High): Low
>[QoS] Enter SDU Interval (us): 1000
>[QoS] Enter Framing (Unframed, Framed): Unframed
>[QoS] Enter PHY (1M, 2M): 2M
>[QoS] Enter Max SDU: 200
>[QoS] Enter RTN: 3
>[QoS] Enter Max Transport Latency (ms): 10
>[QoS] Enter Presentation Delay (us): 20000
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06
...
*custom
π RESOURCES π
http://www.bluez.org β the BlueZ home base, bestie π¦
π REPORTING BUGS π
linux-bluetooth@vger.kernel.org β send the bug reports here, no cap π
π COPYRIGHT π
Free use of this software is granted under the terms of the GNU Lesser General Public Licenses (LGPL). Respect the license and slay responsibly π
okay bye bestie β this was BLUETOOTHCTL-ENDPOINT(1) from the BlueZ manual, source/version BlueZ, dated November 2022. Periodt π
β¨
π¦ where this page comes from
- centos-stream 9: bluez 5.87+2.git8750129efca8-1.el9 Β· GPLv2+
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms