mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-11-30 07:34:27 +08:00
2a5c9cf632
As the README chunk says, disabled by default, since they rely on internal API/ABI and can break at any point. Instead everyone affected should work and upstream their plugin into the bluez project.
315 lines
8.8 KiB
Plaintext
315 lines
8.8 KiB
Plaintext
BlueZ - Bluetooth protocol stack for Linux
|
|
******************************************
|
|
|
|
Copyright (C) 2000-2001 Qualcomm Incorporated
|
|
Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
|
|
Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
|
|
|
|
|
|
Compilation and installation
|
|
============================
|
|
|
|
In order to compile Bluetooth utilities you need following software packages:
|
|
- GCC compiler
|
|
- GLib library
|
|
- D-Bus library
|
|
- udev library (optional)
|
|
- readline (command line clients)
|
|
|
|
On a debian based system, this can be done by running the following command:
|
|
sudo apt-get build-dep bluez
|
|
./bootstrap
|
|
|
|
To configure run:
|
|
./configure --prefix=/usr --mandir=/usr/share/man \
|
|
--sysconfdir=/etc --localstatedir=/var
|
|
|
|
Configure automatically searches for all required components and packages.
|
|
|
|
To compile and install run:
|
|
make && make install
|
|
|
|
|
|
Embedded Linux library
|
|
======================
|
|
|
|
In order to compile mesh support and test client utility the development
|
|
version of Embedded Linux library is required to be present. The development
|
|
repositories can be found here:
|
|
|
|
git://git.kernel.org/pub/scm/libs/ell/ell.git
|
|
https://kernel.googlesource.com/pub/scm/libs/ell/ell.git
|
|
|
|
The build systems requires that the Embedded Linux library source code
|
|
is available on the same top level directory as the source code:
|
|
|
|
.
|
|
|--- ell
|
|
| |--- ell
|
|
| `--- unit
|
|
`--- bluez
|
|
|--- src
|
|
`--- tools
|
|
|
|
It is not required to build or install Embedded Linux library. The build
|
|
will happen when building the binaries and it will then be linked internally.
|
|
|
|
When using --enable-external-ell build option, it is not required that the
|
|
Embedded Linux library source code is available in the top level directory.
|
|
|
|
When neither --enable-mesh nor --enable-btpclient is specified, then this
|
|
part is irrelevant and Embedded Linux library is not required.
|
|
|
|
|
|
Kernel Build Options (for Mesh)
|
|
===============================
|
|
|
|
The Mesh daemon uses kernel provided crypto utilities to perform security
|
|
functions required of Bluetooth Mesh. Many standard distributions currently
|
|
enable all required crypto features, but a few notable distributions do
|
|
not.
|
|
|
|
If Mesh Cryptography is not working, the following configuration options
|
|
may need to be enabled, and the kernel rebuilt.
|
|
|
|
1. A minimum of kernel version 4.9 or later is required
|
|
|
|
2. The kernel must at a minimum have the following .config options turned on:
|
|
CONFIG_CRYPTO_USER
|
|
CONFIG_CRYPTO_USER_API
|
|
CONFIG_CRYPTO_USER_API_AEAD
|
|
CONFIG_CRYPTO_USER_API_HASH
|
|
CONFIG_CRYPTO_USER_API_SKCIPHER
|
|
|
|
CONFIG_CRYPTO_AES
|
|
CONFIG_CRYPTO_CCM
|
|
CONFIG_CRYPTO_AEAD
|
|
CONFIG_CRYPTO_CMAC
|
|
|
|
|
|
Configuration and options
|
|
=========================
|
|
|
|
For a working system, certain configuration options need to be enabled:
|
|
|
|
--enable-library
|
|
|
|
Enable installation of Bluetooth library
|
|
|
|
By default the Bluetooth library is no longer installed.
|
|
|
|
The user interfaces or command line utilities do not
|
|
require an installed Bluetooth library anymore. This
|
|
option is provided for legacy third party applications
|
|
that still depend on the library.
|
|
|
|
When the library installation is enabled, it is a good
|
|
idea to use a separate bluez-library or libbluetooth
|
|
package for it.
|
|
|
|
--disable-tools
|
|
|
|
Disable support for Bluetooth utilities
|
|
|
|
By default the Bluetooth utilities are built and also
|
|
installed. For production systems the tools are not
|
|
needed and this option allows to disable them to save
|
|
build time and disk space.
|
|
|
|
When the tools are selected, it is a good idea to
|
|
use a separate bluez-tools package for them.
|
|
|
|
--disable-cups
|
|
|
|
Disable support for CUPS printer backend
|
|
|
|
By default the printer backend for CUPS is build and
|
|
also installed. For systems that do not require printing
|
|
over Bluetooth, this options allows to disable it.
|
|
|
|
When the CUPS backend is selected, it is a good idea to
|
|
use a separate bluez-cups package for it.
|
|
|
|
--disable-monitor
|
|
|
|
Disable support for the Bluetooth monitor utility
|
|
|
|
By default the monitor utility is enabled. It provides
|
|
support for HCI level tracing and debugging. For systems
|
|
that don't require any kind of tracing or debugging
|
|
capabilities, this options allows to disable it.
|
|
|
|
The monitor utility should be placed in the main package
|
|
along with the daemons. It is universally useful.
|
|
|
|
--disable-client
|
|
|
|
Disable support for the command line client
|
|
|
|
By default the command line client is enabled and uses the
|
|
readline library. For specific systems where BlueZ is
|
|
configured by other means, the command line client can be
|
|
disabled and the dependency on readline is removed.
|
|
|
|
The client should be placed in the main package along
|
|
with the daemons. It is universally useful.
|
|
|
|
--disable-systemd
|
|
|
|
Disable integration with systemd
|
|
|
|
By default the integration with systemd is enabled and
|
|
installed. This gives the best integration into all
|
|
distributions based on systemd.
|
|
|
|
This option is provided for distributions that do not
|
|
support systemd. In that case all integration with the
|
|
init system is up to the package.
|
|
|
|
--disable-a2dp
|
|
|
|
Disable A2DP profile
|
|
|
|
By default bluetoothd supports A2DP profile using a built-in
|
|
plugin, this option disables it.
|
|
|
|
This option is provided for distributions that do not have any
|
|
audio capabilities.
|
|
|
|
--disable-avrcp
|
|
|
|
Disable AVRCP profile
|
|
|
|
By default bluetoothd supports AVRCP profile using a built-in
|
|
plugin, this option disables it.
|
|
|
|
This option is provided for distributions that do not have any
|
|
audio capabilities.
|
|
|
|
--disable-network
|
|
|
|
Disable PANU, NAP, GN profiles
|
|
|
|
By default bluetoothd supports PANU, NAP and GN profile using a
|
|
built-in plugin, this option disables it.
|
|
|
|
This option is provided for distributions that do not have any
|
|
network capabilities.
|
|
|
|
--disable-hid
|
|
|
|
Disable HID profile
|
|
|
|
By default bluetoothd supports HID profile using a built-in
|
|
plugin, this option disables it.
|
|
|
|
This option is provided for distributions that do not have any
|
|
input capabilities.
|
|
|
|
--disable-hog
|
|
|
|
Disable HoG profile
|
|
|
|
By default bluetoothd supports HoG profile using a built-in
|
|
plugin, this option disables it.
|
|
|
|
This option is provided for distributions that do not have any
|
|
input capabilities.
|
|
|
|
--enable-testing
|
|
|
|
Enable testing tools
|
|
|
|
By default tools used only for testing emulation are disabled.
|
|
This option can be used to enable them.
|
|
|
|
It is not recommended to enable this option for production
|
|
systems. These tools may contain tests that depend on specific
|
|
environment or kernel features in development.
|
|
|
|
--enable-experimental
|
|
|
|
Enable experimental tools
|
|
|
|
By default all tools that are still in development
|
|
are disabled. This option can be used to enable them.
|
|
|
|
It is not recommended to enable this option for production
|
|
systems. The behavior of the experimental tools is unstable
|
|
and might still change.
|
|
|
|
--enable-deprecated
|
|
|
|
Enable deprecated tools
|
|
|
|
By defauld all tools that are no longer maintained are
|
|
disabled. This option can be used to enable them.
|
|
|
|
It is not recommended to enable this option for production
|
|
systems. The behavior of the deprecated tools may be unstable
|
|
or simply don't work anymore.
|
|
|
|
--enable-external-plugins
|
|
|
|
Enable support for external plugins
|
|
|
|
By default external plugins for bluetoothd and obexd are not
|
|
supported and thus disabled.
|
|
|
|
External plugins require access to internal, undocumented and
|
|
unversioned API in said daemons. As such they can break at any
|
|
time. If you have such plugins, enable this option and work
|
|
actively with the community to make said plugin part of the
|
|
upstream bluez project.
|
|
|
|
--enable-nfc
|
|
|
|
This option enable NFC pairing support.
|
|
|
|
By default the integration with neard is disabled, this gives
|
|
the option to enable it in system where neard is supported.
|
|
|
|
The plugin is built into bluetoothd therefore it does not need
|
|
to be package separately.
|
|
|
|
--enable-sap
|
|
|
|
This option enable SAP profile using sap plugin.
|
|
|
|
By default sap plugin is disabled since it requires tight
|
|
integration with systems and is very rarely required.
|
|
|
|
The plugin is built into bluetoothd therefore it does not need
|
|
to be package separately.
|
|
|
|
--enable-health
|
|
|
|
This option enable health profiles.
|
|
|
|
By default health plugin is disabled since its profiles are
|
|
target for the health industry.
|
|
|
|
The plugin is built into bluetoothd therefore it does not need
|
|
to be package separately.
|
|
|
|
--enable-midi
|
|
|
|
This option enable MIDI support via ALSA Sequencer.
|
|
|
|
By default midi plugin is disabled since it still considered
|
|
experimental. When bluetoothd will create a new ALSA Sequencer
|
|
client and port for each device connected that supports the
|
|
MIDI GATT primary service.
|
|
|
|
The plugin is built into bluetoothd therefore it does not need
|
|
to be package separately.
|
|
|
|
Information
|
|
===========
|
|
|
|
Mailing lists:
|
|
linux-bluetooth@vger.kernel.org
|
|
|
|
For additional information about the project visit BlueZ web site:
|
|
http://www.bluez.org
|