
You are not logged in.
I've been trying to get bluetooth working with the AMiLDA kernel, but it doesn't work.
Every time I try to bring a device up I get Oops:
/ $ hciconfig hci0 up Unable to handle kernel paging request at virtual address 00000000, epc == 800cd470, ra == 800cd9b4 Oops in fault.c::do_page_fault, line 206: $0 : 00000000 0003f39e 80dfc190 0000ed93 80dfc180 0001ea51 003f4da4 00000011 $8 : 00000001 80172918 801c772c 00000000 801c76f4 0000087f ba2e8ba3 ba2e8ba3 $16: 00000000 8031b820 003f4da4 803d5614 00000011 0001ea51 00000004 01000000 $24: 10008400 00000000 8089e000 8089fd60 8031b820 800cd9b4 Hi : 00000002 Lo : 00000002 epc : 800cd470 Not tainted Status: 10008402 Cause : 10800008 PrId : 0001800b Process hciconfig (pid: 24, stackpage=8089e000) Stack: 00000001 00dfc180 803f6800 80035988 803d56ac 803d56b0 00000004 803d5614 003f4d60 00010000 803f6800 800cd9b4 803f6800 800cd784 00000003 00000003 803d5614 00000004 00000011 00000000 803d5614 8031b820 10008400 0000000a 80dfc180 803f6800 802b9b64 00008305 00000000 800cc5c4 803d5200 800cc5c4 00000000 00000001 000001f0 00000001 00000002 8030f270 803d5600 803d5614 ... Call Trace: [<80035988>] [<800cd9b4>] [<800cd784>] [<800cc5c4>] [<800cc5c4>] [<800bf54c>] [<800bf54c>] [<800d3ef0>] [<800d3df4>] [<800d3cd0>] [<800d3be0>] [<8002a594>] [<800d4050>] [<800d4038>] [<8015c018>] [<800448c9>] [<8016180c>] [<800448c9>] [<800db658>] [<80051ec4>] [<80051ed0>] [<800dbbd8>] [<8000efe4>] [<800448c9>] [<80066460>] Code: 00161080 00441021 8c500030 <8e030000> 04610005 00000000 3c048019 0c006227 24848db8 Segmentation fault
I have cheated a little, by adding bluez to buildroot, then using the buildroot image with the AMiLDA kernel. The buildroot image uses kernel headers from 2.4.31, but I'm sure this is not what is causing the problem, because I can also get oops with the straight amilda firmware if I plug in and unplug a dongle quickly.
This happens every time I try to bring up the interface, whether from hciconfig or hcid. It is possible to make this work with midge: http://midge.vlad.org.ua/forum/viewtopic.php?t=461.
Offline
Hi
That's probably an OOPS because of buggy USB driver code. USB support is still a work-in-progress and doesn't work in most cases. Try with midge's kernel code and if it works don't forget to report it back!
Regards,
Sergio
Offline
sergioag wrote:
Hi
That's probably an OOPS because of buggy USB driver code. USB support is still a work-in-progress and doesn't work in most cases. Try with midge's kernel code and if it works don't forget to report it back!
Regards,
Sergio
I get the same result with midge, however I am not using loadable modules for bluetooth like the midge forum posting. I will re-try with loadable modules and see if that fixes it.
Offline
Hi
The problem is not because using loadable modules or not. You're using a USB bluetooth dongle, isn't it? If so, then you're going through the buggy USB driver which is certainly causing this bug. You can check midge's site for references to the USB driver problem.
Regards,
Sergio
Offline
sergioag wrote:
Hi
The problem is not because using loadable modules or not. You're using a USB bluetooth dongle, isn't it? If so, then you're going through the buggy USB driver which is certainly causing this bug. You can check midge's site for references to the USB driver problem.
Regards,
Sergio
Yes. We know the USB driver is buggy, however according to this post http://midge.vlad.org.ua/forum/viewtopic.php?t=461 ZigFisher got it working, so it must be possible. I just noticed he is using a hub, so maybe I have to use a hub too. Presumably it is possible to find a hardware/software combination which does not expose the bug, even if it means getting a different bluetooth device.
-biff.
Offline
I haven't made much progress with this, however I have at least decoded the oops
>>RA; 80110b5c <td_submit_urb_ahci+424/468> >>$1; 10008400 <_binary_ramdisk_bz2_size+ff29dd4/7ff239d4> >>$6; 0036bea4 <_binary_ramdisk_bz2_size+28d878/7ff239d4> >>$9; 80197e98 <memset_partial+1c/6c> >>$11; 801fe7a0 <contig_page_data+0/3ac> >>$13; 10008400 <_binary_ramdisk_bz2_size+ff29dd4/7ff239d4> >>$18; 0036bea4 <_binary_ramdisk_bz2_size+28d878/7ff239d4> >>$23; 0036be60 <_binary_ramdisk_bz2_size+28d834/7ff239d4> >>$25; 802f4674 <zone_table+0/c> >>$31; 80110b5c <td_submit_urb_ahci+424/468> >>EIP; 801105f4 <td_fill_ahci+88/1cc> <===== Trace; 80110b5c <td_submit_urb_ahci+424/468> Trace; 80112064 <sahci_submit_urb+1260/12bc> Trace; 80037550 <__get_free_pages+18/78> Trace; 80029cdc <handle_mm_fault+464/a20> Trace; 8011bc48 <hci_usb_open+500/628> Trace; 80177a0c <hci_dev_open+80/3ec> Trace; 800448c9 <blkdev_get_block+89/d0> Trace; 8004ea98 <sys_ioctl+3f8/430> Trace; 8004ea98 <sys_ioctl+3f8/430> Trace; 8012274c <sys_socket+24/48> Trace; 8000e4c0 <stack_done+1c/38> Trace; 800448c9 <blkdev_get_block+89/d0> Trace; 800612ec <create_proc_entry+60/c0> Code; 801105e8 <td_fill_ahci+7c/1cc> 00000000 <_EIP>: Code; 801105e8 <td_fill_ahci+7c/1cc> 0: 80 18 15 sbbb $0x15,(%eax) Code; 801105eb <td_fill_ahci+7f/1cc> 3: 00 21 add %ah,(%ecx) Code; 801105ed <td_fill_ahci+81/1cc> 5: 18 62 00 sbb %ah,0x0(%edx) Code; 801105f0 <td_fill_ahci+84/1cc> 8: 30 00 xor %al,(%eax) Code; 801105f2 <td_fill_ahci+86/1cc> a: 70 8c jo ffffff98 <_EIP+0xffffff98> Code; 801105f4 <td_fill_ahci+88/1cc> <===== c: 00 00 add %al,(%eax) <===== Code; 801105f6 <td_fill_ahci+8a/1cc> e: 02 8e 04 00 41 04 add 0x4410004(%esi),%cl Code; 801105fc <td_fill_ahci+90/1cc> 14: 00 00 add %al,(%eax) Code; 801105fe <td_fill_ahci+92/1cc> 16: 00 00 add %al,(%eax) Code; 80110600 <td_fill_ahci+94/1cc> 18: 1c 80 sbb $0x80,%al Code; 80110602 <td_fill_ahci+96/1cc> 1a: 04 3c add $0x3c,%al 0c00694d 24842310
Offline