# [Bluetooth] Inferno rfcomm [risolto]

## Peach

salve... lo ammetto: ci sto uscendo pazzo!!!

 :Twisted Evil:   :Twisted Evil:   :Twisted Evil:   :Twisted Evil: 

premessa: fino a l'altro giorno funzionava, almeno finché non ho deciso di metterci le mani.

obiettivo: connettermi al cellulare.

il file di config di rfcomm l'ho commentato puntando alla configurazione manuale.

il dispositivo viene visto:

```
# hcitool scan

Scanning ...

        00:12:62:A8:12:FE       Miditree
```

e

```
# l2ping 00:12:62:A8:12:FE

Ping: 00:12:62:A8:12:FE from 00:0A:3A:63:21:B7 (data size 44) ...

0 bytes from 00:12:62:A8:12:FE id 0 time 121.81ms

0 bytes from 00:12:62:A8:12:FE id 1 time 12.15ms

0 bytes from 00:12:62:A8:12:FE id 2 time 13.08ms

3 sent, 3 received, 0% loss
```

MA....

```
# rfcomm bind 0 00:12:62:A8:12:FE

# rfcomm

rfcomm0: 00:12:62:A8:12:FE channel 1 clean

# rfcomm connect 0 00:12:62:A8:12:FE

Can't create RFCOMM TTY: Address already in use
```

ok.. nn va bene lo rfcomm0, provo rfcomm1:

```
# rfcomm bind 1 00:12:62:A8:12:FE

# rfcomm

rfcomm0: 00:12:62:A8:12:FE channel 1 clean

rfcomm1: 00:12:62:A8:12:FE channel 1 clean

# rfcomm connect 1 00:12:62:A8:12:FE

Can't create RFCOMM TTY: Address already in use
```

hm...

nn gli va bene.. ok rilascio i device:

```
# rfcomm release all

# rfcomm connect 1 00:12:62:A8:12:FE

Can't open RFCOMM device: No such file or directory
```

ma sei str***upido!!!

in tutti i casi il cello mi chiede di accettare la connessione e gli dico di si: in tutti i casi la connessione viene droppata.

AIUTO, salvatemi dalla pazzia!

----------

## ElDios

Peach perché non metti un barlume di file di conf? magari l'errore sta lì  :Smile: 

----------

## Peach

come no!

/etc/conf.d/bluetooth

```
HCID_ENABLE=true

HCID_CONFIG="/etc/bluetooth/hcid.conf"

SDPD_ENABLE=true

HIDD_ENABLE=false

HIDD_OPTIONS=""

HID2HCI_ENABLE=false

RFCOMM_ENABLE=true

RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf"

DUND_ENABLE=false

DUND_OPTIONS="--listen --persist"

PAND_ENABLE=false

PAND_OPTIONS="--listen --role NAP"
```

/etc/bluetooth/hcid.conf

```
options {

        autoinit yes;

        security auto;

        pairing multi;

        pin_helper /usr/bin/bluepin;

}

device {

        name "%h (%d)";

        class 0x3e0100;

        iscan enable; pscan enable;

        lm accept;

        lp rswitch,hold,sniff,park;

        #auth enable;

        #encrypt enable;

}
```

e rfcomm.conf è tutto commentato. Non ha senso abilitarlo. tanto il tutto si può fare tranquillamente senza conf.

Mi inizia a sorgere il dubbio che sia un problema dello stack rfcomm che è presente nel kernel (2.6.17-r4) mannaggia...

PS: ho anche provato creando i device con

```
# mknod /dev/bluetooth/rfcomm0 c 216 0
```

ma non cambia nulla, appena lancio rfcomm i device creati vengono brasati via e mi dice "no such file or directory"

----------

## Gremo

fai creare il device con rfcomm.conf, crea un gruppo bluetooth e aggiungi una regola per udev in modo che rfcomm* siano del gruppo suddetto. aggiungi il tuo utente al gruppo. i miei problemi sono spariti facendo così  :Smile: 

ps. io uso il tuo stesso kernel con un cella se-k750i

----------

## Peach

 *Gremo wrote:*   

