Open Yushenbo opened 7 years ago
You can use HCI_RAW_CHANNEL instead, but then you'll have two stacks manage the controller at the same time.
Kernel has link manager to manage links/connections. But BLE has been a moving target. Spec is evolving, and hardware vendors try to add new features/functions which was not standardized in spec. To keep up with the changes, BT stack in kernel is also evolving. Depends on which revision you're running, sometimes you have different behavior or different feature supported.
HCI_USER_CHANNEL allows us to have full and "exclusive" control of the controller in user space.
As you mentioned: We must need patch the HCI_USER_CHANNEL relevant commits, but how do kernel version before 3.13 support BLE?