O protocolo USB estabelece um padrão mestre-escravo de comunicação, de modo que uma comunicação entre dois hosts (ex.: computadores PC) através de um cabo ponto-a-ponto não funcionará. Para resolver, existem cabos conversores (comercialmente já encontrei nomes como uplink, netlink, etc) que fazem esta adaptação.
Um dos controladores encontrados nestes cabos é o PL-25A1 da Prolific que está presente em diversos modelos. Nos sistemas GNU/Linux há um módulo (plusb.ko) que ainda não dá suporte, mas já existe o patch (se quiser o arquivo já alterado clique aqui). Com o cabo conectado a porta USB veja qual o fabricante.
# lsusb Bus 001 Device 002: ID 067b:25a1 Prolific Technology, Inc. PL25A1 Host-Host Bridge
Meus testes foram usando o Linux 2.6.29.6-217.2.3.fc11.i586 (Fedora 11). Para instalar o novo módulo, o primeiro passo é renomear o antigo:
# cd /lib/modules/`uname -r`/kernel/drivers/net/usb/ # mv plusb.ko plusb.ko.orig
Na pasta onde está o código-fonte (plusb.c) compile e carrege o módulo no sistema.
# make -C /lib/modules/`uname -r`/build M=`pwd` modules # insmod plusb.ko
Uma vez que o módulo esteja funcionando, você terá uma nova interface de rede usbX (para ver utilize ifconfig -a). Para enviar e recever pacotes, escolha um endereço de IP para os endpoints e comece a utilizar normalmente.
usb0 Link encap:Ethernet HWaddr EE:08:2C:4C:79:5B
inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::ec08:2cff:fe4c:795b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:94 errors:0 dropped:0 overruns:0 frame:0
TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12458 (12.1 KiB) TX bytes:11304 (11.0 KiB)
Acredito que as próximas versões do kernel fornecido pelas distribuições já irão trazer este suporte (quem ver o patch constatará que é mínima as alterações necessárias).
Este cabo custa em média R$ 70,00 é bem útil para transferir dados entre dois computadores quando não há interface de rede disponível. Ainda não pesquisei os tipos de transferências que o cabo permite, especialmente a transferência isócrona.
E quanto a velocidade? Chega a velocidade dos 30MB/s da USB2.0?
Link | agosto 16th, 2009 at 23:23
Nos meus benchmarks não obtive os 480Mbits/s da especificação 2.0. Na verdade não era esperado hava visto que o cabo não implementa o modo de transferência isocrono.
Link | setembro 11th, 2009 at 19:35