quinta-feira, 25 de outubro de 2007

Celulares Siemens no Linux

INTRODUÇÃO

Depois de algum tempo utilizando linux para as tarefas diárias, passou a ser realmente um transtorno ter de iniciar (ou reiniciar) o computador em Windows XP, apenas para carregar alguns arquivos para o celular, ou copiar algumas fotos. Se você, assim como eu, já passou por isso com seu celuar BENQ-SIEMENS EL71, ou qualquer outro modelo deste fabricante, este tópico poderá ajudá-lo. Note que todas as informações aqui apresentadas se referem a utilização do aparelho no UBUNTU Linux Feisty Fawn (7.04) . Assim, se você possui uma distribuição linux diferente atente para os detalhes de sua própria distribuição e faça as alterações necessárias.

Sistema de Arquivos

A SIEMENS utiliza em seus aparelhos um sistema de arquivos específico, chamado de SIEFS. Este sistema de arquivos, que poderiamos chamar de "virtual" nos disponibiliza as seguintes pastas principais:

Data
MMCard

Como todos devem saber a pasta Data é o conjunto de dados de configuração do software do celular, além de arquivos como temas, imagens, sons, bookmarks, etc. A remoção ou alteração de qualquer dado dentro desta pasta deve ser feita com cautela, pois pode * DANIFICAR * as configurações do aparelho, impedindo seu correto funcionamento.
Já a pasta MMCard é o conjunto de arquivos armazenados no cartão de memória (microSD Card)

Objetivo

As informações que você encontrará abaixo visam demonstrar como se pode obter acesso aos dados armazenados nas pastas Data e MMCard, para que você copiar livremente arquivos delas ou para elas.

Software

Para realizar o procedimento mencionado você deverá fazer o download do SIEFS, o aplicativo que utilizaremos para a montagem do sistema de arquivos Siemens em Linux. Este sistema é baseado no FUSE - File System in User Espace, o qual também instalaremos em seguida.

SIEFS: http://chaos.allsiemens.com/siefs/

Instalação

Iniciaremos fazendo o download e instalação do FUSE:
root@seraph:/# apt-get install module-assistant fuse-source fuse-utils libfuse2 libfuse-dev build-essential

E depois a instalação do SIEFS:

root@seraph:/# mv siefs-0.5.tar.gz /usr/local
root@seraph:/# cd /usr/local
root@seraph:/usr/local/# tar -zxvf siefs-0.5.tar.gz
root@seraph:/usr/local/# cd siefs-0.5
root@seraph:/usr/local/siefs-0.5/# ./configure
root@seraph:/usr/local/siefs-0.5/# make

Erro...

Provavelmente, após o make você deverá ver uma mensagem de erro similar a esta:

gcc -I/usr/local//include -DFUSEINST="\"/usr/local/\"" -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=22 -L/usr/local//lib -o siefs siefs.o obex.o transport.o comm.o crcmodel.o charset.o /usr/local//lib/libfuse.a -lpthread
/usr/local//lib/libfuse.a(fuse.o)(.text+
0x1156): In function `curr_time':
/home/slipknot/packagessources/fuse/fuse
-2.6.1/lib/fuse.c:738: undefined reference to `clock_gettime'
/usr/local//lib/libfuse.a(fuse.o)(.text+
0x1192):/home/slipknot/packagessources/fuse/fuse-2.6.1/lib/fuse.c:741: undefined reference to `clock_gettime'
collect2: ld returned 1 exit status
make[2]: ** [siefs] Erro 1
make[2]: Saindo do diretório `/home/slipknot/packagessources/siefs/si
efs-0.5/siefs'
make[1]: ** [all-recursive] Erro 1
make[1]: Saindo do diretório `/home/slipknot/packagessources/siefs/si
efs-0.5'
make: ** [all] Erro 2
root@seraph:/usr/local/siefs-0.5/# make install

Veja abaixo o que fazer para solucioná-la:

Existem duas alternativas, a primeira não funcionou comigo, mas quem sabe pode funcionar com você:

1 - Edite o arquivo Makefile, que fica no diretorio siefs-0.5
root@seraph:/usr/local/siefs-0.5/# gedit Makefile

2 - Procure no arquivo uma linha assim: CC = gcc

3 - Adicione o parametro "-lrt" ao lado do "gcc" de modo que a linha fique assim: CC = gcc -lrt

4 - Tente um "make" novamente:
root@seraph:/usr/local/siefs-0.5/# make

Se ainda assim obter a mensagem de erro mencionada acima, tente o seguinte:

root@seraph:/usr/local/siefs-0.5/# sed -i "s:LDADD = \$(fuseinst)/lib/libfuse.a:LDADD = -lfuse:" siefs/Makefile.in

Isto funcionou perfeitamente comigo! Agora você pode partir para o "make install":

root@seraph:/usr/local/siefs-0.5/# make install

Detectando...

Agora vamos ver se seu celular foi detectado:
Primeiro veja se em seu diretório /dev existe um device ttyUSB0
Caso não, veja onde ele aparece dando o seguinte comando:

root@seraph:/# dmesg

...o qual deve lhe retornar em algum ponto algo como:

pl2303 2-3:1.0: pl2303 converter detected
usb 2-3: pl2303 converter now attached to ttyUSB0

Por fim, verifique o que retorna a USB:

root@seraph:/# lsusb

Você deve obter um resultado similar a este:

Bus 003 Device 001: ID 0000:0000
Bus 002 Device 003: ID 11f5:0004 Siemens AG (?)
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

Opa! Seu celular foi detectado!

Desabilitar o controle de fluxo via hardware.

Não sei se isso é necessário no caso do EL71, você pode tentar pular esse procedimento e partir diretamente para o Montagem da unidade, dando este comando apenas se tiver problemas:

root@seraph:/#stty --file /dev/ttyUSB0 clocal -crtscts

Montando a unidade

Agora vamos finalmente montar a unidade! Antes disso eu recomendo um reboot, pois no meu caso só obtive sucesso após isto. Reboot dado, vamos montar (não se esqueça de entrar como root novamente) e listar as pastas:

root@seraph:/# mount -t siefs /dev/ttyUSB0 /media/EL71
root@seraph:/# ls /media/EL71

Se tudo ocorreu bem você verá as pastas do celular:
Data MMCard

Pronto! Agora você já pode copiar o que quiser!


Agradeço aos usuários que publicaram as informações abaixo:
http://rafaelgimenes.net/2006/11/23/lendo-dados-do-celular-siemens-cx-75-no-ubuntu-edgy-atraves-do-usb/
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=2217&pagina=1
http://www.nabble.com/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0-%D1%8D%D0%BA%D1%81%D0%BF%D0%BB%D0%BE%D1%80%D0%B5%D1%80-%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D0%B0-t4248572.html

Adaptado para o Benq-Siemens EL71 e versão 7.04 do Ubuntu.

Observação
Não sei porquê - mas só parece possível acessar a unidade montada como root. Nada de sudo por aqui... Se alguém souber, pode colocar a resposta :)

0 comentários: