Comunicando-se com PALM por TCP/IP

Há uns 6 meses eu possuo um Palm Tungsten E, mas certamente ele não está sendo bem aproveitado. Praticamente eu só o utilizo para ouvir música (Real Player), agenda eletrônica e um "ToDo list". Não mais que isso.

Hoje eu estava olhando pra ele e resolvi explorá-lo um pouco mais em meu ambiente desktop - um Ubuntu Linux e uma conexão USB.

A etapa inicial era comunicar-se com ele: para isso eu utilizei Pilot-Link. Ele sozinho já faz tudo que eu preciso: lista o que tem dentro do Palm e instala um arquivo novo facilmente. Se você tem um Palm com USB já deve ter notado que no Linux é meio chatinho sincronizar... Tem que apertar o botão do HotSync e em seguida iniciar a comunicação com o software. Nessa ordem - nem muito rápido (senão o dispositivo /dev/pilot ainda não está criado), nem muito rápido (senão dá timeout no Palm).

E tem outra coisa que eu não gosto: transferir arquivos é muito lento com o HotSync. Então a idéia é fazer o Palm transferir arquivos de outra maneira. Opção 1: Card Export II. Esse programinha faz o Palm ser reconhecido como um "USB Mass Storage", e aí fica fácil fácil copiar coisa pra lá e pra cá. Muito legal mesmo. Mas ele é shareware, e o meu expirou. Como eu sou politicamente correto (saco!) não vou mais utiliza-lo, pelo menos até pagar os 20 e poucos dólares que é o preço dele (e ele vale a pena).
Então a gente tem que inventar algum outro jeito.
Opção 2: ftp. FTP é sem dúvida a maneira mais óbvia de se transferir arquivos desde os primórdios da Internet, então deve ser uma boa escolha.

Pergunta 1: Certo, FTP, mas como o PC vai se comunicar com o Palm via TCP/IP? Resposta: através de um link PPP. Essa também é a maneira mais óbvia de efetuar a comunicação entre dispositivos na Internet.

Pergunta 2: Ok, se isso do IP der certo, vai ter um programa dr FTP para o Palm? Resposta: sim, tem. Vários inclusive, mas eu fiquei com o primeiro que baixei, o LFtp.

Ok, então vamos lá. Ler a documentação do PPP pra lembrar como é que isso funciona, afinal não é todo dia que você faz isso, certo? Errado :-) Antes de fazer uma voz me disse que eu devia procurar alguma coisa no Google. E não é que eu acho a página de um tal de Atul Chitnis ? E lá ele tem um scriptzinho que cuida da parte PPP pra a gente? :-) Aí ficou fácil. Baixa o script, muda só o parâmetro MyPort de /dev/ttyUSB1 para /dev/pilot (que é onde o meu palm está), e os IPs para começar com 192.168.0 (só porque eu queria assim), coloca um ip na placa de rede com um ifconfig eth0 192.168.0.1 e torna-o executável com um chmod +x palm-ppp.

Antes de ver se funciona é preciso configurar o Palm também: vai em "Pref" e em seguida "Rede". Coloca um nome qualquer para o serviço (meulinux), deixa usuário e senha em branco e escolhe a conexão "Base/Cabo". Vai lá em detalhes e certifica-se que a conexão está tipo PPP, sem nenhum tempo limite e as opções de Consultar DNS e Endereço IP automático estão marcados.
Tudo certo, clica em Conectar. Fica uma mensagem 'Iniciando a sessão' na tela. Ok.

Agora vamos voltar para a nossa "Linux box" e executar: ./palm-ppp. Bingo! funcionou de primeira. Valeu Atul! :-) Detalhe: você precisar ter permissão de root para isso, porque além do link PPP ele trata de fazer o iptables compartilhar a sua conexão à Internet...

root@schumacher:~/palm# palm-ppp
Using interface ppp0
Connect: ppp0 <--> /dev/pilot
found interface eth0 for proxy arp
local IP address 192.168.0.1
remote IP address 192.168.0.2

Link is up, your Palm is at 192.168.0.2

Hummm... será que está funcionando mesmo?

root@schumacher:~/palm# ping 192.168.0.2
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=255 time=2.98 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=255 time=2.65 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=255 time=2.71 ms

--- 192.168.0.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 2.659/2.786/2.987/0.143 ms

Pelo visto, sim :-)


Ok, já temos comunicação com o Palm. Mas no Palm não tenho nenhum programa que saiba utilizar isso. Ou melhor, tenho! Um tal Avant-Go que sincroniza páginas web para leitura off-line. Cliquei lá em refresh e pronto, funcionando. Ótimo.

