hciconfig
Configure Bluetooth devices
SYNOPSIS
hciconfig [-a|--all] [-s|--short] [-t=bredr|le|amp] [controller [command [args]]]
PARAMETERS
-a, --all
Display full controller information and features
-s, --short
Use compact output format
-t, --type=<type>
Set controller type: bredr (BR/EDR), le (Low Energy), amp (AMP)
--help
Show usage summary and exit
--version
Print version and exit
<controller>
HCI device name, e.g. hci0, hci1
auth [<0|1>]
Disable (0) or enable (1) authentication (default: 1)
class 0x<value>
Set device class (6 hex digits: major, minor, services)
connect [<0|1>]
Disable (0) or enable (1) connect scanning (default: 1)
encrypt [<0|1>]
Disable (0) or enable (1) encryption (default: 0)
name "<name>"
Set device name (quoted string, max 248 chars)
page <interval> <window>
Set paging scan interval/window (0.625ms units, 0x0002-0x8000)
pagescan <interval> <window>
Set page scan interval/window (same range)
pair [<0|1>]
Disable (0) or enable (1) pairing (default: 0)
piscan <interval> <window>
Set inquiry scan interval/window
reset
Reset controller and link keys
roleswitch [<0|1>]
Disable (0) or enable (1) role switch (default: 1)
sspmode [<0|1|2>]
Set SSP mode: off(0), on(1), only(2)
up
Open and initialize HCI device
down
Close HCI device
DESCRIPTION
hciconfig is a command-line tool from the Linux BlueZ Bluetooth stack for querying and configuring Host Controller Interface (HCI) devices, which represent Bluetooth adapters.
It displays device status, features, and parameters like name, class, authentication mode, and scan settings. Without arguments, it lists all detected HCI devices with basic info such as type, bus, BD address, ACL/SCO mtu, and state (UP/RUNNING or DOWN).
Specifying a device (e.g., hci0) shows detailed info. Subcommands set properties: bring interfaces up/down, enable/disable auth/encryption, set device name/class, adjust page/scan intervals, and more. The -a option reveals all features; -s shortens output.
Root privileges are typically required for configuration. It's interactive for troubleshooting Bluetooth but interactive for scripting basic adapter control.
Note: Deprecated in BlueZ 5.41+; prefer bluetoothctl (user-friendly) or btmgmt (low-level mgmt interface) for new code.
CAVEATS
Deprecated: Removed from BlueZ 5.70+; use btmgmt or bluetoothctl. Requires root for config changes. Not for LE-only advertising/scanning (use bluetoothctl). Output assumes kernel support.
DISPLAY COMMANDS
Run hciconfig hci0 features, version, or revision without args to query specific info.
PERMISSIONS
Query works unprivileged; config (up/down/set) needs CAP_NET_ADMIN or root.
HISTORY
Developed in early 2000s by BlueZ project (Qualcomm/Atheros, Marcel Holtmann). Integral to Linux Bluetooth since kernel 2.4/2.6 eras. Deprecated post-2016 as BlueZ shifted to DBus/MGMT interface for multi-transport support.
SEE ALSO
bluetoothctl(1), btmgmt(8), hcitool(1), hcimtool(1), rfkill(8)


