LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   [SOLVED] Bluetooth adapter not working - 0489:e027 Foxconn / Hon Hai (http://www.linuxquestions.org/questions/slackware-14/%5Bsolved%5D-bluetooth-adapter-not-working-0489-e027-foxconn-hon-hai-4175430169/)

bonowax 10-02-2012 06:50 PM

[SOLVED] Bluetooth adapter not working - 0489:e027 Foxconn / Hon Hai
 
Hello everyone;

I have a Sony VPCEH laptop with a built-in Bluetooth adapter. This adapter was non-functional in Slack 13.37 and 14, unless I booted windows first - which presumably loaded a firmware to the adapter.
Otherwise it would show me a bt hci interface with a mac address of 00:00:00:00:00 that couldn't be put to use.

This issue has been around for some time, in several distros. See:

http://www.spinics.net/lists/linux-b.../msg06240.html https://bugs.launchpad.net/ubuntu/+s...ux/+bug/898826
https://bbs.archlinux.org/viewtopic.php?id=126487
for details

Based on the information found in http://wireless.kernel.org/en/users/...011_and_AR3012 , I was able to recompile the ath3k and btusb modules to get the Bluetooth interface to spring to life, in Slack.

If you have the kernel source tree, the source for these modules will be in /usr/src/linu/drivers/bluetooth. I copied both source files into the same dir with ".orig" as a suffix.

This is the result of a 'diff -c ath3k.c ath3k.c.orig':

<code>
*** ath3k.c 2012-10-02 23:00:24.572306058 +0100
--- ath3k.c.orig 2012-10-02 22:56:20.910918582 +0100
***************
*** 82,88 ****

/* Atheros AR5BBU22 with sflash firmware */
{ USB_DEVICE(0x0489, 0xE03C) },
! { USB_DEVICE(0x0489, 0xE027) },
{ } /* Terminating entry */
};

--- 82,88 ----

/* Atheros AR5BBU22 with sflash firmware */
{ USB_DEVICE(0x0489, 0xE03C) },
!
{ } /* Terminating entry */
};
</code>

...And this, for a 'diff -c btusb.c btusb.c.orig':

<code>
*** btusb.c 2012-10-02 23:02:31.544135679 +0100
--- btusb.c.orig 2012-10-02 22:56:30.132886796 +0100
***************
*** 128,134 ****
{ USB_DEVICE(0x13d3, 0x3304), .driver_info = BTUSB_IGNORE },
{ USB_DEVICE(0x0930, 0x0215), .driver_info = BTUSB_IGNORE },
{ USB_DEVICE(0x0489, 0xe03d), .driver_info = BTUSB_IGNORE },
- { USB_DEVICE(0x0489, 0xe027), .driver_info = BTUSB_IGNORE },

/* Atheros AR9285 Malbec with sflash firmware */
{ USB_DEVICE(0x03f0, 0x311d), .driver_info = BTUSB_IGNORE },
--- 128,133 ----
</code>

Basically, what I did was add the lines that reference the USB ID '0x0489, 0xE027' and then compiled these modules.

<code>
# cd /usr/src/linux
# make drivers/bluetooth/ath3k.ko
# make drivers/bluetooth/btusb.ko
</code>

The newly compiled modules were then copied to /var/lib/3.2.29/kernel/drivers/bluetooth, after renaming the old ones in case I needed to roll back. Afterwards:

<code>
# depmod -a
</code>

After a reboot, the lsusb was now showing a '0cf3:3005 Atheros Communications, Inc. AR3011 Bluetooth' and I was able to pair it with my cell phone.

Cheers

unSpawn 10-03-2012 04:17 PM

Thanks for posting, off the 0-reply list now.

bonowax 11-10-2012 07:30 PM

Errata
 
The path where the kernel modules are stored is wrong. Where you see>

"/var/lib" replace by "/lib/modules"

Sorry for that... :-P


All times are GMT -5. The time now is 05:06 PM.