Então, desconecto tudo e baixo três programinhas: dois úteis e um nem tanto assim:
LFtp: um cliente FTP
ptelnet: um cliente TELNET
Mergic Ping: um "ping" :-)

Pretendendo utilizar pela última vez o Hotsync, coloco todos os .prc desses programas em um diretório e executo #pilot-xfer --port /dev/pilot -i *.prc naquela ordem mágica: aperta o HotSync, espera 2 segundos e executa o comando. Beleza, programas transferidos, hora de testar.

Vai lá em "Pref", "Rede" e manda conectar. Depois roda novamente o palm-ppp. Conectado! Agora é a vez do FTP.

O LFtp é bastante intuitivo... configura a conexão e manda conectar. Tudo funciona bem, como um FTP normal. Ele possui um 'help' também, e coisas como 'ldir' também funcionam.

Bom, já que estamos aqui não custa nada testar o telnet também, né? Então vamos lá no nosso Linux levantar o telnet. Como é só pra testar, nada de xinetd. Um #in.telnetd -debug e pronto, o servidor telnet roda em 'standalone'.

No PTelnet, configura o IP do Host e o terminal para "Return: CR/LF" (já prevendo que que não o fizer não conseguiremos utilizar o backspace apropriadamente...). Clica em "On" e, para felicidade geral da nação, eis que aparece no Palm:

Ubuntu 5.10 "Breezy Badger"
schumacher login: _

Agora nós temos um terminal remoto! Pode até ser que um dia isso me seja útil para depurar algo... O importante é que funciona :-)

Não satisfeito ainda testei o ftp baixando o Eldora e Eldora Web - um cliente de e-mail e browser, respectivamente. Funcionaram como o esperado, sem problemas.


E agora? Bom, tenho que admitir que ainda continuo com quase o mesmo problema original: eu não gostava do Hotsync, agora temos FTP. É bem verdade que na conexão PPP não dá problema de timeout ou coisa parecida (mas a ordem de execução continua obrigatória: primeiro o Palm, depois o Linux, claro). E que o FTP é mais rápido.

Só que digitar no Palm... pra mim ainda não é legal. Não gosto. Talvez eu compre um teclado daqueles sem fio, mas enquanto isso ainda acho chato.

A solução? Bom, a solução é fazer no próprio Palm o servidor FTP! Assim, a partir do Linux eu posso mandar as coisas pra lá e pra cá utilizando o meu bom e velho teclado branco (um pouco amarelo...).

Fui olhar no Google e não achei nada parecido. Acabei baixando o que era preciso para programar para Palm (prc tools) e fazendo o "Hello World" funcionar. O objetivo era mexer com isso ainda hoje, mas meu irmão foi assaltado e perdi completamente o saco.

E, mudando de assunto completamente porque já acabou, parabéns para o Governo do Ceará: sem me levantar da cadeira pude registrar um boletim de ocorrência eletrônico sobre o furto - apesar de um aviso gigantesco na página inicial: "IMPORTANTE: A Delegacia Eletrônica só funcionará corretamente com o Internet Explorer 5.0 ou superior!". Bom, mas como eu estou usando o Firefox ele se enquadrou no "superior" e funcionou a contento. :-)

Pois é pessoal, por hoje é só. Esse post foi grande para descontar todo o tempo parado. Valeu!

ps: se alguém souber de um servidor FTP para o Palm, avisa, ok? :-)

Comentários

Anônimo disse…
Servidor FTP: http://tinyurl.com/ykchbn

Dá uma olhada neste site: http://tinyurl.com/ybwawu

Tem bastante coisa boa nele ;-)
Roberto disse…
Não funcionou :-( Olha só, até conecta, mas não funciona:

root@schumacher:/home/roberto# ftp 192.168.99.2
Connected to 192.168.99.2.
220 Service Ready
Name (192.168.99.2:roberto):
331 User name okay, need password
Password:
230 User logged in
Remote system type is UNIX.
ftp> ls
200 Command okay
150 File status okay; about to open data connection
226 Closing data connection
ftp> put
(local-file) wsol
(remote-file) wsol
local: wsol remote: wsol
200 Command okay
450 Requested file action not taken
ftp> ls
200 Command okay
150 File status okay; about to open data connection
226 Closing data connection
ftp>


Alguma outra dica ? ;-)

Postagens mais visitadas deste blog

Hacking GVT/Vivo Sagemcom F@st 2764 GV (aka "Desbloqueio")

NicePhotos.com.br : Not so nice...

A Arte de Escrever Programas de Computador