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