Skip to content

Instantly share code, notes, and snippets.

Last active May 15, 2024 07:01
Show Gist options
  • Save 0/c73e2557d875446b9603 to your computer and use it in GitHub Desktop.
Save 0/c73e2557d875446b9603 to your computer and use it in GitHub Desktop.
Connecting a Bluetooth device for serial communication on Arch Linux.

The following are instructions for connecting a Bluetooth device for serial communication on Arch Linux using BlueZ 5.31.


The following packages are required:

  • bluez: bluetoothd
  • bluez-utils: bluetoothctl, rfcomm


  1. Start daemon: systemctl start bluetooth

  2. Pair using bluetoothctl:

    power on
    agent on
    scan on
    ... wait ...
    scan off
    pair <dev>
  3. Create serial device: rfcomm bind 0 <dev>

You should now have /dev/rfcomm0.


  1. Remove serial device: rfcomm release 0

  2. Unpair using bluetoothctl:

    remove <dev>
    power off
  3. Stop daemon: systemctl stop bluetooth


Check rfkill list to make sure that the Bluetooth device is not blocked.

Copy link

adlerweb commented Jul 5, 2017

The rfcomm-utility is now considered deprecated and was removed from the official package. You can still find it at au (bluez-utils-compat or bluez-rfcomm).

Copy link

@adlerweb what should be used instead? Today, I came across this page and it still worked on my Debian Testing/Sid system.

Copy link

@adlerweb Same here, any replacement for rfcomm?

Copy link

E1k3 commented Jan 25, 2018

Not that I am aware of, but if you find one, please share it here and on unix.stackexchange

Copy link

hpsaturn commented Apr 6, 2020

Good, with my current version of Debian, Blueman applet fails after pair, it did can't create the serial device (rfcomm bind), but with bluetoothctl works fine. Thanks.

Copy link

Hritik14 commented Dec 3, 2020

Weird for issue on Archlinux.
After pairing, when I attempt to connect via bluetoothctl itself, I get these:

[bluetooth]# connect 38:0B:3C:XX:XX:XX
Attempting to connect to 38:0B:3C:XX:XX:XX
[CHG] Device 38:0B:3C:XX:XX:XX Connected: yes
Failed to connect: org.bluez.Error.Failed
[CHG] Device 38:0B:3C:XX:XX:XX Connected: no

Made me scratch my head for an hour when I found this gist and just rfcomm bind 0 <dev> worked.

EDIT: Just figured out the even the wiki suggests to only pair. Damn.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment