• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Atheros Bluetooth 3.0 auf Aspire 7750G

mhh...also mir ist das jetzt unklar.

Läuft der Patch jetzt oder nicht?
Wie muss der korrekte patch jetzt aussehen?
Kann den einer posten?

Meiner:

Code:
carsten@linux-fsj2:~> uname -a
Linux linux-fsj2.site 3.1.10-1.9-desktop #1 SMP PREEMPT Thu Apr 5 18:48:38 UTC 2012 (4a97ec8) x86_64 x86_64 x86_64 GNU/Linux

Vielen Dank

Paule
 
Reibell schrieb:
Sorry for the inconvenience that the patch does not apply to your kernel (Kernel 3.2.7-8-default) and you needed to patch manually.
Because of the reasons told in the kernel documentation the patch was generated against the latest stabel kernel release (3.3.4).
I forgot to mention this in my above posts.

Have fun

Regards Reibell
Da steht eindeutig, daß der Patch nur mit dem aktuellen Kernel 3.3.4 funktioniert. Da wirst Du wohl den aktuellen Kernel plus Sourcen installieren müssen.

CU Freddie
 
Und so schwierig ist es auch nicht, in der Datei ath3k.c zweimal 3 Zeilen und in der Datei btusb.c einmal 3 Zeilen manuell einzutragen (natürlich ohne das in der patch-Datei an der ersten Stelle enthaltene +) und dann die 3 make-Befehle auszuführen.
 
Patch has been applied to both bluetooth and bluetooth-next trees.
The only thing that does not work is to apply the patch directly to older kernels.
If you want to use it with older kernels make shure that your kernel does support the ar3012 chip.
Do so by looking out for lines of the form
Code:
{ USB_DEVICE(0xYYYY, 0xYYYY), .driver_info = BTUSB_ATH3012 },
in your source (ath3k.c btusb.c). Indentification should be straight forward. Then insert the lines marked with `+` in the patch into the files
Code:
/your kernel source path/drivers/bluetooth/ath3k.c
and
Code:
/your kernel source path/drivers/bluetooth/btusb.c
and compile the modules as mentioned above. If you have set up your source tree as a git clone from kernel.org to receive patches simly check it out via git. This should do the trick.

Regards Reibell
 
Hi,
super Thread, vielen Dank, konnte aber leider meine sehr ähnlich gelagerten Probleme mit einem Atheros 3012 Chip in meinem Acer S3 nicht beheben. Hier darum ein stark verwandter Thread, vielleicht kann ja jemand schauen, ob's da noch 'ne andere Idee gibt...

http://www.linux-club.de/viewtopic.php?f=27&t=116011

Danke!

kingstah
 
Hello,
the problem is simply, that your bluetooth module integrated into your S3 is not the same as the one integrated into the 7750. Although it uses the same chip (ar3012) as mentioned here viewtopic.php?f=27&t=116011 , it has a different vid:pid. The patch mentioned above is aimed at the AR5BBU22 module, which has vid 0x0489 and pid 0xE03C. Your module seems to have vid 0x04CA and pid 0x3004. What does the patch do ? It simply tells the btusb to ignore the chip (identified by vid:pid) at first so that ath3k can take over to load the desired firmware (identified by vid:pid) to make the chip acts as btusb expects. Because of the different vid:pid this patch does not work for your module. You mentioned the thread viewtopic.php?f=27&t=116011 but unfortunately you forgot to show what patch you used, so no one can tell if there might be a mistake in your patch or if there might be some other problem that needs to be solved.But someone on linux-wireless posted a patch that should solve your problem.
Code:
I have a combination AR9485 / AR3012 device.
To get the AR3012 device to work, I added a new device id shown in the
patch below.
After adding this patch, Bluetooth is working fine.

/sys/kernel/debug/usb/devices output:

T:  Bus=07 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=04ca ProdID=3004 Rev= 0.02
S:  Manufacturer=Atheros Communications
S:  Product=Bluetooth USB Host Controller
S:  SerialNumber=Alaska Day 2006
C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms

---
lspci -vv :

Bus 007 Device 002: ID 04ca:3004 Lite-On Technology Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass          224 Wireless
  bDeviceSubClass         1 Radio Frequency
  bDeviceProtocol         1 Bluetooth
  bMaxPacketSize0        64
  idVendor           0x04ca Lite-On Technology Corp.
  idProduct          0x3004
  bcdDevice            0.02
  iManufacturer           1
  iProduct                2
  iSerial                 3
  bNumConfigurations      1
  Configuration Descriptor:
...


