sábado, 15 de agosto de 2009

Nokia 5310 Xpress Music no Ubuntu

2 comentários:
Há algum tempo atrás, comprei um Nokia 5310 XpressMusic. Escolhi esse modelo justamente por sua integração com o Ubuntu ser mais fácil (tinha apurado isso anteriormente, claro). Só para esclarecer, uso o Ubuntu Jaunty.

Pois bem, minha intenção era integrar o celular com o Rhythmbox via USB. Um 5310 normal funcionaria sem problemas, mas o que eu comprei é, na verdade, o Nokia 5310c2. Ao conectar o "normal", de uma amiga, o Ubuntu abria o Rhythmbox. Com o meu, apenas aparecia os arquivos do cartão de memória. Esta manhã resolvi dar um fim nessa história. As fotos abaixo ilustram a sutil diferença entre os modelos.

Nokia 5310 normal

Nokia 5310 c2

Ao procurar uma solução pela Internet, não obtive sucesso. Aparentemente, o meu modelo não é muito comum entre usuários Ubuntu. De qualquer modo, dei um jeito de hackear as coisas. O sistema funciona da seguinte forma: um dispositivo USB, ao ser conectado, aciona o HAL (Hardware Abstraction Layer). As configurações do HAL determinam o comportamento do sistema quando conectamos dispositivos USB. Para o caso específico de dispositivos de música (como MP3, IPod e celulares), o arquivo que guarda essas configurações é

/usr/share/hal/fdi/information/10freedesktop/10-usb-music-players.fdi


É um arquivo XML enorme, tem informações de um monte de dispositivos. Se você abrir este arquivo, deverá encontrar uma sessão marcada com
<!-- Nokia -->
que é exatamente onde ficam as informações dos celulares dessa marca (óbvio, né?). Aí tudo o que eu fiz foi acrescentar as linhas:


<!-- Nokia 5310 c2 Xpress Music -->
< match key="@storage.originating_device:usb.product_id" int="0x207">
< merge key="storage.model" type="string">5310c2</merge >
< addset key="portable_audio_player.access_method.protocols"
type="strlist" > storage < /addset >
< append key="portable_audio_player.output_formats"
type="strlist" > audio/aac < /append >
< append key="portable_audio_player.output_formats"
type="strlist" > audio/x-ms-wma < /append >
< append key="portable_audio_player.output_formats"
type="strlist" > audio/x-wav < /append >
< append key="portable_audio_player.audio_folders"
type="strlist" > Music/ < /append >
< /match >


De onde saiu a mágica? Bem, descobri o ID do produto (0x207) via "lsusb" e usei o mesmo conteúdo XML do Nokia 5310 normal. Simples. Agora, toda vez que conecto o celular, posso abrir o Rhythmbox para transferir músicas dentro do próprio Rhythmbox. Muito mais fácil do que transferir na mão.

Captura de tela: abrindo o Rhythmbox

A fonte de inspiração para a empreitada foi esta.