# Bluetooth problem



## Zare (Dec 2, 2010)

```
[root@satcom /usr/home/zare]# kldload ng_ubt
[root@satcom /usr/home/zare]# dmesg | grep ubt
ubt0: <Broadcom Corp HP Integrated Module, class 224/1, rev 2.00/1.65, addr 2> on usbus0
[root@satcom /usr/home/zare]# ls /dev/u 
ufsid/   ugen1.1  ugen3.2  ugen6.1  ugen7.1  ums0     usbctl   
ugen0.1  ugen2.1  ugen4.1  ugen6.2  uhid0    urandom  
ugen0.2  ugen3.1  ugen5.1  ugen6.3  ukbd0    usb/
```

Hardware radio switch is on. There's no device node and i can't do anything with bluetooth.
ng_ubt should support these Broadcom devices.


----------



## richardpl (Dec 2, 2010)

Did you read bluetooth section of handbook?


----------



## Zare (Dec 2, 2010)

Don't you go handbook on me.

Like i said - device nodes are not created, that means that bluetooth rc.d script won't start because you need to pass dev node to it.


```
[root@satcom /usr/home/zare]# kldstat | grep ng_
20    1 0xc75a4000 4000     ng_ether.ko
24    3 0xc8135000 2000     ng_bluetooth.ko
25    1 0xc9f52000 f000     ng_l2cap.ko
26    1 0xcd351000 21000    ng_btsocket.ko
27    1 0xc9ef5000 4000     ng_socket.ko
29    1 0xc9eff000 6000     ng_ubt.ko
30    1 0xc9f36000 d000     ng_hci.ko
```


```
[root@satcom /usr/home/zare]# /etc/rc.d/bluetooth start ubt0
/etc/rc.d/bluetooth: ERROR: Unable to setup Bluetooth stack for device ubt0
```


----------



## richardpl (Dec 2, 2010)

Zare said:
			
		

> Like i said - device nodes are not created, that means that bluetooth rc.d script won't start because you need to pass dev node to it.


Handbook never mentioned device nodes.

Bluetooth works for me TM. ubt0 is not in /dev/

PEBKAC.


----------



## Zare (Dec 2, 2010)

Yes you're right. What i failed to see is that bluetooth stack is implemented through netgraph. So;


```
[root@satcom /usr/home/zare]# ngctl list
There are 10 total nodes:
  Name: btsock_l2c_raw  Type: btsock_l2c_raw  ID: 00000006   Num hooks: 0
  Name: ngctl44209      Type: socket          ID: 0000003e   Num hooks: 0
  Name: vboxnetflt_msk0 Type: vboxnetflt      ID: 0000003d   Num hooks: 0
  Name: btsock_sco      Type: btsock_sco      ID: 00000008   Num hooks: 0
  Name: vboxnet0        Type: ether           ID: 00000002   Num hooks: 0
  Name: btsock_hci_raw  Type: btsock_hci_raw  ID: 00000005   Num hooks: 0
  Name: wlan0           Type: ether           ID: 00000003   Num hooks: 0
  Name: btsock_l2c      Type: btsock_l2c      ID: 00000007   Num hooks: 0
  Name: ubt0            Type: ubt             ID: 0000002c   Num hooks: 0
  Name: msk0            Type: ether           ID: 00000001   Num hooks: 0
```

Device seems to be right there. But the rc.d script is not working, and hccontrol isn't either.


```
[root@satcom /usr/home/zare]# hccontrol -n ubt0hci inquiry
hccontrol: Could not find HCI nodes
```

Can you paste kernel output of your device once you load modules? Weird to me that i get only one line...handbook example contains several of them for same driver.


----------



## richardpl (Dec 2, 2010)

You enabled hc-something daemon, right?


----------



## Zare (Dec 3, 2010)

hcsecd? No i didn't, i don't need it. AFAIK that's only for Bluetooth authentication.


----------



## richardpl (Dec 3, 2010)

I did and it worked for me, I never tried without it.

I get only one line of output on console too.


----------



## Zare (Dec 3, 2010)

Yes, i started hcsecd and now bluetooth rc.d script initializes the stack. 

So this seems like an error in handbook, hcsecd is only mentioned in "Pairing of devices" chapter. Nothing to indicate that it needs to be loaded in order to init the stack.

One more question for you...have you tried internet connection sharing over bluetooth?. I'd like to use my cellphone's 3G connection for laptop.


----------



## richardpl (Dec 3, 2010)

I have limited experience with bluetooth. I tried to use it for transfering mp3s from laptop to mobile phone SD and it was extremly slow.

It all depends on what is available on phone, for example I have dial-up networking and serial port among others.

Never bothered to use such services - dunno what kind of daemon must be configured on FreeBSD side.


----------



## Zare (Dec 3, 2010)

Mobile phone in question is iPhone 3GS. I can now detect it via bluetooth and query it's capabilities, and i see RFCOMM listed as one. But trying to open RFCOMM channel just hangs. And iPhone can't detect my laptop, while other cellphone (Nokia), can. 

I'm about to dump the whole operation because i just saw that some nice soul implemented USB network driver for iPhone and it's inside 8-STABLE. Cvsuping right now, going to "upgrade" my 8.1-RELEASE to 8-STABLE, and give it a try. It's really a more handy solution than bluetooth.

Besides, AFAIK, OBEX PUSH and stuff like that aren't implemented on iPhone because Apple doesn't want any transfer mechanism besides iTunes. So apart from internet sharing there's no need for me to use bluetooth between laptop and phone.

Thanks anyways, one bit of experience more


----------

