LinuxCommandLibrary

bccmd

Configure and control Broadcom Bluetooth devices

SYNOPSIS

bccmd [-i dev] [-t] [-E] [-v] [<ogf ocf>] [<params>]

PARAMETERS

-i, --device=DEV
    Specify local Bluetooth device (e.g., hci0)

-t, --tool
    Enable tool mode for subcommands like hcireset, hcisend

-E, --event
    Enable event reporting from controller

-v, --verbose
    Increase verbosity level for debugging

DESCRIPTION

bccmd is a low-level command-line utility from the BlueZ Bluetooth protocol stack for Linux. It enables direct interaction with Bluetooth host controllers by sending raw Host Controller Interface (HCI) commands and events. This tool is essential for debugging, firmware testing, vendor-specific operations, and advanced hardware configuration not available through user-friendly tools like bluetoothctl.

Users can query controller capabilities, reset adapters, read/write link keys, manage features, and monitor events. bccmd supports multiple controllers via device specification and provides verbose logging. It operates at the HCI layer (OGF/OCF opcode format), making it powerful for developers and sysadmins dealing with Bluetooth stacks. Typically requires root access and is used alongside tools like hciconfig for full adapter management.

CAVEATS

Requires root privileges for most operations.
Intended for advanced users; misuse can disrupt Bluetooth functionality.
Not all controllers support every HCI command.

COMMON USAGE EXAMPLES

Reset controller: bccmd -i hci0 hci reset
Read version: bccmd 0x03 0x0001
Send vendor cmd: bccmd 0x3f 0x0050 param1 param2

HCI OPCODE FORMAT

Commands use <OGF> <OCF> (e.g., 0x03 0x0001 for read local version). See Bluetooth Core Spec for codes.

HISTORY

Introduced in BlueZ 5.37 (2015) as a versatile HCI command sender, evolving from earlier hcitool features. Developed by Linux Bluetooth maintainers for enhanced low-level control.

SEE ALSO

Copied to clipboard