%general-entities; ]> $LastChangedBy$ $Date$ BlueZ-&bluez-version; BlueZ Introduction to BlueZ The BlueZ package contains the Bluetooth protocol stack for Linux. &lfs81_checked; Package Information Download (HTTP): Download (FTP): Download MD5 sum: &bluez-md5sum; Download size: &bluez-size; Estimated disk space required: &bluez-buildsize; Estimated build time: &bluez-time; Additional Downloads Optional patch (required to work properly with gnome-bluetooth and/or kde bluedevil): BlueZ Dependencies Required , , and User Notes: Kernel Configuration If you are building this package to use bluetooth devices (rather than as a build dependency), enable the following options in the kernel configuration and recompile the kernel if necessary: [*] Networking support ---> [CONFIG_NET] </M> Bluetooth subsystem support ---> [CONFIG_BT] <*/M> RFCOMM protocol support [CONFIG_BT_RFCOMM] [*] RFCOMM TTY support [CONFIG_BT_RFCOMM_TTY] <*/M> BNEP protocol support [CONFIG_BT_BNEP] [*] Multicast filter support [CONFIG_BT_BNEP_MC_FILTER] [*] Protocol filter support [CONFIG_BT_BNEP_PROTO_FILTER] <*/M> HIDP protocol support [CONFIG_BT_HIDP] Bluetooth device drivers ---> (Select the appropriate drivers for your Bluetooth hardware) <*/M> RF switch subsystem support ---> [CONFIG_RFKILL] bluez Installation of BlueZ If you are going to use BlueZ with gnome-bluetooth and/or kde bluedevil, apply the following patch: patch -Np1 -i ../bluez-&bluez-version;-obexd_without_systemd-1.patch Install BlueZ by running the following commands: ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --enable-library \ --disable-systemd && make ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --enable-library && make To test the results, issue: make check. One test (unit/test-gatt) may fail with a segmentation fault. This appears to happen if one of the kernel CONFIG_CRYPTO_ items is not set, but the exact item has not been determined. Now, as the root user: make install && ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin Install the main configuration file as the root user: install -v -dm755 /etc/bluetooth && install -v -m644 src/main.conf /etc/bluetooth/main.conf If desired, install the API documentation as the root user: install -v -dm755 /usr/share/doc/bluez-&bluez-version; && install -v -m644 doc/*.txt /usr/share/doc/bluez-&bluez-version; Command Explanations --enable-library: This switch enables building the BlueZ 4 compatibility library which is required by some applications. --disable-systemd: This switch is needed because systemd is not part of LFS/BLFS. If you are using systemd, remove this switch. ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin: This command makes access to the bluetooth daemon more convenient. Configuring BlueZ Configuration Files /etc/bluetooth/main.conf is installed automatically during the install. Additionally, there are three supplementary configuration files. /etc/sysconfig/bluetooth is installed as a part of the boot script below. In addition, you optionally can install the following, as the root user: cat > /etc/bluetooth/rfcomm.conf << "EOF" # Start rfcomm.conf # Set up the RFCOMM configuration of the Bluetooth subsystem in the Linux kernel. # Use one line per command # See the rfcomm man page for options # End of rfcomm.conf EOF cat > /etc/bluetooth/uart.conf << "EOF" # Start uart.conf # Attach serial devices via UART HCI to BlueZ stack # Use one line per device # See the hciattach man page for options # End of uart.conf EOF /etc/bluetooth/main.conf <phrase revision="sysv">Boot Script</phrase> <phrase revision="systemd">Systemd Socket</phrase> To automatically start the bluetoothd daemon when the system is rebooted, install the /etc/rc.d/init.d/bluetooth bootscript from the package. To start the bluetoothd daemon at boot, enable the previously installed systemd unit by running the following command as the root user: bluetooth make install-bluetooth systemctl enable bluetooth Systemd will start the Bluetooth daemon only when a bluetooth device is detected on the system. Contents Installed Programs Installed Library Installed Directories bccmd, bluemoon, bluetoothctl, bluetoothd (symlink), btattach, btmon, ciptool, hciattach, hciconfig, hcidump, hcitool, hex2hcd, l2ping, l2test, mpris-proxy, rctest, rfcomm, and sdptool libbluetooth.so /etc/bluetooth, /usr/{include,libexec}/bluetooth, and /usr/share/doc/bluez-&bluez-version; Short Descriptions bccmd is used to issue BlueCore commands to Cambridge Silicon Radio devices. bccmd bluemoon is a Bluemoon configuration utility. bluemoon bluetoothctl is the interactive Bluetooth control program. bluetoothctl bluetoothd is the Bluetooth daemon. bluetoothd btmon provides access to the Bluetooth subsystem monitor infrastructure for reading HCI traces. btmon ciptool is used to set up, maintain, and inspect the CIP configuration of the Bluetooth subsystem in the Linux kernel. ciptool hciattach is used to attach a serial UART to the Bluetooth stack as HCI transport interface. hciattach hciconfig is used to configure Bluetooth devices. hciconfig hcidump reads raw HCI data coming from and going to a Bluetooth device and prints to screen commands, events and data in a human-readable form. hcidump hcitool is used to configure Bluetooth connections and send some special command to Bluetooth devices. hcitool hex2hcd is used to convert a file needed by Broadcom devices to hcd (Broadcom bluetooth firmware) format. hex2hcd l2ping is used to send a L2CAP echo request to the Bluetooth MAC address given in dotted hex notation. l2ping l2test is a L2CAP testing program. l2test rctest is used to test RFCOMM communications on the Bluetooth stack. rctest rfcomm is used to set up, maintain, and inspect the RFCOMM configuration of the Bluetooth subsystem in the Linux kernel. rfcomm sdptool is used to perform SDP queries on Bluetooth devices. sdptool libbluetooth.so contains the BlueZ 4 API functions. libbluetooth.so