O dispositivo RFCOMM parece estar ausente (dev / rfcomm0)

4

Estou tentando enviar e receber comandos seriais via bluetooth. Eu instalei a biblioteca pyBluez. O problema é que, embora o rfcomm.conf exista, não há rfcomm0 no diretório / dev /. Eu reiniciei mas não alterei.

Se eu executar o seguinte, recebo um erro de permissão negada.

sudo echo "This is a test" > /dev/rfcomm0

Por que o rfcomm não é adicionado automaticamente ao / dev após o módulo usb bluetooth estar conectado? Módulo Bluetooth é compatível e eu sou capaz de digitalizar e encontrar dispositivos via linha de comando. Bluez e bluez-utils já foram instalados.

    
por DominicM 08.05.2014 / 21:12

2 respostas

1

Por que isso não é feito automaticamente? Primeiro, o serviço bluetooth precisa iniciar um daemon e, se não estiver em uma lista de inicialização, você precisa entrar no terminal e iniciá-lo manualmente até reconfigurar a lista de inicialização para incluí-lo.

A razão para isso é permitir que você teste sua configuração antes de se comprometer a tornar tudo automático no computador. O raciocínio por trás disso é baseado nos conceitos do Unix de como um sistema operacional deve funcionar, como usuários e grupos recebem direitos de comunicação, e assim por diante.

    
por 18.07.2015 / 18:16
1

Mesmo que o serviço Bluetooth tenha sido iniciado, o dispositivo /dev/rfcomm0 não aparecerá automaticamente.

No mínimo, o subsistema bluetooth precisaria saber o endereço do dispositivo Bluetooth e o canal nele, para que um determinado nome de dispositivo /dev/rfcomm* possa ser vinculado a uma combinação particular de dispositivo + canal Bluetooth.

Você pode usar rfcomm bind 0 <bdaddr> [channel] para fazer a ligação de /dev/rfcomm0 . Se você não especificar o número do canal, o canal 1 será usado por padrão. Se a sua versão do rfcomm ainda suportar o arquivo /etc/bluetooth/rfcomm.conf e você tiver as informações de endereço e canal de /dev/rfcomm0 escritas, você poderá omitir as informações de endereço e canal do comando, mas ainda precisará usar o comando para fazer a ligação.

As novas versões das ferramentas BlueZ não parecem mais documentar o arquivo /etc/bluetooth/rfcomm.conf . Pode ser que você sempre tenha que usar o formulário completo do comando rfcomm bind para configurar suas ligações. Você pode querer adicionar esses comandos a /etc/rc.local ou algum script de inicialização personalizado, para fazê-los executar automaticamente no momento da inicialização, pois as associações não persistirão durante a reinicialização.

Parece que a última grande reconstrução dos componentes internos da BlueZ nos custou alguns dos recursos relacionados à RFCOMM, como o arquivo /etc/bluetooth/rfcomm.conf . Mas pelo menos o comando rfcomm ainda está disponível e pode fazer o trabalho.

    
por 11.12.2017 / 00:05