View Issue Details

IDProjectCategoryView StatusLast Update
0000621channel: elrepo/el7--elrepo--request-for-enhancement--public2016-02-06 07:58
Reporterbenkonrath Assigned Topperry  
PrioritynormalSeverityminorReproducibilityN/A
Status assignedResolutionopen 
Summary0000621: Bluetooth support for MacBookPro 12,1 (early 2015) in EL7
DescriptionSupport for the Bluetooth hardware found in the MacBookPro 12,1 has made it into the 4.4 kernel. Would it be possible to get an updated Bluetooth kmod for EL7 with the patch to support this variant of Broadcom Bluetooth chip?

Here's the patch that adds support for this hardware:
https://git.kernel.org/cgit/linux/kernel/git/bluetooth/bluetooth-next.git/commit/?id=2af82d55442672e1429e36439a89e17896c2fb66

Here's the full Bluetooth patch for the 4.4 kernel in case there are other relevant fixes required for the update:
https://patchwork.ozlabs.org/patch/534364/

I imagine other computers that use this Broadcom Bluetooth chip would also be able to use an updated kmod package.

I tried out kernel-ml 4.4 and can verify that the Bluetooth hardware is supported with that kernel. Installing that kernel seems to have messed up the EFI somehow so I'm not going to use the kernel-ml for everyday use.

Thanks for your work on this project!
TagsNo tags attached.
Reported upstream

Activities

pperry

2016-01-12 14:13

administrator   ~0004632

Hi,

Thanks for testing with kernel-ml-4.4.

We can certainly look at this but I don't know before I try how easy it will be. Presumably the module you require is btusb.ko, and that depends on bluetooth which in turn depends on rfkill. So it will depend if I can build an updated btusb module against the older distro bluetooth stack.

But I'll add it to my todo list

benkonrath

2016-01-25 12:28

reporter   ~0004645

Thanks. I can also try to make a patch to help you out a bit. I have some experience with developing kernel drivers from a few years ago but my knowledge is a bit rusty. Is there any documentation readily available for how you guys setup and build the kernel modules that you provide?

pperry

2016-01-25 15:53

administrator   ~0004648

Sorry, I don't have any documentation available, but my process is as follows.

First you need to figure out the module you want to backport (I'm assuming it's btusb.ko in this case).

Then, ideally, you need to figure out to which kernel support was added. The RHEL7 kernel was originally based on 3.10 and you've told me it works in 4.4. It would be nice if we could narrow that down a bit, maybe by booting various kernel-ml packages from the archive and seeing when support was added. Ideally I'd always look to backport the module from a long-term supported kernel just because that will make it easier to maintain any package we produce - 3.18 and 4.1 would make good candidates as long as they support your hardware. kernel-4.4 wouldn't be a great choice atm as we don't know if this will be a long-term supported kernel or not.

The more recent the kernel we pick to backport from, the more likely the ABI might have changed and we may run into backporting issues, but the newer the driver will be. So picking the right kernel to backport from is a balancing act between getting the desired newer hardware support but retaining a kABI we can backport.

Once you've chosen a kernel candidate, grab the module source and see if it will compile against the latest RHEL kernel. If it doesn't, narrow down the issues and fix them one by one. Once the code compiles then we can package it and test it against the hardware in question.

If you could start by finding out which kernel first supported your device, or at least testing with 3.18 and 4.1 kernels, that would be a big help.

benkonrath

2016-01-26 09:01

reporter   ~0004652

Thanks for the overview of the process. Support for this bluetooth hardware was added in 4.4. Hopefully 4.4 will become the LTS release so we can use this version for the backported btusb module. I'll try carve out some time to work on this later in the week.

pperry

2016-01-26 11:02

administrator   ~0004655

OK, so it has to be 4.4 then. Thanks for confirming that.

benkonrath

2016-02-06 07:58

reporter   ~0004669

I tried to compile the driver from 4.4 but it seems it's a little beyond my skills when it comes to kernel development. As you said might be the case, some of the method signatures have changed so it looks like more of the bluetooth stack would also have to be updated. Alternately, it might be possible to adjust the specific patch for the 3.10 kernel but I didn't try.

I'm using kernel ml 4.4 right now which also gives me support for the other hardware in the MacBookPro 12,1 (see http://elrepo.org/bugs/view.php?id=596). Kernel ml 4.2 was hard-locking my system but that seems to be resolved with 4.4. Thanks again for your help.

Issue History

Date Modified Username Field Change
2016-01-12 04:44 benkonrath New Issue
2016-01-12 04:44 benkonrath Status new => assigned
2016-01-12 04:44 benkonrath Assigned To => toracat
2016-01-12 14:13 pperry Note Added: 0004632
2016-01-12 14:15 pperry Assigned To toracat => pperry
2016-01-12 14:17 burakkucat Reproducibility have not tried => N/A
2016-01-25 12:28 benkonrath Note Added: 0004645
2016-01-25 15:53 pperry Note Added: 0004648
2016-01-26 09:01 benkonrath Note Added: 0004652
2016-01-26 11:02 pperry Note Added: 0004655
2016-02-06 07:58 benkonrath Note Added: 0004669