Bluetooth on the Acer Aspire S3

03/12/2013 § 5 Comments

acer_aspire_s339153314g12addThis is the same exact model S3 I bought. I love the thiness it sports.

I was getting desparate to replace my aging Gateway netbook as my main Linux iron and was really pleased to find a demo Acer Aspire S3 available for a decent price at a local Office Depot. It has all the features of my old single core 64-bit Celeron-powered Gateway but the Acer has a quad-core i5 processor, and faster clock speed. Other than the beefier CPU its the same in all respects, even the RAM is the same 4 GHz, although at a faster FSB, of course. Another factor that was exactly the same is that both books didn’t appear to have bluetooth. No matter, I bought a cheap USB bluetooth adapter and was off to the races, for 6 months.

Dongles are kind of a pain, you have to remember to plug them in, and they are getting REALLY small these days so they can get lost. I already lost one since buying this rig. I considered ripping the bt chip out of my dongle and soldering it directly to the USB bus inside the case of my new Acer. But I always had a nagging feeling that the box that housed my new rig said something about it having bluetooth. I supressed the feelings for 6 months until I saw somewhere on the net that indeed, the Aspire S3 does have a bt chip inside.

Well, knock me over, what the hell have I been doing all these years? The old Gateway probably has one too. First thing one must do is make sure the chip is enabled by throwing down a Fn+F3 combo. When I found this and tried it I was almost ready to throw up. A “B” rune symbol appeared on my taskbar. But that’s just the beginnning. For whatever reason the stock Linux kernel’s bt driver code doesn’t include support for the Atheros AR3012 bluetooth chip, although it supports two of the third party adapters out in the wild. On this machine the chip is VAR’d by Lite-On and shows up as such in an lsusb listing. I’ve noticed the S3 has varying specs having sported an i3 AND an i7 in various incarnations so you’ll need to be sure of what you have in yours. Fortunately you can google the manufacturer and equipment number from the lsusb output and confirm who made your S3’s bt chip.

So you really can enable the on-board bt adapter, and its a fairly simple procedure assuming you are comfortable re-compiling your distribution’s kernel. If so I’m going to show you how to do it, step-by-step.

First, there are lots of instructions for recompiling your kernel on the net, and they seem to only grow in verbosity, not get simpler. Let me tell you; if you are dealing with a 3.x kernel the following steps should work for any generic distrubution. All flavors of linux work off the same kernel, the one Linus Torvalds maintains to this day (with help, of course), so recompiling it really should be the same accross all the distrubutions, and it is. These other extra steps seem to be geared to using some odd, unessessary feature that a particular distro offers. Certainly if these steps don’t work for you I’d appreciate a note with an explanation, but really, this recipe is probably going to work for most, and they are the most concise I’ve ever seen.

  1. sudo apt-get build-dep build-essential (on other distros use your package manager to get the tools you need to compile your kernel)
  2. Go to kernel.org and grab whatever version you feel comfortable with, 3.8 is out but I grabbed 3.5.
  3. Expand the archive into a scratch directory.
  4. Add the following variables to your shell:
    • export CHOST="x86_64-pc-Linux-gnu" (we're assuming a 64 bit architecture)
    • export CONCURRENCY_LEVEL=4
    • export CFLAGS="-march=corei7 -O2 -pipe"
    • export CXXFLAGS="$CFLAGS"
  5. Here's where we fix bluetooth for the Atheros chip: edit drivers/bluetooth/ath3k.c and in the table static struct usb_device_id ath3k_table[] add a line for your chip: { USB_DEVICE(0xNNNN, 0xNNNN) }, substituting NNNN for the manufacturer and device number for your chip from lsusb. Then look for static struct usb_device_id ath3k_blist_tbl[] and add { USB_DEVICE(0xNNNN, 0xNNNN), .driver_info = BTUSB_ATH3012 },. Save that file and open drivers/bluetooth/btusb.c, adding { USB_DEVICE(0xNNNN, 0xNNNN), .driver_info = BTUSB_ATH3012 }, to the static struct usb_device_id blacklist_table[] structure. Save.
  6. Issue "make oldconfig", and just hit return through all the options.
  7. "make all"
  8. "sudo make modules_install install"
  9. "sudo update-grub" (if you use grub)
  10. Reboot into your new kernel.

Your Acer Aspire S3 should be bluetooth enabled now.

Advertisements

Tagged: , , , ,

§ 5 Responses to Bluetooth on the Acer Aspire S3

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

What’s this?

You are currently reading Bluetooth on the Acer Aspire S3 at Twittech Conditional Behavior Modification.

meta

%d bloggers like this: