Manual browser: rfcomm_sppd(1)

RFCOMM_SPPD(1) General Commands Manual RFCOMM_SPPD(1)


rfcomm_sppdRFCOMM Serial Port Profile daemon


rfcomm_sppd [-d device] [-m mode] [-p psm] [-s service] [-t tty] {-a address | [-c channel]}


The rfcomm_sppd utility is a Serial Port Profile daemon, providing serial access over an RFCOMM connection to a remote device. rfcomm_sppd can work in client or server mode.

In client mode, rfcomm_sppd initiates an RFCOMM connection to the service at the remote address.

In server mode, rfcomm_sppd registers the service with the local SDP server and listens on the specified RFCOMM channel for an incoming connection, or the first unused channel if none was given.

The options are as follows:

-a address
Client mode. Specify the address of the remote RFCOMM device. The address can be specified as BD_ADDR or name. If given as a name, then the rfcomm_sppd utility will attempt to resolve the name via bt_gethostbyname(3).
-c channel
In server mode, specify the RFCOMM channel number to listen on. rfcomm_sppd will register the service with the local sdpd(8) daemon. Note that registering services with sdpd(8) is a privileged operation.
-d device
Use the local device with the specified address. The device can be specified by BD_ADDR or device name. See btconfig(8) for a list of available devices. If no device is specified, the connection will be set up on a system determined device.
-m mode
Set connection link mode. Supported modes are:

require devices be paired.
auth, plus enable encryption.
encryption, plus change of link key.
-p psm
Specify the “Protocol/Service Multiplexer” value to be used for the RFCOMM protocol. In client mode where Service Discovery is being used, this value will be ignored.
-s service
Name of service class to connect to or register. If no service is given, the default “Serial Port” service class will be used. Known service classes are:

Dialup Networking
LAN access using PPP
Serial Port

In client mode, the service class may be given as a channel number, for instances where the remote device does not provide Service Discovery.

-t tty
Slave pseudo tty name. If this option is given, rfcomm_sppd will detach from the controlling process after the Bluetooth connection is made, and operate over the named pty(4) pair. Otherwise, stdin/stdout will be used.


master pseudo terminals
slave pseudo terminals


The rfcomm_sppd utility exits 0 on success, and >0 if an error occurs.


rfcomm_sppd -a 00:01:02:03:04:05 -s 1 -t /dev/ttyp1

Will open an RFCOMM connection to the server at 00:01:02:03:04:05 on channel 1. Once the connection has been established, rfcomm_sppd will detach and /dev/ttyp1 can be used to communicate with the remote serial port on the server, e.g. with the use of

cu -l /dev/ttyp1

In order to use rfcomm_sppd to automatically create a secured link for pppd(8), use

pty “rfcomm_sppd -a 00:01:02:03:04:05 -s DUN -m secure”

in your pppd(8) configuration file.


The rfcomm_sppd program first appeared in FreeBSD and was ported to NetBSD 4.0 by Iain Hibbert under the sponsorship of Itronix, Inc.


Maksim Yevmenkin <>, Iain Hibbert


Please report if found.
November 2, 2010 NetBSD 7.0