BlueZ is the official Linux Bluetooth protocol stack. You can also find it at the SourceForge BlueZ project page.
The overall goal of the BlueZ project is to make an implementation of the Bluetooth wireless standards specifications for Linux. The code is licensed under the GNU Public licence (GPL) and is now included in the Linux 2.4 and Linux 2.6 kernel series.
You will need to download the following packages at the very least:
bluez-libs installs a bluetooth access library used by the other utilities and tools.
bluez-utils contains the utilities used to manipulate the modules and kernel devices created by the bluetooth stack. The hciconfig util installed by this package is pretty much the equivalent of your typical 'ifconfig'. Since the stack installs a new address family it needs this utility to manipulate the interfaces. The bluetooth network provides capabilities that are much different than a traditional network however, so the commands may seem a bit strange at first.
bluez-sdp provides a daemon and access library used with the Service Discovery Protocol (SDP). This is a base protocol used by two bluetooth devices to determine how they can talk to each other.
bluez-pan provides the Bluetooth Personal Area Networking (PAN). This includes 'pand', the PAN profile daemon and 'dund', the LAN access profile daemon. PAN enabless Bluetooth devices to function as Linux network devices.
bluez-hcidump is the tcpdump of the bluetooth world. HCI stands for Host Controller Interface. The HCI provides an abstraction standard for interface to bluetooth hardware, dictating the operations which the core bluetooth stack should carry out at the interface to the hardware specific driver. By providing a dump at this layer the tool affords a view of all the traffic in from and out to the bluetooth interface without having to worry about the specifics of USB, pcmcia, or UART interfaces. RFCOMM is a standard for creating RS-232 style serial ports over bluetooth.