Edimax EW-7611ULB on Raspberry Pi with Kernel 4.9
Sunday, February 26th, 2017 03:12 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
This is a quick post to record the changes I needed to make to the Bluetooth driver for an Edimax EW-7611ULB wifi & bluetooth usb dongle to get the bluetooth working on the (currently) new Raspberry Pi 4.9.11 kernel. Hopefully it can help anyone else using this adapter when they upgrade their Raspberry Pi.
The original instructions and source for installing the drivers for this adapter are published by Edimax themselves at: https://edimax.freshdesk.com/support/solutions/articles/14000047172-how-to-install-ew-7611ulb-adapter-on-raspberry-pi - but they currently cover installing the drivers for a Raspberry Pi running kernel 4.4. The wifi driver installation documented by Edimax works fine. There is one minor modification to the bluetooth driver source code required so that it will compile properly due to kernel api changes in kernel version 4.9 for the HCI driver interface.
In Section "(II.) Bluetooth Driver Installation", before running "sudo make install -s
", you need to edit the file bluetooth_usb_driver/rtk_coex.c. At line 448, change
#if HCI_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
#if HCI_VERSION_CODE < KERNEL_VERSION(4, 4, 0)
bt_cb(skb)->req.start = true;
#else
bt_cb(skb)->hci.req_start = true;
#endif
#endif
to:
#if HCI_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
#if HCI_VERSION_CODE < KERNEL_VERSION(4, 4, 0)
bt_cb(skb)->req.start = true;
#elif HCI_VERSION_CODE >= KERNEL_VERSION(4,9,0)
bt_cb(skb)->hci.req_flags |= HCI_REQ_START;
#else
bt_cb(skb)->hci.req_start = true;
#endif
#endif
Save the change, and then continue with the instructions by running the "sudo make install -s
" command.
Otherwise, follow the instructions on the Edimax link to get both wifi and bluetooth working properly with this adapter on the Raspberry Pi.