Bluetooth Dongle Pairing but Not Connecting (Linux)

I have been trying to get bluetooth working correctly on Linux for a while now. I am using two systems that are having identical issues: Linux Mint 15 64-bit & Ubuntu 13.04 32-bit. Both are using the Cinnamon desktop. I have the following bluetooth dongle:

http://dx.com/p/super-mini-bluetooth-2-0-adapter-dongle-vista-compatible-11866

$ lsusb | grep -i blue
Bus 004 Device 006: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Here are the issues that I am having:

1) Bluetooth dongle is not always recognized at startup. Bluetooth icon does not display in the system tray. The bluetooth service is running:

$ sudo service bluetooth start
start: Job is already running: bluetooth
$ sudo bluetoothd -u
D-Bus setup failed: Name already in use

I have to remove and re-insert dongle and system tray icon appears and dongle shows up under lsusb.

2) Cinnamon's GUI utility (under System Settings shows that bluetooth is disabled and the dongle still does not display under hcitool's device listing:

$ hcitool dev
Devices:

I can "enable" bluetooth with the GUI (not sure how to do it from a terminal) by selecting "On" then removing and re-inserting dongle again. Then the dongle shows up under hcitool:

$ hcitool dev
Devices:
    hci0    00:1F:81:00:02:50

I can then pair bluetooth devices (I have a phone and a mouse).

3) I cannot "connect" bluetooth devices. Often when I try to connect I get a kernel panic and the system crashes. If the system does not crash during connection the device will appear to be connected but still not work. Sometimes the system will crash when trying to access the device, for example, when I try to send a file to my phone. If the system does not crash the signal is never sent/received and the phone does not respond to the incoming file. In the case of the mouse it just doesn't work.

I have tried connecting to the devices using the default GUI utility supplied by Cinnamon/Linux Mint, the blueman GUI and hcitool. Sometimes the connection appears to be made and other times it connects for only a second or two then disconnects:

(NOTE: FC:C7:34:F2:F5:CD is the address of paired bluetooth phone as displayed by Cinnamon's GUI utility.)

$ hcitool con
Connections:
$ sudo hcitool cc FC:C7:34:F2:F5:CD
$ hcitool con
Connections:

The last time that I ran the hcitool cc command the Cinnamon utility showed the device connect for less than a second and disconnect. Then, within 10 or 20 seconds the system crashed.

(NOTE: This USB dongle works fine on Windows XP and Vista systems, so I am convinced this is a software issue on Linux.)

Linux Mint and Ubuntu both use the Bluez bluetooth stack. I have searched a bit for alternate stacks and found Affix, but it appears to be outdated and requires recompiling the kernel.

I have discussed the issue somewhat in the Linux Mint forums (Bluetooth not working Mint 14 KDE - Linux Mint Forums). Another user using the KDE desktop was able to make it functional, but I have not had any success yet.

Kernel panics are wildly abnormal in any circumstances. This points to bugs inside the device drivers themselves. What version is your kernel?

$ uname -r
3.8.0-19-generic

I was thinking it was a driver/module problem, sorry if I didn't clarify. Are the Linux bluetooth drivers built against the kernel?

Built with and inside the kernel, packaged with the kernel, upgraded with the kernel, pretty much literally a part of the kernel. If you have driver problems, you have kernel problems, and upgrading your kernel is tantamount to upgrading your drivers unless you're using a third-party driver.

It'd be useful to know what modules you're using, come to think of it. lsmod

$ lsmod | grep -i blue
bluetooth             228619  23 bnep,hidp,btusb,rfcomm

--- Edit ---

Here are some interesting events:

I installed KDE and GNOME desktops to see if I could get different results. So far I have tested KDE but it was exactly the same. When I switched back to Cinnamon the Gtk widgets were messed up. So I renamed my ~/.config directory and restarted. That fixed the widgets. But also I was able to successfully connect to my phone and transfer files. I thought maybe it was fixed so I tried connecting the mouse. It still didn't work and system crashed again. When I restarted I couldn't connect to my phone anymore. So I renamed ~/.config again and restarted. Again I could connect to the phone and transfer files, however the kernel eventually panicked. So it appears that the kernel will inevitably panic when connected to a bluetooth device.

Could you do it again without the grep please? 'bluetooth' is not a hardware driver, just a protocol one. The hardware drivers are often named after the chipsets they support and not necessarily be named 'blue'.

Sure.

$ lsmod
Module                  Size  Used by
pci_stub               12622  1 
vboxpci                23194  0 
vboxnetadp             25670  0 
vboxnetflt             23479  0 
vboxdrv               320372  3 vboxnetadp,vboxnetflt,vboxpci
rfcomm                 42641  0 
bnep                   18036  2 
binfmt_misc            17500  1 
joydev                 17377  1 
hid_pl                 12609  0 
hid_logitech           26585  0 
ff_memless             13013  2 hid_pl,hid_logitech
coretemp               13355  0 
kvm_intel             132891  0 
kvm                   443165  1 kvm_intel
ppdev                  17073  0 
dcdbas                 14397  0 
snd_hda_codec_analog    93738  1 
snd_hda_intel          39619  2 
snd_hda_codec         136453  2 snd_hda_intel,snd_hda_codec_analog
snd_hwdep              13602  1 snd_hda_codec
snd_pcm                97451  2 snd_hda_codec,snd_hda_intel
btusb                  22474  0 
bluetooth             228619  12 bnep,btusb,rfcomm
snd_page_alloc         18710  2 snd_pcm,snd_hda_intel
arc4                   12615  2 
rt61pci                31675  0 
rt2x00pci              14519  1 rt61pci
rt2x00lib              54869  2 rt61pci,rt2x00pci
snd_seq_midi           13324  0 
snd_seq_midi_event     14899  1 snd_seq_midi
mac80211              606457  2 rt2x00lib,rt2x00pci
snd_rawmidi            30180  1 snd_seq_midi
microcode              22881  0 
parport_pc             28152  1 
cfg80211              510937  2 mac80211,rt2x00lib
eeprom_93cx6           13344  1 rt61pci
crc_itu_t              12707  1 rt61pci
snd_seq                61554  2 snd_seq_midi_event,snd_seq_midi
snd_seq_device         14497  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              29425  2 snd_pcm,snd_seq
mac_hid                13205  0 
snd                    68876  13 snd_hwdep,snd_timer,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_hda_codec_analog
dm_multipath           22843  0 
psmouse                95870  0 
lpc_ich                17061  0 
serio_raw              13215  0 
scsi_dh                14843  1 dm_multipath
soundcore              12680  1 snd
lp                     17759  0 
parport                46345  3 lp,ppdev,parport_pc
btrfs                 785967  0 
zlib_deflate           26885  1 btrfs
libcrc32c              12615  1 btrfs
dm_raid45              76725  0 
xor                    17116  1 dm_raid45
dm_mirror              21946  0 
dm_region_hash         20820  1 dm_mirror
dm_log                 18529  3 dm_region_hash,dm_mirror,dm_raid45
hid_generic            12540  0 
usbhid                 47074  2 hid_pl,hid_logitech
hid                   101002  4 hid_pl,hid_generic,hid_logitech,usbhid
floppy                 69449  0 
tg3                   153796  0 
ptp                    18621  1 tg3
pps_core               14080  1 ptp
i915                  600351  3 
video                  19390  1 i915
i2c_algo_bit           13413  1 i915
drm_kms_helper         49394  1 i915
drm                   286313  4 i915,drm_kms_helper