--
diff -r -u compat-wireless-3.4-rc3-1-orig/drivers/bluetooth/ath3k.c
compat-wireless-3.4-rc3-1/drivers/bluetooth/ath3k.c
--- compat-wireless-3.4-rc3-1-orig/drivers/bluetooth/ath3k.c	2012-04-17
16:54:12.000000000 -0400
+++ compat-wireless-3.4-rc3-1/drivers/bluetooth/ath3k.c	2012-04-30
18:10:25.279286665 -0400
@@ -72,6 +72,7 @@

 	/* Atheros AR3012 with sflash firmware*/
 	{ USB_DEVICE(0x0CF3, 0x3004) },
+	{ USB_DEVICE(0x04CA, 0x3004) },
 	{ USB_DEVICE(0x0CF3, 0x311D) },
 	{ USB_DEVICE(0x13d3, 0x3375) },
 	{ USB_DEVICE(0x04CA, 0x3005) },
@@ -93,6 +94,7 @@
 	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
 	{ USB_DEVICE(0x0cf3, 0x311D), .driver_info = BTUSB_ATH3012 },
 	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
+	{ USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 },
 	{ USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },

 	{ }	/* Terminating entry */
diff -r -u compat-wireless-3.4-rc3-1-orig/drivers/bluetooth/btusb.c
compat-wireless-3.4-rc3-1/drivers/bluetooth/btusb.c
--- compat-wireless-3.4-rc3-1-orig/drivers/bluetooth/btusb.c	2012-04-17
16:54:12.000000000 -0400
+++ compat-wireless-3.4-rc3-1/drivers/bluetooth/btusb.c	2012-04-30
18:09:11.887284425 -0400
@@ -130,6 +130,7 @@

 	/* Atheros 3012 with sflash firmware */
 	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
+	{ USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 },
 	{ USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 },
 	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
 	{ USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
This patch is generated against 3.4-rc3-1. If this is not your kernel apply manually compile the modules and make shure the desired firmware is installed. Please post here about the result.
Hope this helps.

Regards Reibell
 
Thanks for the reply, Reibel.
Sorry for not being clear on this, but I did use the correct IDs when patching the files: 0x04CA, 0x3004. I applied the patch manually. Also, I think this line in the output of modinfo ath3k confirms that the patch worked:

Code:
alias:          usb:v04CAp3004d*dc*dsc*dp*ic*isc*ip*

However, you reminding me of checking for the firmware was key: I didn't have kernel-firmware installed. With that (and the patch), everything works now.
Thanks!

One more thing that might help others: I have a dual boot with Windows, and I found the following behavior BEFORE the patch:
- BT enabled under Windows -> BT recognized under Suse, only it didn't work (no discovery/not discoverable). Maybe this was the situation for PowerPaul who started this thread.
- BT disabled under Widows -> no BT recognized.
So apparently, when Win loaded the firmware once, it is still there when booting linux... crazy stuff.

With the patch, it doesn't make any difference which settings Windows has.
 
Hi,
my pleasure to help.

When BT is enabled without a kernel patched for the module (vid:pid) running btusb tries to use the chip without firmware loading, this results in a situation in which BT seems to work correctly but no devices are found and the device itself cannot be detected. The reason for this is, that the firmware consists of e.g. frequency tables for the radio and stuff. Without this the radio does not work and you are not able to establish a BT connection. The behaviour is independent from the state the other OS left the chip in. In my opinion it is not possible to initialize the chip with the help of the other OS to get it in a working state under linux, because the firmware needs to be loaded for every setup with sflash firmware as it does not stay in the ram of the chip after rebooting.
If possible could you generate a diff against bluetooth-next.git and send it to the adresses mentioned in the Maintainers Kernel doc. How to do this is described in the kernel documentation.

Regards Reibell
 
Also ich bin hier irgendwie überfordert!
Ich warte mal auf ein Kernelupdate...schön finde ich jedoch
das sich bei Linux da was tut und auch ein einzelner unwichtiger user, wie ich
was anstoßen kann.

Hardware die bei z.B. Windows 7 (hier Aver DVT-T 771) nicht läuft,
wird nie wieder laufen, da es keinen Treiber mehr gibt.

...also mal abwarten, aber Daumen hoch für die vielen Antworten....

"So apparently, when Win loaded the firmware once, it is still there when booting linux... crazy stuff."
--> confirmed on my system (acer aspire 77550G)


PowerPaul
 
Hey PowerPaul,
ist aber echt ganz easy, klingt nur kompliziert hier. Das Ding ist einfach nur

a) Der Treiber ist schon dabei in der Suse, nur merkt sie nicht, dass dein BT-Adapter einer ist, für den sie ihn verwenden sollte. Darum musst du an drei Stellen in zwei Dateien die IDs deines Adapters eintragen, die du mit hwinfo bekommen hast, also Vendor 0x0489, Device 0xe03c, dann wird der korrekte Treiber genommen.
b) Der Adapter braucht Firmware. Die kann man aber einfach als Paket mit YaST installieren.

Step-by-Step:
0) Falls was schief geht, installiere dir einen zweiten Kernel, mit dem du dein System zu Not auch gestartet bekommst. Am einfachsten ist, du wählst mit YaST einfach kernel-default aus (falls du kernel-desktop installiert hast, sonst andersrum). Dadurch kriegst du in Grub eine weitere Option, die in den nächsten Schritten unangetastet bleibt. Einmal checken, dass der neue Alternativkernel auch bootet. Im Fall der Fälle kannst du dann einfach den Alternativkernel booten und das Paket kernel-desktop aktualisieren, dann ist dein System genau wie vor dem Patch.
1) Jetzt die Firmware: Einfach Paket kernel-firmware mit YaST installieren.
2) Jetzt die Kernel Quelldateien: Paket kernel-source mit YaST installieren.
3) Jetzt die erste Datei patchen. Öffne /usr/src/linux/drivers/bluetooth/ath3k.c. Nach der Zeile, die mit
Code:
static struct usb_device_id ath3k_table
anfängt, stehen ein paar Zeilen der Form
Code:
/* Atheros AR5BBU12 with sflash firmware */
    { USB_DEVICE(0x0489, 0xE02C) },
Da fügst du einfach eine Zeile mit deinen IDs hinzu:
Code:
{ USB_DEVICE(0x0489, 0xE03C) },
Das gleiche Spiel dann nochmal, nach der Zeile, die mit
Code:
static struct usb_device_id ath3k_blist
anfängt. Hier eine Zeile
Code:
{ USB_DEVICE(0x0489, 0xE03C), .driver_info = BTUSB_ATH3012 },
einfügen.
4) Jetzt das gleiceh Spiel in der zweiten Datei, /usr/src/linux/drivers/bluetooth/btusb.c:
Nach der Zeile, die mit
Code:
static struct usb_device_id blacklist_ta
anfängt, eine Zeile
Code:
{ USB_DEVICE(0x0489, 0xe03c), .driver_info = BTUSB_ATH3012 },
dazu.
5) Jetzt kompilieren und den Kernel aktualisieren (dauert ein bisschen):
Code:
cd /usr/src/linux/
make O=/lib/modules/$(uname -r)/build oldconfig
make O=/lib/modules/$(uname -r)/build M=$(pwd)/drivers/bluetooth modules
make O=/lib/modules/$(uname -r)/build M=$(pwd)/drivers/bluetooth modules_install
6) Reboot und an Bluetooth erfreuen.

Viel Erfolg!
 
Keine Ursache...
Eins noch, damit das klar ist: Alles was du in /usr/src/linux/ anstellst, passiert auf dem gegenwärtig laufenden Kernel. Wenn du also z.B. kernel-destop patchen willst, achte drauf, das du auch den gebootet hast bevor du loslegst...
 
Hi kingstah!

Ich wende mich mal direkt an Dich, da Du mir schon sehr ausführlich versuchst hast zu helfen! :D
Es hat leider nicht ganz geklappt. Der Kompilierung lief zwar ohne Probleme durch, BT lässt sich auch
aktivieren jedoch werden immer noch keine Geräte gefunden...leider...

Ich poste mal ein paar Auszüge aus der ath3k.c und aus der btusb.c:

athek. sieht jetzt so aus:

Code:
static struct usb_device_id ath3k_table[] = {
	/* Atheros AR3011 */
	{ USB_DEVICE(0x0CF3, 0x3000) },

	/* Atheros AR3011 with sflash firmware*/
	{ USB_DEVICE(0x0CF3, 0x3002) },
	{ USB_DEVICE(0x13d3, 0x3304) },
	{ USB_DEVICE(0x0930, 0x0215) },
	{ USB_DEVICE(0x0489, 0xE03C) },

	/* Atheros AR9285 Malbec with sflash firmware */
	{ USB_DEVICE(0x03F0, 0x311D) },

	/* Atheros AR3012 with sflash firmware*/
	{ USB_DEVICE(0x0CF3, 0x3004) },

	/* Atheros AR5BBU12 with sflash firmware */
	{ USB_DEVICE(0x0489, 0xE02C) },

	{ }	/* Terminating entry */
};

Code:
MODULE_DEVICE_TABLE(usb, ath3k_table);

#define BTUSB_ATH3012		0x80
/* This table is to load patch and sysconfig files
 * for AR3012 */
static struct usb_device_id ath3k_blist_tbl[] = {

	/* Atheros AR3012 with sflash firmware*/
	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xE03C), .driver_info = BTUSB_ATH3012 },
	
	{ }	/* Terminating entry */
};

btusb.c so:

Code:
static struct usb_device_id blacklist_table[] = {
	/* CSR BlueCore devices */
	{ USB_DEVICE(0x0a12, 0x0001), .driver_info = BTUSB_CSR },

	/* Broadcom BCM2033 without firmware */
	{ USB_DEVICE(0x0a5c, 0x2033), .driver_info = BTUSB_IGNORE },

	/* Atheros 3011 with sflash firmware */
	{ USB_DEVICE(0x0cf3, 0x3002), .driver_info = BTUSB_IGNORE },
	{ USB_DEVICE(0x13d3, 0x3304), .driver_info = BTUSB_IGNORE },
	{ USB_DEVICE(0x0930, 0x0215), .driver_info = BTUSB_IGNORE },
	{ USB_DEVICE(0x0489, 0xE03C), .driver_info = BTUSB_ATH3012 },

	/* Atheros AR9285 Malbec with sflash firmware */
	{ USB_DEVICE(0x03f0, 0x311d), .driver_info = BTUSB_IGNORE },

	/* Atheros 3012 with sflash firmware */
	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },

	/* Atheros AR5BBU12 with sflash firmware */
	{ USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },

Das sieht doch eigentlich gut aus, oder?

Mir ist aber aufgefallen, dass Du das wohl als "ATH3012" eingetragen
haben willst; mein Chip ist wohl aber ein AR5BBU22!?

Siehst Du irgendwelche Fehler? Was kann ich denn noch tun bzw. ändern.

Schon jetzt vielen Dank

Paule

ups, ich sehe gerade das da einmal was bei Atheros AR3011 with sflash firmware*/BTUSB_ATH3012
und einmal BTUSB_ATH3011 steht...in der ath3k.c!?

In der btusb steht dann wieder "BTUSB_ATH3012" daran wirds wohl liegen, oder?
 
Hi,
sorry, hatte nicht daran gedacht, dass du ja einen anderen Chip hast.

Die Zeilen, die mit /* beginnen, sind nur Kommentare, also egal. Ich würde wie folgt vorgehen:

Erste Änderung in ath3k.c: Sollte okay sein so wie Du's gemacht hast. Die Reihenfolge der Einträge ist egal, der Rest nur Kommentarzeilen.

Zweite Änderung in ath3k.c: Würde ich rückgangig machen, die Kommentare sehen so aus, als wäre die Zeile wirklich nur für AR3012 notwendig. Also an der Stelle so lassen wie original.

In btusb.c: Mache deine Änderung rückgängig und füge diese Zeile nach

Code:
/* Atheros AR5BBU12 with sflash firmware */
   { USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },

ein:

Code:
{ USB_DEVICE(0x0489, 0xe03c), .driver_info = BTUSB_IGNORE },

Dann die make Befehle nochmal ausführen und neustarten.
Schreib' wie's läuft, und fall es nicht klappt, poste mal die Zeile zu Bluetooth in der Ausgabe von

Code:
dmesg

Grüße

kingstah
 
kingstah schrieb:
Zweite Änderung in ath3k.c: Würde ich rückgangig machen
Ich gehe davon, daß Reibell weiß, wovon er schreibt, daher sollte die Zeile bleiben.
kingstah schrieb:
In btusb.c: Mache deine Änderung rückgängig und füge ... ein
Auch hier ist Reibell anderer Meinung.

Was kommt nach dem Erstellen der Module bei
Code:
/sbin/modinfo ath3k | grep filename
/sbin/modinfo btusb | grep filename
ls /lib/modules/$(uname -r)/extra
heraus?
 
josef-wien schrieb:
kingstah schrieb:
Zweite Änderung in ath3k.c: Würde ich rückgangig machen
Ich gehe davon, daß Reibell weiß, wovon er schreibt, daher sollte die Zeile bleiben.

Von der zweiten Änderung ist in Reibells Patch gar keine Rede, da stimmen er und ich also überein, und es ist sicher korrekt, die Änderung (die ich fälschlicherweise vorgeschlagen habe) rückgängig zu machen.

josef-wien schrieb:
kingstah schrieb:
In btusb.c: Mache deine Änderung rückgängig und füge ... ein
Auch hier ist Reibell anderer Meinung.

Tatsächlich erwähnt Reibell btusb.c nicht. Nach meiner Recherche (für meinen AR3012 Chip) könnte die von mir jetzt korrigierte Änderung aber wichtig sein. Kannst ja beides probieren, also entweder unveränderte btusb.c, oder mit der zuletzt von mir vorgeschlagenen Zeile. Bin gespannt was rauskommt...
Beste Grüße

kingstah
 
Hi all,
the patch initially posted by me is correct and works flawless. As said before it is applied to bluthooth and bluetooth-next trees at git.kernel.org and is getting merged into linux-next at this time. Some words to clarify what is going on:
The AR5BBU22 is identified as a generic bluetooth adapter by the kernel and btusb.ko (unpatched) is loaded. Because of the lack of firmware loading this results for example in an an non functional radio as btusb.ko tries to handle the adapter.

The entry :
Code:
 /* Atheros AR5BBU22 with sflash firmware */
 { USB_DEVICE(0x0489, 0xe03c), .driver_info = BTUSB_ATH3012 },

in the blacklist table "static struct usb_device_id blacklist_table" in btusb.c makes btusb.ko ignore the adapter at first and specifies to handle it as an Atheros AR3012 ( The chip used on the ARBBU22 is an AR3012 you can verify this on the net).

Because of this ath3k.ko takes over but needs to be patched too for proper function.

The entry:
Code:
 /* Atheros AR5BBU22 with sflash firmware */
   { USB_DEVICE(0x0489, 0xE03C) },

in "static struct usb_device_id ath3k_table" in ath3k.c tells ath3k.ko "Ok I am the one to handle this adapter".
As there are different chips that get handled by ath3k.ko,AR3011 and Ar3012 for example, and they use a different setup, ath3k.ko needs to know about this and that it should load the patch and sysconfig files for the 3012.

This is done by the entry:
Code:
   /* Atheros AR5BBU22 with sflash firmware */
   { USB_DEVICE(0x0489, 0xE03C), .driver_info = BTUSB_ATH3012 },
in the blacklist table "static struct usb_device_id ath3k_blist_tbl" in ath3k.c.

I participated in this discussion because I thought I could help a little bit as I had the opportunity to test this on ACER's Aspire 7750G amongst others. It works flawless. Make shure you have the firmware installed. The needed package is called kernel-firmware on SuSE I think. ath3k-1.fw is the needed firmware for AR3011 for AR5BBU22 (AR3012) you need "AthrBT_0x01020200.dfu" and "ramps_0x01020200_26.dfu" or "ramps_0x01020200_40.dfu". If they are not included in your kernel-firmware package goto
http://git.kernel.org/?p=linux/kern...f6cd47c15206f31c8f85158363fa689bb4946;hb=HEAD

and download them. Put them in the correspondending directory (/usr/lib/firmware) and everything should work.

Hope this helps.

Have fun

Regards Reibell
 
Hi Reibell,
thanks a lot for the elaborate explanation, very good to know!
So in the end, it sounds like my first set of step-by-step instructions above is correct, right? (I just meant to make this easier for people who are not familiar with the concept of patch, compilation, etc.) I wonder why they don't work for PowerPaul...
Best

kingstah
 
Hi all,
after looking at PowerPauls post again, I think the mistake is easy to track down. C is a case sensitive language. So there is a difference between the strings 0xE03C and 0xe03c when compared. For some reasons, not to be discussed here, in ath3k.c it has to be 0xE03C and in btusb.c it has to be 0xe03c. Look at the other entries in ath3k.c and btusb.c and you will see. ( upper case in ath3k.c, lower case in btusb.c). Please change this in your btusb.c and try again. After compiling and installing the modules make shure the right modules get loaded. To ensure this rename the original modules in /lib/modules/"your kernel"/drivers/bluetooth to ath3k.ko.orig and btusb.ko.orig or something else and copy the new ones into this directory. This should do the trick. Next time please try to keep your piece of source tidy to make it easier for others to read (e.g. the AR5BBU22 modules is not a AR3011 so why to insert its entry under this comment). This has nothing to do with functionalitiy but looks better and is easier to read,understand and track down posible mistakes. As an orientation look at the patches I have posted.
For your information:The first patch made it into linux-next, so possibly 3.5 kernels will handle the AR5BBU22 out of the box.

Regards Reibell
 
Oben