Suporte para o cabo USB host-to-host Prolific (PL-25A1) no Linux

August 14, 2009

[Warning: This post is a backup recovery from my previous Wordpress blog. All content was automatically converted accessing a MySQL database using a Python script (details). Mostly are in Portuguese but if you are interest I can translate to English. If you found any problem dont’t hesitate to contact me in comments.]

O protocolo USB estabelece um padro mestre-escravo de comunicao, de modo que uma comunicao entre dois hosts (ex.: computadores PC) atravs de um cabo ponto-a-ponto no funcionar. Para resolver, existem cabos conversores (comercialmente j encontrei nomes como uplink, netlink, etc) que fazem esta adaptao.

Um dos controladores encontrados nestes cabos o PL-25A1 da Prolific que est presente em diversos modelos. Nos sistemas GNU/Linux h um mdulo (plusb.ko) que ainda no 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 mdulo, 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 cdigo-fonte (plusb.c) compile e carrege o mdulo no sistema.

# make -C /lib/modules/`uname -r`/build M=`pwd` modules
# insmod plusb.ko

Uma vez que o mdulo esteja funcionando, voc ter uma nova interface de rede usbX (para ver utilize ifconfig -a). Para enviar e recever pacotes, escolha um endereo 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 prximas verses do kernel fornecido pelas distribuies j iro trazer este suporte (quem ver o patch constatar que mnima as alteraes necessrias).

Este cabo custa em mdia R$ 70,00 bem til para transferir dados entre dois computadores quando no h interface de rede disponvel. Ainda no pesquisei os tipos de transferncias que o cabo permite, especialmente a transferncia iscrona.