README 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. BlueZ - Bluetooth protocol stack for Linux
  2. ******************************************
  3. Copyright (C) 2000-2001 Qualcomm Incorporated
  4. Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
  5. Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
  6. Compilation and installation
  7. ============================
  8. In order to compile Bluetooth utilities you need following software packages:
  9. - GCC compiler
  10. - GLib library
  11. - D-Bus library
  12. - udev library (optional)
  13. - readline (command line clients)
  14. On a debian based system, this can be done by running the following command:
  15. sudo apt-get build-dep bluez
  16. ./bootstrap
  17. To configure run:
  18. ./configure --prefix=/usr --mandir=/usr/share/man \
  19. --sysconfdir=/etc --localstatedir=/var
  20. Configure automatically searches for all required components and packages.
  21. To compile and install run:
  22. make && make install
  23. Embedded Linux library
  24. ======================
  25. In order to compile mesh support and test client utility the development
  26. version of Embedded Linux library is required to be present. The development
  27. repositories can be found here:
  28. git://git.kernel.org/pub/scm/libs/ell/ell.git
  29. https://kernel.googlesource.com/pub/scm/libs/ell/ell.git
  30. The build systems requires that the Embedded Linux library source code
  31. is available on the same top level directory as the source code:
  32. .
  33. |--- ell
  34. | |--- ell
  35. | `--- unit
  36. `--- bluez
  37. |--- src
  38. `--- tools
  39. It is not required to build or install Embedded Linux library. The build
  40. will happen when building the binaries and it will then be linked internally.
  41. When using --enable-external-ell build option, it is not required that the
  42. Embedded Linux library source code is available in the top level directory.
  43. When neither --enable-mesh nor --enable-btpclient is specified, then this
  44. part is irrelevant and Embedded Linux library is not required.
  45. Kernel Build Options (for Mesh)
  46. ===============================
  47. The Mesh daemon uses kernel provided crypto utilities to perform security
  48. functions required of Bluetooth Mesh. Many standard distributions currently
  49. enable all required crypto features, but a few notable distributions do
  50. not.
  51. If Mesh Cryptography is not working, the following configuration options
  52. may need to be enabled, and the kernel rebuilt.
  53. 1. A minimum of kernel version 4.9 or later is required
  54. 2. The kernel must at a minimum have the following .config options turned on:
  55. CONFIG_CRYPTO_USER
  56. CONFIG_CRYPTO_USER_API
  57. CONFIG_CRYPTO_USER_API_AEAD
  58. CONFIG_CRYPTO_USER_API_HASH
  59. CONFIG_CRYPTO_AES
  60. CONFIG_CRYPTO_CCM
  61. CONFIG_CRYPTO_AEAD
  62. CONFIG_CRYPTO_CMAC
  63. Configuration and options
  64. =========================
  65. For a working system, certain configuration options need to be enabled:
  66. --enable-library
  67. Enable installation of Bluetooth library
  68. By default the Bluetooth library is no longer installed.
  69. The user interfaces or command line utilities do not
  70. require an installed Bluetooth library anymore. This
  71. option is provided for legacy third party applications
  72. that still depend on the library.
  73. When the library installation is enabled, it is a good
  74. idea to use a separate bluez-library or libbluetooth
  75. package for it.
  76. --disable-tools
  77. Disable support for Bluetooth utilities
  78. By default the Bluetooth utilities are built and also
  79. installed. For production systems the tools are not
  80. needed and this option allows to disable them to save
  81. build time and disk space.
  82. When the tools are selected, it is a good idea to
  83. use a separate bluez-tools package for them.
  84. --disable-cups
  85. Disable support for CUPS printer backend
  86. By default the printer backend for CUPS is build and
  87. also installed. For systems that do not require printing
  88. over Bluetooth, this options allows to disable it.
  89. When the CUPS backend is selected, it is a good idea to
  90. use a separate bluez-cups package for it.
  91. --disable-monitor
  92. Disable support for the Bluetooth monitor utility
  93. By default the monitor utility is enabled. It provides
  94. support for HCI level tracing and debugging. For systems
  95. that don't require any kind of tracing or debugging
  96. capabilities, this options allows to disable it.
  97. The monitor utility should be placed in the main package
  98. along with the daemons. It is universally useful.
  99. --disable-client
  100. Disable support for the command line client
  101. By default the command line client is enabled and uses the
  102. readline library. For specific systems where BlueZ is
  103. configured by other means, the command line client can be
  104. disabled and the dependency on readline is removed.
  105. The client should be placed in the main package along
  106. with the daemons. It is universally useful.
  107. --disable-systemd
  108. Disable integration with systemd
  109. By default the integration with systemd is enabled and
  110. installed. This gives the best integration into all
  111. distributions based on systemd.
  112. This option is provided for distributions that do not
  113. support systemd. In that case all integration with the
  114. init system is up to the package.
  115. --disable-a2dp
  116. Disable A2DP profile
  117. By default bluetoothd supports A2DP profile using a built-in
  118. plugin, this option disables it.
  119. This option is provided for distributions that do not have any
  120. audio capabilities.
  121. --disable-avrcp
  122. Disable AVRCP profile
  123. By default bluetoothd supports AVRCP profile using a built-in
  124. plugin, this option disables it.
  125. This option is provided for distributions that do not have any
  126. audio capabilities.
  127. --disable-network
  128. Disable PANU, NAP, GN profiles
  129. By default bluetoothd supports PANU, NAP and GN profile using a
  130. built-in plugin, this option disables it.
  131. This option is provided for distributions that do not have any
  132. network capabilities.
  133. --disable-hid
  134. Disable HID profile
  135. By default bluetoothd supports HID profile using a built-in
  136. plugin, this option disables it.
  137. This option is provided for distributions that do not have any
  138. input capabilities.
  139. --disable-hog
  140. Disable HoG profile
  141. By default bluetoothd supports HoG profile using a built-in
  142. plugin, this option disables it.
  143. This option is provided for distributions that do not have any
  144. input capabilities.
  145. --enable-testing
  146. Enable testing tools
  147. By default tools used only for testing emulation are disabled.
  148. This option can be used to enable them.
  149. It is not recommended to enable this option for production
  150. systems. These tools may contain tests that depend on specific
  151. environment or kernel features in development.
  152. --enable-experimental
  153. Enable experimental tools
  154. By default all tools that are still in development
  155. are disabled. This option can be used to enable them.
  156. It is not recommended to enable this option for production
  157. systems. The behavior of the experimental tools is unstable
  158. and might still change.
  159. --enable-deprecated
  160. Enable deprecated tools
  161. By defauld all tools that are no longer maintained are
  162. disabled. This option can be used to enable them.
  163. It is not recommended to enable this option for production
  164. systems. The behavior of the deprecated tools may be unstable
  165. or simply don't work anymore.
  166. --enable-nfc
  167. This option enable NFC pairing support.
  168. By default the integration with neard is disabled, this gives
  169. the option to enable it in system where neard is supported.
  170. The plugin is built into bluetoothd therefore it does not need
  171. to be package separately.
  172. --enable-sap
  173. This option enable SAP profile using sap plugin.
  174. By default sap plugin is disabled since it requires tight
  175. integration with systems and is very rarely required.
  176. The plugin is built into bluetoothd therefore it does not need
  177. to be package separately.
  178. --enable-health
  179. This option enable health profiles.
  180. By default health plugin is disabled since its profiles are
  181. target for the health industry.
  182. The plugin is built into bluetoothd therefore it does not need
  183. to be package separately.
  184. --enable-midi
  185. This option enable MIDI support via ALSA Sequencer.
  186. By default midi plugin is disabled since it still considered
  187. experimental. When bluetoothd will create a new ALSA Sequencer
  188. client and port for each device connected that supports the
  189. MIDI GATT primary service.
  190. The plugin is built into bluetoothd therefore it does not need
  191. to be package separately.
  192. Information
  193. ===========
  194. Mailing lists:
  195. linux-bluetooth@vger.kernel.org
  196. For additional information about the project visit BlueZ web site:
  197. http://www.bluez.org