Kconfig 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # Bluetooth subsystem configuration
  4. #
  5. menuconfig BT
  6. tristate "Bluetooth subsystem support"
  7. depends on !S390
  8. depends on RFKILL || !RFKILL
  9. select CRC16
  10. select CRYPTO
  11. select CRYPTO_SKCIPHER
  12. select CRYPTO_LIB_AES
  13. imply CRYPTO_AES
  14. select CRYPTO_CMAC
  15. select CRYPTO_ECB
  16. select CRYPTO_SHA256
  17. select CRYPTO_ECDH
  18. help
  19. Bluetooth is low-cost, low-power, short-range wireless technology.
  20. It was designed as a replacement for cables and other short-range
  21. technologies like IrDA. Bluetooth operates in personal area range
  22. that typically extends up to 10 meters. More information about
  23. Bluetooth can be found at <https://www.bluetooth.com/>.
  24. Linux Bluetooth subsystem consist of several layers:
  25. Bluetooth Core
  26. HCI device and connection manager, scheduler
  27. SCO audio links
  28. L2CAP (Logical Link Control and Adaptation Protocol)
  29. SMP (Security Manager Protocol) on LE (Low Energy) links
  30. ISO isochronous links
  31. HCI Device drivers (Interface to the hardware)
  32. RFCOMM Module (RFCOMM Protocol)
  33. BNEP Module (Bluetooth Network Encapsulation Protocol)
  34. CMTP Module (CAPI Message Transport Protocol)
  35. HIDP Module (Human Interface Device Protocol)
  36. Say Y here to compile Bluetooth support into the kernel or say M to
  37. compile it as module (bluetooth).
  38. To use Linux Bluetooth subsystem, you will need several user-space
  39. utilities like hciconfig and bluetoothd. These utilities and updates
  40. to Bluetooth kernel modules are provided in the BlueZ packages. For
  41. more information, see <http://www.bluez.org/>.
  42. config BT_BREDR
  43. bool "Bluetooth Classic (BR/EDR) features"
  44. depends on BT
  45. default y
  46. help
  47. Bluetooth Classic includes support for Basic Rate (BR)
  48. available with Bluetooth version 1.0b or later and support
  49. for Enhanced Data Rate (EDR) available with Bluetooth
  50. version 2.0 or later.
  51. source "net/bluetooth/rfcomm/Kconfig"
  52. source "net/bluetooth/bnep/Kconfig"
  53. source "net/bluetooth/cmtp/Kconfig"
  54. source "net/bluetooth/hidp/Kconfig"
  55. config BT_LE
  56. bool "Bluetooth Low Energy (LE) features"
  57. depends on BT
  58. default y
  59. help
  60. Bluetooth Low Energy includes support low-energy physical
  61. layer available with Bluetooth version 4.0 or later.
  62. config BT_LE_L2CAP_ECRED
  63. bool "Bluetooth L2CAP Enhanced Credit Flow Control"
  64. depends on BT_LE
  65. default y
  66. help
  67. Bluetooth Low Energy L2CAP Enhanced Credit Flow Control available with
  68. Bluetooth version 5.2 or later.
  69. This can be overridden by passing bluetooth.enable_ecred=[1|0]
  70. on the kernel commandline.
  71. config BT_6LOWPAN
  72. tristate "Bluetooth 6LoWPAN support"
  73. depends on BT_LE && 6LOWPAN
  74. help
  75. IPv6 compression over Bluetooth Low Energy.
  76. config BT_LEDS
  77. bool "Enable LED triggers"
  78. depends on BT
  79. depends on LEDS_CLASS
  80. select LEDS_TRIGGERS
  81. help
  82. This option selects a few LED triggers for different
  83. Bluetooth events.
  84. config BT_MSFTEXT
  85. bool "Enable Microsoft extensions"
  86. depends on BT
  87. help
  88. This options enables support for the Microsoft defined HCI
  89. vendor extensions.
  90. config BT_AOSPEXT
  91. bool "Enable Android Open Source Project extensions"
  92. depends on BT
  93. help
  94. This options enables support for the Android Open Source
  95. Project defined HCI vendor extensions.
  96. config BT_DEBUGFS
  97. bool "Export Bluetooth internals in debugfs"
  98. depends on BT && DEBUG_FS
  99. default y
  100. help
  101. Provide extensive information about internal Bluetooth states
  102. in debugfs.
  103. config BT_SELFTEST
  104. bool "Bluetooth self testing support"
  105. depends on BT && DEBUG_KERNEL
  106. help
  107. Run self tests when initializing the Bluetooth subsystem. This
  108. is a developer option and can cause significant delay when booting
  109. the system.
  110. When the Bluetooth subsystem is built as module, then the test
  111. cases are run first thing at module load time. When the Bluetooth
  112. subsystem is compiled into the kernel image, then the test cases
  113. are run late in the initcall hierarchy.
  114. config BT_SELFTEST_ECDH
  115. bool "ECDH test cases"
  116. depends on BT_LE && BT_SELFTEST
  117. help
  118. Run test cases for ECDH cryptographic functionality used by the
  119. Bluetooth Low Energy Secure Connections feature.
  120. config BT_SELFTEST_SMP
  121. bool "SMP test cases"
  122. depends on BT_LE && BT_SELFTEST
  123. help
  124. Run test cases for SMP cryptographic functionality, including both
  125. legacy SMP as well as the Secure Connections features.
  126. config BT_FEATURE_DEBUG
  127. bool "Enable runtime option for debugging statements"
  128. depends on BT && !DYNAMIC_DEBUG
  129. help
  130. This provides an option to enable/disable debugging statements
  131. at runtime via the experimental features interface.
  132. source "drivers/bluetooth/Kconfig"