{{tag>[linux serial console bluetooth]}}
=====Serial console over Bluetooth=====
====Notes====
* The rfcomm process has higher CPU usage when connected.
* The rfcomm utility is deprecated since Bluez 5.44. No alternative found yet, maybe look into PAN.
====Configure====
===Server===
* Stop ModemManager from interefering:systemctl stop ModemManager
systemctl disable MomdemManager
* Modify ''/etc/bluetooth/main.conf'':
[Policy]
AutoEnable=true
* Start and enable bluetooth service:systemctl enable bluetooth
systemctl start bluetooth
* Create systemd service ''/etc/systemd/system/rfcomm.service''
[Unit]
Description=RFCOMM service
After=bluetooth.service
Requires=bluetooth.service
[Service]
ExecStart=/usr/bin/rfcomm watch hci0 1 setsid /sbin/agetty --8bits --noclear -L rfcomm0 115200 linux
[Install]
WantedBy=multi-user.target
* Enable and start the rfcomm service:systemctl enable rfcomm
systemctl start rfcomm
===Client===
* Stop ModemManager from interefering:systemctl stop ModemManager
systemctl disable MomdemManager
* Add user to ''dialout'' group.
===Pairing and connecting===
* On the server side:bluetoothctl
discoverable on
pairable on
* On the client side:bluetoothctl
scan on
-wait to discover server-
scan off
pair
* On the server:bluetoothctl
discoverable off
pairable off
trust
* Connect to the serial console over bluetooth:
# There should be a rfcomm0 device
crw-rw----. 1 root dialout 216, 0 11 jun 08:14 /dev/rfcomm0
# If device is nonexistent, create one
sudo rfcomm connect /dev/rfcomm0 1 &
Connected /dev/rfcomm0 to on channel 1
Press CTRL-C for hangup
# Connect to the serial console:
screen /dev/rfcomm0 115200
===Troubleshooting===
* After resizing your terminal, run: ''resize''.
* Check bluetooth is not disabled:rfkill list