Ubuntu na terra do pão di queijo

15/03/2007

Brincando com o Bluetooth – Parte 2

Filed under: Portateis,Software Livre,Ubuntu — Leonardo Amaral @ 20:55

Como continuação da parte 1, as proximas partes abordarão os recursos disponíveis no KDE em relação ao bluetooth e a organização da informação. Falaremos agora da transferência de arquivos e das conexões GPRS.

Transferindo arquivos de e para o celular

Conforme mostrado anteriormente, o KDE procura colocar tudo como arquivo no navegador, como protocolos especiais (resumindo, tudo você pode ver pelo navegador de arquivos). Se for atentamente observado, pode ser visto para os dispositivos que tem a capacidade de transferir arquivos o “diretório” “OBEX File Transfer”, que diz respeito a navegação de arquivos. Segue um screencast demonstrando como é feita a navegação:

Desta forma, a coisa é bem simples, rápida e facil, aplicando também a telefones celulares, e palms.

GPRS

A conexão GPRS, em qualquer dispositivo, exige a configuração de uma conexão discada a partir do PC. No linux há um passo a mais, que consiste na alocação de um MAC (Ou seja, um dispositivo) a um device. Caso seja necessário mais informações sobre isso, estarei respondendo, ou criando outro artigo.

O primeiro passo para o reconhecimento é saber o MAC do dispositivo. Ele pode estar escrito no aparelho (Bem dificil) ou então ser detectado pelo scan (que obviamente não funciona quando protegemos nossos dispositivos, ao desativar a detecção). Falarei das duas ultimas situações antes de prosseguir. Para escanear dispositivos Bluetooth disponiveis, basta um comando no console:

hcitool scan

A saida é mais ou menos esta:

leleobhz@kahlua:~$ hcitool scan
Scanning ...
00:07:E0:49:73:EF lisa.astolfonet

Em posse deste endereço MAC, você o adiciona no rfcomm.conf:

sudo kwrite /etc/bluetooth/rfcomm.conf

A sintaxe deste arquivo funciona mais ou menos assim:

#
# RFCOMM configuration file.
#
rfcomm0 {
bind yes;
device 00:07:E0:49:73:EF;
channel 1;
comment "lisa.astolfonet";
}
rfcomm1 {
bind yes;
device 00:16:B8:F5:2A:DE;
channel 2;
comment "eddie.astolfonet";
}

Bom, para cada dispositivo que você quiser conectar com uma conexão discada, usar recursos de modem, ou simular uma porta serial, você configura um rfcomm. Neste caso tem 2, e eles sao automaticamente criados depois que você edita este arquivo e reinicia o serviço do bluetooth, como descrito na parte 1. A seguir, o que significa cada coisa:

bind: Caso tenha um “yes”, ele vai ser criado quando você iniciar o bluetooth, ou seja, no ato do reiniciar o serviço, ou ligar o computador.

device: O endereço MAC do dispositivo.

channel: Este é um passo importante. É sabido que para cada tipo de serviço, é usado um canal dentro daquele escopo de frequências. Abro um chavão para mais uma aplicação importante, o sdptool. Para ser sucinto, vou colocar a saida do comando para meu celular. Acho que é bastante intuitivo, tanto a sintaxe do comando, quanto a saida dele:

leleobhz@kahlua:~$ sdptool browse 00:16:B8:F5:2A:DE
Browsing 00:16:B8:F5:2A:DE ...
Service Description: Sony Ericsson Z530
Service RecHandle: 0x10000
Service Class ID List:
"PnP Information" (0x1200)

Service Name: OBEX SyncML Client
Service RecHandle: 0x10001
Service Class ID List:
UUID 128: 00000002-0000-1000-8000-0002ee000002
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
"OBEX" (0x0008)

Service Name: Dial-up Networking
Service RecHandle: 0x10002
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 2
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

Service Name: Serial Port
Service RecHandle: 0x10003
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 3

Service Name: HF Voice Gateway
Service RecHandle: 0x10004
Service Class ID List:
"Handfree Audio Gateway" (0x111f)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 4
Profile Descriptor List:
"Handsfree" (0x111e)
Version: 0x0101

Service Name: HS Voice Gateway
Service RecHandle: 0x10005
Service Class ID List:
"Headset Audio Gateway" (0x1112)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 5
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100

Service Name: OBEX Object Push
Service RecHandle: 0x10006
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 6
"OBEX" (0x0008)
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100

Service Name: OBEX File Transfer
Service RecHandle: 0x10007
Service Class ID List:
"OBEX File Transfer" (0x1106)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 7
"OBEX" (0x0008)
Profile Descriptor List:
"OBEX File Transfer" (0x1106)
Version: 0x0100

Service Name: OBEX IrMC Sync Server
Service RecHandle: 0x10008
Service Class ID List:
"IrMC Sync" (0x1104)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 8
"OBEX" (0x0008)
Profile Descriptor List:
"IrMC Sync" (0x1104)
Version: 0x0100

Service Name: NAP service
Service Description: NAP description
Service RecHandle: 0x10009
Service Class ID List:
"Network Access Point" (0x1116)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 15
"BNEP" (0x000f)
Version: 0x0100
SEQ8: 0 6 dd
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Network Access Point" (0x1116)
Version: 0x0100

Service Name: Mouse & Keyboard
Service Description: Remote Control
Service Provider: Sony Ericsson
Service RecHandle: 0x1000a
Service Class ID List:
"Human Interface Device" (0x1124)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 17
"HIDP" (0x0011)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Human Interface Device" (0x1124)
Version: 0x0100

Analizando a saida deste arquivo, vemos que a saída de GPRS está no canal 2, portanto é este que usaremos.

comment: Deve conter o “Nick” do dispositivo. Não testei a mudança dele, mas imagino que possa dar problemas.

Neste ponto, salve o arquivo e reinicie o serviço de Bluetooth (sudo /etc/init.d/bluetooth restart).

Ele vai criar o device /etc/rfcommX, onde X é o número que você definiu no rfcomm.conf. Com ele, proceder normalmente. Vou mostrar um vídeo para configuração da Claro:

Na terceira parte do artigo (só vai sair no sabado a noite!!!!), vou falar sobre o Controle Remoto no celular bluetooth.

7 Comentários »

  1. leonardo, tenho um ze2410 e quero migrar do windows pro ubuntu. vc acha indicado? dá pra vc mandar pro meu email alguma dica? não tenho conhecimento de linux, mas preciso apenas de uma orientação inicial, dica de estudo, etc. valeu!

    Comentário por beto — 23/03/2007 @ 11:27 | Responder

  2. Beto, meu noteboo e exatamente este (não sei se você viu). Ele dá um cadin de trabalho sim, mas tudo funciona no linux. A nova versão do Ubuntu inclusive – creio eu – que não precise do ndiswrapper. Me contacte no leleobhz[semspamm]leleobhz.org

    Comentário por Leonardo Amaral — 23/03/2007 @ 12:16 | Responder

  3. […] Configurar o Bluetooth no Ubuntu, segue os links: Bluetooth Ubuntu 1 Bluetooth Ubuntu 2 […]

    Pingback por Configurar o Bluetooth no Debian, Ubuntu, Windows XP e Vista | Vomicae™ — 27/11/2007 @ 18:42 | Responder

  4. […] você busca algo mais técnico, poderá encontrar informações que ainda continuam válidas aqui e aqui, referente a este assunto no […]

    Pingback por Bluetooth: ArchLinux « Memphyx — 27/05/2008 @ 22:35 | Responder

  5. Leonardo, tudo bem? Será que você não teria uma idéia para me ajudar? Já tentei de todas as formas resolver este problema, consultei google e fórum, mas nada que diga respeito a isso: ao tentar conectar à Claro SP pelo Ubuntu utilizando um celular (Nokia N95) com o modem, tanto pelo cabo usb (ttyACM0) como pelo bluetooth (rfcomm0) o celular chega a discar (e aparecer o ícone 3G piscando no display) mas 3 segundos depois a conexão não se completa e o wvdial recebe um erro, que aparece no log, que é o seguinte: “The PPP daemon has died: A modem hung up the phone (exit code = 16)”. Por acaso você teria alguma idéia de por qual motivo o modem do celular está recusando a conexão? Utilizando o Windows ou tentando-se navegar pelo próprio celular a conexão funciona normalmente. Valeu!

    Comentário por Jaldomir — 25/06/2008 @ 14:34 | Responder

  6. […] você busca algo mais técnico, poderá encontrar informações que ainda continuam válidas aqui e aqui, referente a este assunto no […]

    Pingback por Bluetooth: ArchLinux « Jeferson's Blog … — 16/01/2011 @ 9:17 | Responder

  7. Ótimo post! :)

    Comentário por Leticia — 05/01/2015 @ 15:28 | Responder


RSS feed for comments on this post. TrackBack URI

Deixe um comentário

Blog no WordPress.com.