Parece ser possível executar USB sobre IP, por exemplo, usando usbip
parte de algumas distros do Linux, por exemplo, https://www.archlinux.org/packages/?q=usbip
Existe algo semelhante para Bluetooth sobre IP? (NÃO: IP sobre Bluetooth).
Isso permitiria a separação física de, digamos, um smartphone habilitado para BT de um fone de ouvido habilitado para BT por meio da Internet.
O Linux bnep
pode fazer isso, mas não consegui encontrar instruções sobre como fazê-lo.
linux
networking
bluetooth
tunnel
Johannes Ernst
fonte
fonte
Respostas:
Embora em nosso mundo tecnológico tudo hoje pareça possível, até onde eu sei, o verdadeiro Bluetooth para Bluetooth sobre IP nunca foi implementado. Tentarei explicar as dificuldades que, embora não sejam intransponíveis, são a causa dessa situação.
O próprio Bluetooth é um padrão da tecnologia sem fio para a troca de dados a curtas distâncias. Geralmente é usado para conexões dispositivo a dispositivo e envolve a noção de emparelhamento, por motivos de segurança. O protocolo Bluetooth é extremamente versátil e pode ser usado para vários propósitos. Sua popularidade decorre do fato de operar em frequências globalmente não licenciadas (mas não não regulamentadas).
O verdadeiro Bluetooth para Bluetooth sobre IP exigiria dois dispositivos Bluetooth para parear sobre IP. Isso não é o mesmo que, por exemplo, duas pessoas que usam o Skype para conversar pela Internet via fones de ouvido Bluetooth, porque os fones de ouvido são pareados com seus computadores e não um com o outro.
Aqui estão alguns trechos do modelo OSI do artigo da Wikipedia :
TCP e UDP são protocolos de nível 4 de transporte, enquanto o Bluetooth é um protocolo físico de nível 1 inferior. Assim, você pode usar TCP ou UDP em cima do Bluetooth, assim como você usa TCP e UDP em cima da Ethernet, mas o oposto é muito mais difícil.
A pilha de protocolos Bluetooth inclui seus próprios protocolos de transporte: L2CAP e RFCOMM, onde os links RFCOMM usam a camada L2CAP. Você pode trabalhar em alguns túneis IP através de pacotes UDP de encapsulamento Bluetooth através de links RFCOMM.
Usando a terminologia OSI pura, é impossível, é até uma contradição de termos, usar um protocolo da camada 1 sobre a camada 4.
Na prática, poderíamos imaginar um adaptador virtual escrito por software que se declararia para Linux no lado do cliente como um dispositivo Bluetooth físico e conversasse por IP com outro dispositivo Bluetooth virtual no Linux do servidor. Porém, a complexidade envolvida na emulação de camadas OSI e o esforço de programação necessário para implementar o protocolo Bluetooth muito versátil e sua arquitetura mestre-escravo tornam a criação de uma implementação tão geral um exercício muito exigente e improvável de acontecer, como atualmente existe. nenhuma demanda por esse software.
fonte
Eu não tentei nada disso na prática, mas é algo que eu acho que fala sobre "Bluetooth sobre IP".
O livro Linux Kernel Networking é muito técnico, mas descreve como executar o "Bluetooth sobre IP":
Isso cria uma interface virtual
bnep0
.Aparentemente, isso fornece apenas o L2CAP, que só pode enviar pacotes por um "piconet". Porém, para o L2CAP, há uma reflexão sobre como enviá-los por IP em um rascunho da IETF: Transmissão de pacotes IP por redes Bluetooth .
E também encontrei o UbiPAN: uma rede estendida de área pessoal Bluetooth que menciona "Bluetooth sobre IP" - mas infelizmente não parece que o UbiPAN foi lançado como software livre.
fonte
Eu estive no mesmo (ou similar) pensamento recentemente. O que eu quero fazer é usar um hub de automação residencial, que infelizmente não pode chegar a toda a casa com rádio de localização única.
Minha configuração é a seguinte: computador executando o cliente bluez + usbip <- LAN -> outro computador com dongle USB bluetooth físico + servidor usbip.
Acontece que isso funciona muito bem. Do ponto de vista do Bluez, não é possível distinguir entre dongles USB locais e remotos.
(Máquinas executando o Linux 4.9.80 + up-todate-usbip + Bluez 5.48; arm)
fonte
Harrymc está correto.
Isso não é possível ou, pelo menos, inviável.
Você pode emparelhar seu telefone com um computador e seu fone de ouvido com outro computador e, assim, ter duas conexões bluetooth. A conexão entre os computadores pode ser conectada da maneira que você desejar e, por sua vez, retransmitir toda a comunicação bluetooth. Isso fará com que pareça que você conectou o bluetooth ao IP e provavelmente poderá fazer com que eles conversem e façam algumas das coisas que estão tentando fazer.
Mas, na realidade, não há conexão bluetooth entre os dois dispositivos.
O dispositivo A possui uma conexão bluetooth com um computador.
O dispositivo B tem uma conexão bluetooth com outro computador.
Os dois dispositivos não poderão emparelhar e conectar-se diretamente um ao outro. Pode-se teoricamente construir algo que permita a instalação de um link bluetooth direto, mas percorrer as camadas e o gerenciamento de chave de link seria um pesadelo, e isso é apenas o começo. Não tenho idéia de como resolver o gerenciamento e a frequência de pacotes a taxa de salto de frequência do bluetooth é de 1600 hops / s para um pacote de slot único.
Se alguém realmente fizesse isso, eu ficaria muito impressionado e gostaria muito de dar uma olhada por baixo do capô.
fonte
Ok, eu investiguei isso um pouco mais. Não é possível.
Aqui está o porquê: Para que isso funcione, você precisará do chip bluetooth no computador para retransmitir as informações em vez de responder por si só.
Essa funcionalidade ainda não existe.
Não posso compartilhar nenhuma documentação neste momento, pois é proprietária e confidencial.
Se você é membro do BT SIG, pode visualizar o roteiro do bluetooth na seção de panorama em bluetooth.org
fonte