Muito provavelmente você já ouviu falar do Raspberry Pi, um computador com processador ARM (o mesmo utilizado nos celulares) do tamanho de um cartão de crédito e com baixo consumo de energia. O Raspberry Pi custa apenas 35 dólares e foi criado por uma fundação ligada a Universidade de Cambridge, no Reino Unido, para incentivar o conhecimento relativo à programação para crianças e jovens. Pela versatilidade e baixo custo, o computadorzinho tem sido utilizado para muitos outros fins além deste.
Já o Subsonic é um software servidor de som e gerenciador de músicas escrito em Java, que por ser software livre (GPL 2), pode ser utilizado livremente. É com ele que iremos acessar as nossas músicas pela Internet. O Subsonic é muito rico em recursos sendo inclusive capaz de realizar transcoding (conversão de formato durante o streaming). Para saber mais, visite o site do projeto.
Conheci o programa quando fui editor da extinta Ubuntu Magazine e tive que instalar o programa para tirar os screenshots em Português, pois o artigo estava originalmente em inglês. Fiquei com muita vontade de ter o aplicativo rodando, mas a necessidade de um servidor físico dificultava um pouco as coisas.
Contudo, com o surgimento do Raspberry Pi, tudo ficou mais fácil e após brincar um pouquinho com ele, instalando o XBMC e um servidor web, resolvi dar uma função definitiva para o computadorzinho como o responsável pelo backup dos meus arquivos e meu servidor de música.
Tela da interface web do Subsonic |
Ingredientes
Você vai precisar de:
- 1 Raspberry Pi completo: com fonte e cartão de memória.
- 1 HD portátil (opcional)
- 1 Hub USB com alimentação (opcional)
- intimidade com o terminal e SSH é altamente recomendável.
Se a sua biblioteca de músicas couber em um cartão SD, muito bom; mas caso necessite ligar um HD portátil, será preciso adquirir um hub USB alimentado, ou seja, com fonte, ou um HD que já inclua cabo de alimentação. Isso porque a alimentação de 5V do Raspberry Pi não dá conta de fornecer energia para um dispositivo como o HD e assim que você conectá-lo a saída USB o sistema será desligado.
RaspberryPi rev. B |
Instalando o Java 8
Na primeira instalação que fiz, instalei o OpenJDK 7 na versão soft-float do Raspbian a partir dos repositórios e tudo funcionou muito bem. O único problema ocorria caso fosse necessário realizar transcoding para o streaming. Nesse momento a música ficava picotada, pois o Raspberry não dava conta de processar tudo ao mesmo tempo.
Isso acontecia porque o Java 7 não oferece suporte ao ABI (application binary interface) do ARMv6 e para instalá-lo era preciso utilizar uma versão do sistema operacional que não fazia uso dos registradores de ponto flutuante, o que diminuia muito o desempenho do sistema. Uma explicação mais detalhada pode ser encontrada na wiki do Raspbian.
Contudo, eu li que a versão 8 do Java oferecia esse suporte e poderia ser instalada em uma versão hard-float do sistema e resolvi instalar tudo de novo. O resultado foi muito bom, pois tanto o consumo de memória, quanto de CPU se reduziram muito, sendo que os problemas durante o transcoding também foram sanados.
Apesar do OpenJDK ser a implementação Java padrão a partir da versão 7, não consegui achar uma forma de baixar uma versão 8 dele e acabei baixando a versão da Oracle a partir deste link. É preciso baixar em um outro computador e transferir via sftp, por exemplo, pois há a necessidade de aceitar a licença antes.
Uma vez baixado o pacote tar para a versão ARM, faça a instalação descompactando o arquivo baixado com o tar no diretório /opt com o comando:
sudo tar xvfz arquivobaixado.tar.gz -C /opt
Em seguida, crie o link simbólico para o diretório descompactado:
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0/bin/java" 1
sudo update-alternatives --set java /opt/jdk1.8.0/bin/java
e com o editor de texto da sua preferência, abra o arquivo
/etc/environment
e crie a seguinte variável de ambiente:JAVA_HOME="/opt/jdk1.8.0"
e em seu arquivo
~/.bashrc
insira:export PATH=$PATH:$JAVA_HOME/bin
Dê um reboot no seu Raspberry e teste se está tudo funcionando ao digitar
java -version
no terminal. Na sequência iremos instalar o Subsonic
Instalação do Subsonic
Para instalar o Subsonic, basta baixar o pacote para Debian/Ubuntu da seção Download do site do subsonic.org e instalar comsudo dpkg -i pacote.deb
Por padrão o Subsonic roda como usuário root, porém, por questões de segurança, isso é altamente desaconselhável. Vamos criar um usuário seguro para a execução do aplicativo e adicioná-lo ao grupo audio:
sudo adduser --no-create-home --disabled-password --disabled-login subsonic-user
sudo adduser subsonic-user audio
Agora precisamos atualizar as configurações do programa para utilizar esse usuário.
sudo vi /etc/default/subsonic
e mudamos a última linha para:SUBSONIC_USER=subsonic-user
e reiniciamos o serviço digitando:
sudo /etc/init.d/subsonic restart
Após fazer isso podemos acessar a interface web do aplicativo na porta 4040.
Como você pode ver pelo aviso emitido pelo programa, é altamente recomendável que você troque a senha padrão de admin já no primeiro acesso.
Além disso, eu aconselho que você crie um outro usuário sem poderes administrativos para acessar o programa normalmente, reservando o acesso como admin exclusivamente para fins de manutenção. Neste caso, mesmo que a sua senha seja comprometida, não há a possibilidade de que um eventual invasor possa fazer muitos estragos.
O programa é muito fácil de usar e você pode encontrar mais informações sobre as configurações iniciais na documentação.
Para que o transcoding funcione normalmente, instale o ffmpeg e o lame, pois a versão que vêm embutida no pacote de instalação do Subsonic não é compatível com a arquitetura ARM.
sudo apt-get install ffmpeg lame
sudo ln -fs /usr/bin/ffmpeg /var/subsonic/transcode
sudo ln -fs /usr/bin/lame /var/subsonic/transcode
Acesso móvel
Após a instalação você tem acesso por 30 dias a recursos acesso em dispositivos móveis, compartilhamento em redes sociais, seu próprio endereço DNS como por exemplo seunome.subsonic.org. Depois disso é preciso pagar um plano premium, que é bastante razoável e justo uma vez que oferece muitas vantagens ao mesmo tempo que estimula o desenvolvedor a continuar evoluindo o software.
Para ouvir as suas músicas através do celular basta instalar os aplicativos disponíveis na loja de aplicativos do seu smartphone. Há versões para Android, iPhone e Windows Phone.
Bônus
Como bônus, há algumas questões importantes que devem ser configuradas de maneira a aumentar a segurança e evitar problemas. Apesar de ser pequeno e possuir pouco poder computacional, o Raspberry Pi estará rodando um serviço que está exposto a toda Internet e caso sua segurança seja comprometida, um eventual invasor terá uma porta de entrada para a sua rede local.
A primeira providência é a configuração das permissões de arquivo das pastas onde estarão as suas músicas.
Certifique-se que o usuário subsonic-user tem acesso a elas, caso contrário não será possível adicioná-las à biblioteca do Subsonic. No meu caso, configurei toda a pasta com a músicas para pertencerem ao usuário pi e ao grupo audio do qual o subsonic-user faz parte.
Para aumentar a segurança da sua instalação, eu sugiro que você configure a montagem de seu HD portátil de forma a impedir a execução de executáveis maliciosos por parte de um eventual invasor. No meu caso acrescentei as seguinte linha ao meu arquivo
/etc/fstab
:/dev/sda1 /media/cartola ext4 defaults,noexec,nosuid,nodev 0 2
Espero que você tenham gostado. Deixe seu comentário abaixo.
No próximo post eu escreverei sobre como configurar um servidor rsync para sincronizar as músicas de seu computador principal com o Raspberry Pi.
Nenhum comentário:
Postar um comentário
Deixe uma mensagem com dúvidas, sugestões e elogios sobre o blog. A sua opinião é importante.