> fai creare il device con rfcomm.conf, crea un gruppo bluetooth e aggiungi una regola per udev in modo che rfcomm* siano del gruppo suddetto. aggiungi il tuo utente al gruppo. i miei problemi sono spariti facendo così 
> 
> ps. io uso il tuo stesso kernel con un cella se-k750i

 

già fatto: creare i device con o senza rfcomm.conf è la stessa identica cosa: il device viene creato da udev e i permessi sono corretti:

```
# ls -l /dev/bluetooth/

totale 0

crw-rw---- 1 root users 216, 0 22 ago 16:54 rfcomm0
```

```
# file /dev/bluetooth/rfcomm0

/dev/bluetooth/rfcomm0: character special (216/0)

```

con questo conf di rfcomm non cambia niente come puoi vedere:

/etc/bluetooth/rfcomm.conf

```
rfcomm0 {

        bind yes;

        device 00:12:62:A8:12:FE;

        channel 1;

        comment "Miditree";

}
```

```
# rfcomm

rfcomm0: 00:12:62:A8:12:FE channel 1 clean

# rfcomm connect 0

Can't create RFCOMM TTY: Address already in use

# rfcomm release 0

# rfcomm connect 0

Can't open RFCOMM device: No such file or directory
```

----------

## codadilupo

Ora, io uso il file rfcomm.conf, perchè mi trovo piu' comodo:

```
saltatempo ~ # rfcomm

rfcomm0: 00:16:4E:24:59:12 channel 1 clean

rfcomm1: 00:16:4E:24:59:12 channel 2 clean

rfcomm2: 00:16:4E:24:59:12 channel 3 clean

rfcomm3: 00:16:4E:24:59:12 channel 9 clean

rfcomm4: 00:16:4E:24:59:12 channel 10 clean

rfcomm5: 00:16:4E:24:59:12 channel 12 clean

rfcomm6: 00:16:4E:24:59:12 channel 15 clean

rfcomm7: 00:16:4E:24:59:12 channel 14 clean

rfcomm8: 00:16:4E:24:59:12 channel 13 clean
```

per cui liberiamo il device 0

```
saltatempo ~ # rfcomm release 0

saltatempo ~ # rfcomm

rfcomm1: 00:16:4E:24:59:12 channel 2 clean

rfcomm2: 00:16:4E:24:59:12 channel 3 clean

rfcomm3: 00:16:4E:24:59:12 channel 9 clean

rfcomm4: 00:16:4E:24:59:12 channel 10 clean

rfcomm5: 00:16:4E:24:59:12 channel 12 clean

rfcomm6: 00:16:4E:24:59:12 channel 15 clean

rfcomm7: 00:16:4E:24:59:12 channel 14 clean

rfcomm8: 00:16:4E:24:59:12 channel 13 clean
```

e vediamo un po':

```
saltatempo ~ # rfcomm connect 0 00:16:4E:24:59:12 1

Connected /dev/rfcomm0 to 00:16:4E:24:59:12 on channel 1

Press CTRL-C for hangup

Disconnected

saltatempo ~ #
```

Funziona !   :Very Happy: 

Un accorgimento, che puo' tornarti utile: controlla che il tuo telefono abbia il bluettoth attivo e visibile a tutti (ma sembra di si', da quel che ho letto) e fagli fare uno scan per torvare il pc, cosi' da associarlo direttamente, prima di riprovare a dare gl'ultimi due comandi (release e connect)

P.S.: se faccio il bind dopo il release e prima del connect, effettivamente mi riporta - randomicamente - Address already in use e Host seems down

Coda

----------

## Peach

Mio dio CODA sei un mito!!!

fantastico

sapete cos'era???

dopo aver seguito un milione di guide mi era stato suggerito che per poter accedere ai dispositivi rfcomm occorreva almeno settargli il gruppo, a tale scopo si suggeriva di creare una regola udev adeguata, del tipo:

```
# cat /etc/udev/rules.d/10-udev.rules

KERNEL="rfcomm[0-9]*", NAME="bluetooth/%k", GROUP="users", MODE="0660"
```

questa soluzione conflitta con il file di regole che le ultime bluez-libs installano e praticamente al connect non ri-creano il dispositivo in maniera corretta.. sicuramente c'è un modo per impostare delle rules adeguate, appena ho un secondo lo testo e vi faccio sapere.

grazie ancora coda!

----------

