# Does this BT dongle have driver & installing issues?

## pmam

I need Bluetooth adapter and found this low price dongle - 

Can you please tell from the link if it has kernel's driver and will work properly?

Anyone has experience with this type or can recommend on other type?

http://www.dx.com/p/ultra-mini-bluetooth-csr-4-0-usb-dongle-adapter-black-143276#.VtiKZ-IvCG8

----------

## Ant P.

The bluetooth driver situation is much less painful than it is with wifi, it's very rare to find a USB adapter the generic driver doesn't support.

----------

## NeddySeagoon

pmam,

Google says that it works on Linux.

However, vendors often change the guts of their devices without changing the packaging.  

That means you won't know what you are going to get until you get it.

A few vendors don't change the device ID either, which makes life difficult. 

As Ant P. says, if you can buy an unsupported bluetooth dongle, you are very unlucky.

----------

## pmam

 *Quote:*   

> As Ant P. says, if you can buy an unsupported bluetooth dongle, you are very unlucky.

 

I had some problems with WIFI dongle so I was afraid

If will get problems with bluetooth I should not go to Las Vegas...   :Smile: 

Thanks

----------

## pmam

I have received the BT dongle mentioned in my first post here - 

I follow this wiki: https://wiki.gentoo.org/wiki/Bluetooth and want to figure out what is needed in order to work it out.

I already did all kernel's configurations as described in wiki - Please inform what else need to do:

USE="bluetooth" in  /etc/portage/make.conf?

emerge net-wireless/bluez? EDIT: Now I see that this package is already installed:

```
eix net-wireless/bluez

[I] net-wireless/bluez

     Available versions:  4.101-r9 5.35(0/3) ~5.36(0/3) ~5.37(0/3) {alsa cups debug doc extra-tools gstreamer hid2hci +obex pcmcia (+)readline selinux systemd test test-programs +udev usb ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32" PYTHON_TARGETS="python2_7"}

     Installed versions:  5.35(03:53:54 PM 01/30/2016)(cups obex readline udev -debug -selinux -systemd -test ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86="32 64 -x32")

     Homepage:            http://www.bluez.org

     Description:         Bluetooth Tools and System Daemons for Linux
```

gpasswd -a <user> plugdev? I do not use ConsoleKit.

rc-update add bluetooth default?

Please advise the minimum steps to do regarding this BT dongle - at the moment it is not working - my smartphone does not see it.

Here some info:

```
lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 005 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 003 Device 026: ID 046d:c03e Logitech, Inc. Premium Optical Wheel Mouse (M-BT58)

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
```

```
new full-speed USB device number 4 using uhci_hcd

[ 1527.568062] usb 5-2: New USB device found, idVendor=0a12, idProduct=0001

[ 1527.568068] usb 5-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0

[ 1527.568072] usb 5-2: Product: CSR8510 A10
```

After running:

```
 rc-service bluetooth start and hciconfig hci0 up
```

Get:

```
hciconfig -a

hci0:   Type: BR/EDR  Bus: USB

   BD Address: 00:1A:7D:DA:71:11  ACL MTU: 310:10  SCO MTU: 64:8

   UP RUNNING 

   RX bytes:1184 acl:0 sco:0 events:66 errors:0

   TX bytes:1072 acl:0 sco:0 commands:66 errors:0

   Features: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87

   Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 

   Link policy: RSWITCH HOLD SNIFF PARK 

   Link mode: SLAVE ACCEPT 

   Name: 'BlueZ 5.35'

   Class: 0x000104

   Service Classes: Unspecified

   Device Class: Computer, Desktop workstation

   HCI Version: 4.0 (0x6)  Revision: 0x22bb

   LMP Version: 4.0 (0x6)  Subversion: 0x22bb

   Manufacturer: Cambridge Silicon Radio (10)
```

----------

## NeddySeagoon

pmam,

hci0 is an ethernet interface over bluetooth.

Bluetooth is short range WiFi.  Its in the unlicenced 2.4GHz band too.

Your first step is to 'pair' your bluetooth with some other bluetooth device that also understands the services you want to use.

e.g.  I can pair my mobile phone with a bluetooth headset so I can answer incoming calls.  The headset does not have a dialer, so I can't dial numbers.

I can pair my phone with the car hands free kit to have full remote control of the phone.

I can pair the phone with my PC but only as an audio device.  The phone does not provide ethernet over bluetooth, so I can't transfer music, photos and random files.

The point is that bluetooth enabled devices only support a subset of bluetooth facilities. Some make sense, why would you want ethernet in a headset?

Some you may expect but they are not there. Ethernet to my phone?

So, pair your devices then see if you can do what you want.  Its mostly up to the software at both ends, not the hardware.

Your dongle clearly works.

----------

## pmam

NeddySeagoon,

I see what you say, but the problem is that I can not pair at all - 

After running on my desk top:

```
rc-service bluetooth start and hciconfig hci0 up
```

I try to scan from my mobile phone and it does not see my desk top. 

On the other side I tried to run from desktop:

```
hcitool scan
```

Also with no result.

So I wonder if something is missing:

Should add special driver to kernel?

Acoording to wiki:

Should add USE="bluetooth" in /etc/portage/make.conf?

EDIT: Now I see that USE="bluetooth' is already active -Maybe it is a default of the chosen profile.  

Sould do gpasswd -a <user> plugdev? I do not use ConsoleKit.   

Thanks

----------

## NeddySeagoon

pmam,

Pairing is a special mode of the device.  On one device set the device to discoverable.  The discoverable mode only lasts briefly.  Literally a minute or two.

While one device is discoverable, set the other device to scan.

When the scanning device has found the discoverable device, you need to enter a password.

I forget which way round it is but one device will give you a password to enter on the other device.

If that works, the devices will remember each other until you tell them to forget.

Nothing else matters until pairing has worked.

----------

## pmam

NeddySeagoon,

OK - I read your reply and it looks ok by now:

First I changed my phone mobile BT Visibility > Timeout=never,

and then by scanning from my desk top, It discovered mobile phone.

Pairing: I could not pairing from my mobile phone and in wiki there is a command 'simple-agent',

that I did not find. So I found nice GUI application in my DE called: 

BlueDevil - with this app I did pairing/add device and also can browse/send files etc.

Need to play around and see what else can do...

Thanks a lot

----------

## NeddySeagoon

pmam,

 *Quote:*   

> First I changed my phone mobile BT Visibility > Timeout=never, 

 

Don't leave your phone in pairing mode - that would be a very bad thing.

----------

## pmam

NeddySeagoon,

 *Quote:*   

> Don't leave your phone in pairing mode - that would be a very bad thing.

 

Yes. I know...  I already changed to default=2 minuets.

Thanks

----------

## pmam

Some additional issues:

 *Quote:*   

> Pairing: I could not pairing from my mobile phone and in wiki there is a command 'simple-agent', that I did not find.

 

It was my mistake: I followed the part refers to BlueZ 4 rather than BlueZ 5 that installed in my desk top - 

So with bluetoothctl pairing could be performed by console commands.

In wiki there is this permission command:

```
gpasswd -a <user> plugdev
```

Please explain why need it and if it is essential? Also - How to cancel it?

As you may see in th wiki here: https://wiki.gentoo.org/wiki/Bluetooth#Usage - 

Need to manually turn on BT controller by:

```
hciconfig hci0 up
```

Is there a way to do it automatically on boot? I tried to change main.conf in /etc/bluetooth to 'AutoEnable=true' like that:

```
# AutoEnable defines option to enable all controllers when they are found.

# This includes adapters present on start as well as adapters that are plugged

# in later on. Defaults to 'false'.

#AutoEnable=false

AutoEnable=true
```

However it did not help - Please advise?

----------

## BT

 *pmam wrote:*   

> 
> 
> In wiki there is this permission command:
> 
> ```
> ...

 

You user needs permission in order to pair/access the Bluetooth controller. The wiki clearly states that permissions are handled automatically if you're using ConsoleKit or systemd. Otherwise add your user to the plugdev group.

 *pmam wrote:*   

> 
> 
> As you may see in th wiki here: https://wiki.gentoo.org/wiki/Bluetooth#Usage - 
> 
> Need to manually turn on BT controller by:
> ...

 

The wiki provides (in the Usage section) a udev rule for automatically enabling a Bluetooth controller.

----------

## pmam

BT Hi,

 *Quote:*   

> The wiki provides (in the Usage section) a udev rule for automatically enabling a Bluetooth controller.

 

I found it in wiki and added file: /etc/udev/rules.d/90-bluetooth.rules with the relevant content - now BT controller automatically power on.  

Thanks for your advise!

----------

## pmam

One more thing: I see there are BT dongles with 'Dual Mode' like the link below -

I did not figure out from google what Dual Mode is for:

Just supports old BT devices?

If the price is same as without Dual Mode:

Can say that dongle with Dual Mode better to buy? Are there disadvantages?

http://www.aliexpress.com/item/Mini-USB-Bluetooth-Adapter-V-4-0-Dual-Mode-Wireless-Dongle-Wholesale-CSR-4-0-USB/1950632649.html?spm=2114.30010308.3.2.CU23jv&ws_ab_test=searchweb201556_2,searchweb201602_1_10036_10035_10034_507_10032_10020_10017_10005_10006_10021_10022_10018_10019,searchweb201603_9&btsid=05a46783-b532-467d-abaf-cea5f4d016f6

----------

