RCA-2026-03-27-001: Fix Applied

Resolution

Immediate Actions

  1. Provided one-liner:

    bluetoothctl devices | awk '{print $2}' | xargs -I{} bluetoothctl connect {}
  2. Device connected successfully

Verification

bluetoothctl info | grep -E "Name|Connected"

bluetoothctl Command Reference

Controller Management

# List controllers
bluetoothctl list

# Show controller info
bluetoothctl show

# Power on/off
bluetoothctl power on
bluetoothctl power off

# Set discoverable (for pairing FROM another device)
bluetoothctl discoverable on
bluetoothctl discoverable off

Device Discovery

# Start scanning
bluetoothctl scan on

# Stop scanning
bluetoothctl scan off

# List discovered devices
bluetoothctl devices

# List only paired devices
bluetoothctl paired-devices

Device Connection

# Pair (one-time, with PIN if required)
bluetoothctl pair XX:XX:XX:XX:XX:XX

# Trust (enable auto-connect)
bluetoothctl trust XX:XX:XX:XX:XX:XX

# Connect
bluetoothctl connect XX:XX:XX:XX:XX:XX

# Disconnect
bluetoothctl disconnect XX:XX:XX:XX:XX:XX

# Remove pairing
bluetoothctl remove XX:XX:XX:XX:XX:XX

# Show device info
bluetoothctl info XX:XX:XX:XX:XX:XX

Non-Interactive Mode

# Single command execution
bluetoothctl power on
bluetoothctl connect XX:XX:XX:XX:XX:XX

# Multiple commands (here-string)
bluetoothctl <<< $'power on\nconnect XX:XX:XX:XX:XX:XX'

# With timeout for scanning
timeout 10 bluetoothctl scan on

One-Liner Patterns (Memorize These)

Connect First Paired Device

bluetoothctl connect $(bluetoothctl paired-devices | awk '{print $2}' | head -1)

Connect by Name Pattern

bluetoothctl connect $(bluetoothctl devices | awk '/Adv360/{print $2}')

Connect All Paired Devices

bluetoothctl paired-devices | awk '{print $2}' | xargs -I{} bluetoothctl connect {}

Disconnect All

bluetoothctl devices Connected | awk '{print $2}' | xargs -I{} bluetoothctl disconnect {}

Quick Status

bluetoothctl devices Connected
bluetoothctl info | awk '/Name|Connected|Battery/'

Reconnect Cycle (Troubleshooting)

MAC="XX:XX:XX:XX:XX:XX"
bluetoothctl disconnect $MAC && sleep 2 && bluetoothctl connect $MAC

Shell Integration

# Quick connect by name pattern
btc() { bluetoothctl connect $(bluetoothctl devices | awk "/$1/{print \$2}"); }

# Connect first paired device
alias bt1='bluetoothctl connect $(bluetoothctl paired-devices | awk "{print \$2}" | head -1)'

# Connect all paired
alias btall='bluetoothctl paired-devices | awk "{print \$2}" | xargs -I{} bluetoothctl connect {}'

# Status
alias bts='bluetoothctl devices Connected && bluetoothctl info 2>/dev/null | awk "/Name|Battery/"'

# Scan for new devices
alias btscan='timeout 15 bluetoothctl scan on'

Usage Examples

# Connect Adv360 keyboard
btc Adv360

# Connect Sony headphones
btc Sony

# Connect first paired device (fastest)
bt1

# Check what's connected
bts

Troubleshooting

Device Won’t Connect

# 1. Check controller is powered
bluetoothctl show | grep Powered

# 2. Remove and re-pair
bluetoothctl remove XX:XX:XX:XX:XX:XX
bluetoothctl scan on
bluetoothctl pair XX:XX:XX:XX:XX:XX
bluetoothctl trust XX:XX:XX:XX:XX:XX
bluetoothctl connect XX:XX:XX:XX:XX:XX

# 3. Restart Bluetooth service
sudo systemctl restart bluetooth

# 4. Check kernel module
lsmod | grep btusb
dmesg | grep -i bluetooth | tail -20

Audio Device Issues

# Check PipeWire/PulseAudio sees device
pactl list cards short
wpctl status

# Set audio profile
bluetoothctl menu audio
bluetoothctl transport <TAB>