Comment 288 for bug 1220146

tobiasBora (tobias-bora) wrote :

For people having problem with bluetooth, you should try (tested on kernel 4.4) the following method : https://github.com/neurobin/MT7630E/issues/6#issuecomment-196090923

Here is a copy/paste :

You need to apply this patch :

--- drivers/bluetooth/btusb.c 2015-08-30 20:34:09.000000000 +0200
+++ ../linux-4.2.0/drivers/bluetooth/btusb.c 2016-03-13 21:06:23.393727580 +0100
@@ -60,6 +60,7 @@
 #define BTUSB_QCA_ROME 0x8000
 #define BTUSB_BCM_APPLE 0x10000
 #define BTUSB_REALTEK 0x20000
+#define BTUSB_MEDIATEK 0x40000

 static const struct usb_device_id btusb_table[] = {
    /* Generic Bluetooth USB device */
@@ -73,7 +74,7 @@
      .driver_info = BTUSB_BCM_APPLE },

    /* MediaTek MT76x0E */
- { USB_DEVICE(0x0e8d, 0x763f) },
+ { USB_DEVICE(0x0e8d, 0x763f), .driver_info = BTUSB_MEDIATEK },

    /* Broadcom SoftSailing reporting vendor specific */
    { USB_DEVICE(0x0a5c, 0x21e1) },
@@ -2796,6 +2803,10 @@
        set_bit(HCI_QUIRK_BROKEN_LOCAL_COMMANDS, &hdev->quirks);
    }

+ if (id->driver_info & BTUSB_MEDIATEK) {
+ set_bit(HCI_QUIRK_BROKEN_LOCAL_COMMANDS, &hdev->quirks);
+ }
+
    if (id->driver_info & BTUSB_INTEL_BOOT)
        set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks);

and to do so you can run these commands :

sudo service bluetooth stop
sudo apt-get install build-essential linux-headers-$(uname -r)
cd to your prefered build dir
apt-get source linux-image-$(uname -r)
sudo apt-get build-dep linux-image-$(uname -r)
cd to the created source dir
cp "/boot/config-$(uname -r)" .config
cp "/usr/src/linux-headers-$(uname -r)/Module.symvers" .
edit drivers/bluetooth/btusb.c and apply the patch manually
make prepare
make modules_prepare
make M=scripts/mod
make modules_prepare
make M=drivers/bluetooth/ modules
sudo cp drivers/bluetooth/btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth
sudo service bluetooth start

Enjoy !

For Wifi, I have some trouble with wifi that crash sometimes, and I need to restart network manager. Depending on the network it can happened every 10 seconds or every 4 hours. I tried the branch 2.0.3a-1 which solved some problems, but not all. If someone manage to solve this problem please tell me ! Here is the Issue and some logs : https://github.com/neurobin/MT7630E/issues/18