| # SPDX-License-Identifier: GPL-2.0-only |
| # |
| # Bluetooth subsystem configuration |
| # |
| |
| menuconfig BT |
| tristate "Bluetooth subsystem support" |
| depends on !S390 |
| depends on RFKILL || !RFKILL |
| select CRC16 |
| select CRYPTO |
| select CRYPTO_SKCIPHER |
| select CRYPTO_LIB_AES |
| imply CRYPTO_AES |
| select CRYPTO_CMAC |
| select CRYPTO_ECB |
| select CRYPTO_SHA256 |
| select CRYPTO_ECDH |
| help |
| Bluetooth is low-cost, low-power, short-range wireless technology. |
| It was designed as a replacement for cables and other short-range |
| technologies like IrDA. Bluetooth operates in personal area range |
| that typically extends up to 10 meters. More information about |
| Bluetooth can be found at <https://www.bluetooth.com/>. |
| |
| Linux Bluetooth subsystem consist of several layers: |
| Bluetooth Core |
| HCI device and connection manager, scheduler |
| SCO audio links |
| L2CAP (Logical Link Control and Adaptation Protocol) |
| SMP (Security Manager Protocol) on LE (Low Energy) links |
| ISO isochronous links |
| HCI Device drivers (Interface to the hardware) |
| RFCOMM Module (RFCOMM Protocol) |
| BNEP Module (Bluetooth Network Encapsulation Protocol) |
| CMTP Module (CAPI Message Transport Protocol) |
| HIDP Module (Human Interface Device Protocol) |
| |
| Say Y here to compile Bluetooth support into the kernel or say M to |
| compile it as module (bluetooth). |
| |
| To use Linux Bluetooth subsystem, you will need several user-space |
| utilities like hciconfig and bluetoothd. These utilities and updates |
| to Bluetooth kernel modules are provided in the BlueZ packages. For |
| more information, see <http://www.bluez.org/>. |
| |
| config BT_BREDR |
| bool "Bluetooth Classic (BR/EDR) features" |
| depends on BT |
| default y |
| help |
| Bluetooth Classic includes support for Basic Rate (BR) |
| available with Bluetooth version 1.0b or later and support |
| for Enhanced Data Rate (EDR) available with Bluetooth |
| version 2.0 or later. |
| |
| source "net/bluetooth/rfcomm/Kconfig" |
| |
| source "net/bluetooth/bnep/Kconfig" |
| |
| source "net/bluetooth/cmtp/Kconfig" |
| |
| source "net/bluetooth/hidp/Kconfig" |
| |
| config BT_HS |
| bool "Bluetooth High Speed (HS) features" |
| depends on BT_BREDR |
| help |
| Bluetooth High Speed includes support for off-loading |
| Bluetooth connections via 802.11 (wifi) physical layer |
| available with Bluetooth version 3.0 or later. |
| |
| config BT_LE |
| bool "Bluetooth Low Energy (LE) features" |
| depends on BT |
| default y |
| help |
| Bluetooth Low Energy includes support low-energy physical |
| layer available with Bluetooth version 4.0 or later. |
| |
| config BT_LE_L2CAP_ECRED |
| bool "Bluetooth L2CAP Enhanced Credit Flow Control" |
| depends on BT_LE |
| default y |
| help |
| Bluetooth Low Energy L2CAP Enhanced Credit Flow Control available with |
| Bluetooth version 5.2 or later. |
| |
| This can be overridden by passing bluetooth.enable_ecred=[1|0] |
| on the kernel commandline. |
| |
| config BT_6LOWPAN |
| tristate "Bluetooth 6LoWPAN support" |
| depends on BT_LE && 6LOWPAN |
| help |
| IPv6 compression over Bluetooth Low Energy. |
| |
| config BT_LEDS |
| bool "Enable LED triggers" |
| depends on BT |
| depends on LEDS_CLASS |
| select LEDS_TRIGGERS |
| help |
| This option selects a few LED triggers for different |
| Bluetooth events. |
| |
| config BT_MSFTEXT |
| bool "Enable Microsoft extensions" |
| depends on BT |
| help |
| This options enables support for the Microsoft defined HCI |
| vendor extensions. |
| |
| config BT_AOSPEXT |
| bool "Enable Android Open Source Project extensions" |
| depends on BT |
| help |
| This options enables support for the Android Open Source |
| Project defined HCI vendor extensions. |
| |
| config BT_DEBUGFS |
| bool "Export Bluetooth internals in debugfs" |
| depends on BT && DEBUG_FS |
| default y |
| help |
| Provide extensive information about internal Bluetooth states |
| in debugfs. |
| |
| config BT_SELFTEST |
| bool "Bluetooth self testing support" |
| depends on BT && DEBUG_KERNEL |
| help |
| Run self tests when initializing the Bluetooth subsystem. This |
| is a developer option and can cause significant delay when booting |
| the system. |
| |
| When the Bluetooth subsystem is built as module, then the test |
| cases are run first thing at module load time. When the Bluetooth |
| subsystem is compiled into the kernel image, then the test cases |
| are run late in the initcall hierarchy. |
| |
| config BT_SELFTEST_ECDH |
| bool "ECDH test cases" |
| depends on BT_LE && BT_SELFTEST |
| help |
| Run test cases for ECDH cryptographic functionality used by the |
| Bluetooth Low Energy Secure Connections feature. |
| |
| config BT_SELFTEST_SMP |
| bool "SMP test cases" |
| depends on BT_LE && BT_SELFTEST |
| help |
| Run test cases for SMP cryptographic functionality, including both |
| legacy SMP as well as the Secure Connections features. |
| |
| config BT_FEATURE_DEBUG |
| bool "Enable runtime option for debugging statements" |
| depends on BT && !DYNAMIC_DEBUG |
| help |
| This provides an option to enable/disable debugging statements |
| at runtime via the experimental features interface. |
| |
| source "drivers/bluetooth/Kconfig" |