Skip to content

Commit 01996c8

Browse files
committed
coreos-modules: enable the Bluetooth subsystem
Flatcar currently ships no Bluetooth support at all: CONFIG_BT is absent from the kernel configs, so olddefconfig resolves the whole subsystem to n and no Bluetooth modules are built. Enable the core stack (BR/EDR and LE) plus the HCI transports that matter on the hardware Flatcar runs on: - btusb, the transport used by essentially every USB adapter and by the Bluetooth radio in Intel/Realtek/MediaTek/Qualcomm combo chips - hci_uart with serdev, the usual transport on arm64 edge boards - virtio_bt, for VMs with a paravirtualised adapter - hci_vhci, which lets the stack be exercised without real hardware Everything is a module, so nothing is loaded unless Bluetooth hardware is present or the modules are loaded explicitly. RFKILL is enabled because BlueZ needs it to unblock and power adapters, and SERIAL_DEV_BUS because BT_HCIUART_SERDEV depends on it. CRYPTO_ECC/CRYPTO_ECDH are selected by BT for LE Secure Connections. DELL_RBTN is explicitly disabled in the amd64 config: it becomes visible once RFKILL is enabled (X86_PLATFORM_DRIVERS_DELL is already y) but it is a laptop radio-button driver unrelated to this change, and leaving it out keeps the new module set to exactly the Bluetooth closure. This adds 17 modules totalling ~2.45 MiB (arm64, stripped, uncompressed) to /usr/lib/modules. Verified with olddefconfig against linux-6.12.102 for both amd64 and arm64: apart from the symbols listed above, the resulting .config is byte-identical to the current one on both architectures. Userspace is deliberately left out of the image; BlueZ is a better fit for a systemd-sysext. Signed-off-by: Ananth Bhaskararaman <antsub@gmail.com>
1 parent f93cac7 commit 01996c8

3 files changed

Lines changed: 34 additions & 0 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Enabled the Bluetooth subsystem (BR/EDR and LE) in the kernel, together with the USB, UART, virtio and vhci HCI transports. All of it builds as modules, so it is only loaded when Bluetooth hardware is present or the modules are loaded explicitly. Userspace (BlueZ) is not part of the image and can be added with the [bluez sysext](https://github.com/flatcar/sysext-bakery/pull/253) ([scripts#4197](https://github.com/flatcar/scripts/pull/4197))

sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/amd64_defconfig-6.12

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ CONFIG_CRYPTO_SHA1_SSSE3=m
2525
CONFIG_CRYPTO_SHA256_SSSE3=m
2626
CONFIG_DCDBAS=m
2727
CONFIG_DEBUG_BOOT_PARAMS=y
28+
# CONFIG_DELL_RBTN is not set
2829
CONFIG_DELL_RBU=m
2930
CONFIG_DEVICE_PRIVATE=y
3031
CONFIG_DMABUF_MOVE_NOTIFY=y

sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/commonconfig-6.12

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,38 @@ CONFIG_BROADCOM_PHY=m
8080
CONFIG_BSD_DISKLABEL=y
8181
CONFIG_BSD_PROCESS_ACCT=y
8282
CONFIG_BSD_PROCESS_ACCT_V3=y
83+
CONFIG_BT=m
8384
CONFIG_BTRFS_FS=m
8485
CONFIG_BTRFS_FS_POSIX_ACL=y
86+
CONFIG_BT_AOSPEXT=y
87+
CONFIG_BT_BNEP=m
88+
CONFIG_BT_BNEP_MC_FILTER=y
89+
CONFIG_BT_BNEP_PROTO_FILTER=y
90+
CONFIG_BT_BREDR=y
91+
CONFIG_BT_HCIBTUSB=m
92+
CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
93+
CONFIG_BT_HCIBTUSB_BCM=y
94+
CONFIG_BT_HCIBTUSB_MTK=y
95+
CONFIG_BT_HCIBTUSB_POLL_SYNC=y
96+
CONFIG_BT_HCIBTUSB_RTL=y
97+
CONFIG_BT_HCIUART=m
98+
CONFIG_BT_HCIUART_3WIRE=y
99+
CONFIG_BT_HCIUART_BCM=y
100+
CONFIG_BT_HCIUART_BCSP=y
101+
CONFIG_BT_HCIUART_H4=y
102+
CONFIG_BT_HCIUART_INTEL=y
103+
CONFIG_BT_HCIUART_LL=y
104+
CONFIG_BT_HCIUART_QCA=y
105+
CONFIG_BT_HCIUART_RTL=y
106+
CONFIG_BT_HCIUART_SERDEV=y
107+
CONFIG_BT_HCIVHCI=m
108+
CONFIG_BT_HIDP=m
109+
CONFIG_BT_LE=y
110+
CONFIG_BT_LE_L2CAP_ECRED=y
111+
CONFIG_BT_MSFTEXT=y
112+
CONFIG_BT_RFCOMM=m
113+
CONFIG_BT_RFCOMM_TTY=y
114+
CONFIG_BT_VIRTIO=m
85115
CONFIG_CACHEFILES=m
86116
CONFIG_CEPH_FS=m
87117
CONFIG_CEPH_FSCACHE=y
@@ -847,6 +877,7 @@ CONFIG_RDS_TCP=m
847877
CONFIG_REALTEK_PHY=m
848878
CONFIG_REGULATOR=y
849879
CONFIG_REGULATOR_FIXED_VOLTAGE=y
880+
CONFIG_RFKILL=m
850881
# CONFIG_RPCSEC_GSS_KRB5 requires some older crypto modules
851882
CONFIG_RPCSEC_GSS_KRB5=m
852883
CONFIG_RTC_CLASS=y
@@ -912,6 +943,7 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
912943
CONFIG_SERIAL_8250_NR_UARTS=32
913944
CONFIG_SERIAL_8250_RSA=y
914945
CONFIG_SERIAL_8250_SHARE_IRQ=y
946+
CONFIG_SERIAL_DEV_BUS=m
915947
# CONFIG_SERIO_SERPORT is not set
916948
CONFIG_SFC=m
917949
CONFIG_SIGNED_PE_FILE_VERIFICATION=y

0 commit comments

Comments
 (0)