Neste tutorial irei explicar como instalar um servidor de streaming de música (madsônico) Em Raspberry Pi com ArchLinux ARM.
Para ver um tutorial sobre como instalar Arch Linux em um Raspberry Pi, você pode olhar para isso postar.
As principais características do madsonic são as seguintes:
- Interface da web intuitiva
- Suporta transcodificação para vários formatos (Ex. FLAC> mp3)
- Possui clientes para Android e iOS
Limite de RAM para GPU e criação de área de troca (SWAP)
O servidor madsonic roda em Java, portanto, em um Raspberry Pi de 256 MB de RAM, ele usa cerca de 50% da RAM. Neste caso, recomendo criar um área de troca (troca) para evitar que o Raspberry Pi fique sem memória.
1. Criamos um arquivo que será usado como área de troca de arquivos e atribuímos a ele um espaço de 512 MB
# fallocate -l 512M / swapfile
2. Atribuímos permissões de leitura e gravação ao arquivo.
# chmod 600 / swapfile
3. Nós formatamos como swap
# mkswap / swapfile
3. Nós ativamos troca
# swapon / swapfile
4. Adicionamos a seguinte linha ao arquivo / etc / fstab para montar a troca automaticamente.
/ swapfile nenhum swap padrões 0 0
5. Nós modificamos o arquivo /etc/sysctl.d/99-sysctl.conf para que a escrita em swap seja feita apenas caso tenhamos pouca memória RAM disponível. Nós adicionamos a seguinte linha
vm.swappiness = 10
6. Usando o comando livre -h Verificamos a quantidade de RAM que temos.
7. Nós modificamos o arquivo /boot/config.txt dependendo do modelo Raspberry Pi que temos, para limitar a quantidade de RAM alocada para os gráficos.
Alocaremos 64 MB de RAM para gráficos.
- Para Raspberry Pi modelo A (com 256 MB de RAM), modificamos a linha gpu_mem_256 = 128 por gpu_mem_256 = 64
- Para Raspberry Pi modelo B (com 512 MB de RAM), modificamos a linha gpu_mem_512 = 316 por gpu_mem_512 = 64
Overclocking (opcional)
Vamos editar o arquivo /boot/config.txt e removeremos o comentário de algumas das opções de overclock encontradas no final do arquivo.
##Modest arm_freq=800 core_freq=300 sdram_freq=400 over_voltage=0 ##Medium #arm_freq=900 #core_freq=333 #sdram_freq=450 #over_voltage=2 ##High #arm_freq=950 #core_freq=450 #sdram_freq=450 #over_voltage=6 ##Turbo #arm_freq=1000 #core_freq=500 #sdram_freq=500 #over_voltage=6
Usei a opção Modest (velocidade 800), com esta velocidade meu Raspberry Pi funciona bem.
Instalação Madsonic
Madsonic está no Repositório de usuários do Arch Linux (AUR), portanto, precisamos do pacote base-devel para poder compilar programas AUR.
Instalamos os pacotes necessários:
# pacman -S wget curl base-devel yajl java-runtime libcups
Criamos um diretório para a compilação e baixamos madsonic de AUR.
$ mkdir build $ cd build $ wget https://aur.archlinux.org/packages/ma/madsonic/madsonic.tar.gz
Extraímos os arquivos e editamos o arquivo PKGBUILDGenericName para adicionar suporte para processadores ARM. Nós procuramos a linha arch = ('i686' 'x86_64') e nós adicionamos
'armv6h'.
$ tar zxf madsonic.tar.gz $ cd madsonic $ nano PKGBUILD ... arch = ('i686' 'x86_64' 'armv6h')
Usamos o comando makepkg para baixar e compilar o código madsonic. Isso pode levar muito tempo. Ser paciente.
$ makepkg -g >> PKGBUILD $ makepkg
Comando makepkg Irá gerar um arquivo com extensão .xz, podemos instalar este arquivo usando o pacman.
#pacman -U madsonic-5.0.3860-1-armv6h.pkg.tar.xz
Instalando Java Oracle para ARM
Depois de instalar o madsonic, percebi que abrir jdk Ele usa quase 100% do processador e, portanto, isso representa um baixo desempenho do Raspberry Pi.
A solução para este problema é usar o Oracle Java para arquitetura ARM. Para obter mais informações sobre este tópico, você pode verificar o artigo oracle onde eles mostram o benchmark Oracle Java vs OpenJDK neste link.
Fazemos o download do Java Oracle para arquitetura ARM
wget --no-cookies \ --no-check-certificate --header "Cookie: gpw_e24 = http% 3A% 2F% 2Fwww.oracle.com% 2F; \ oraclelicense = accept-securebackup-cookie" \ "http: / /download.oracle.com/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-arm-vfp-hflt.tar.gz "
Descompacte o arquivo no caminho / opt / java-oracle /
# mkdir / opt / java-oracle # tar -zxf jdk-7u55-linux-arm-vfp-hflt.tar.gz -C / opt / java-oracle
Criamos a variável de ambiente Java Home e fazemos backup dos executáveis Java OpenJDK.
# JHome = / opt / java-oracle / jdk1.7.0_55 # test -L / usr / bin / java && mv /usr/bin/java[,.backup}
Criamos links simbólicos para Java y Javac.
# ln -sf /opt/java-oracle/jdk1.7.0_55/bin/java / usr / bin / java # ln -sf /opt/java-oracle/jdk1.7.0_55/bin/javac / usr / bin / javac
Agora podemos testar a instalação do java com o comando java -version
[eroland @ alarmpi ~] $ java -version java version "1.7.0_55" Java (TM) SE Runtime Environment (build 1.7.0_55-b13) Java HotSpot (TM) Client VM (build 24.55-b03, modo misto)
Editamos o arquivo de configuração madsonic para usar Java Oracle e não Java OpenJDK.
#nano /var/madsonic/madsonic.sh
E nós modificamos a linha JAVA_HOME de modo que seja o seguinte:
JAVA_HOME = / opt / java-oracle / jdk1.7.0_55 / jre: / usr / lib / jvm / java-7-openjdk
Configuração Madsonic
A configuração do madsonic é feita no arquivo /var/madsonic/madsonic.sh, a primeira coisa que fazemos é apoiá-lo.
cp /var/madsonic/madsonic.sh[,.backup}
Neste arquivo você pode modificar a porta que o madsonic usará (por padrão usa a porta 4040), o caminho da pasta onde as músicas serão armazenadas, etc.
Vamos adicionar um Disco rígido externo conectado por USB onde colocaremos as músicas para tocar.
Se o disco rígido estiver formatado NTFS, você precisa instalar o pacote ntfs-3g para montar o disco.
#pacman -S ntfs-3g
Nós criamos a pasta onde o disco rígido será montado e damos as permissões necessárias
# mkdir / mnt / Data # chmod 775 / mnt / Data
Conseguimos o ponto de montagem do nosso Disco Rígido
$ ls -l / dev / disk / by-label / total 0 lrwxrwxrwx 1 root 10 de dezembro de 31 Dados -> ../../sda1969 lrwxrwxrwx 2 root 1 de 10 de dezembro de 31 PS1969 -> ../../ sda3
No meu caso, estou interessado no disco com o rótulo de dados encontrado em / Dev / sda2
No entanto, o uso da etiqueta para montar o disco não é altamente recomendado, pois se a etiqueta mudar, o disco não pode ser montado.
Obtemos o identificador único (UUID) do nosso disco rígido.
ls -l / dev / disk / by-uuid /
Teremos um resultado semelhante a este:
[eroland @ alarmpi ~] $ ls -l / dev / disk / by-uuid / total 0 lrwxrwxrwx 1 root 10 31 de dezembro de 1969 19F4-1917 -> ../../sda1 lrwxrwxrwx 1 root root 15 de dezembro de 31 1969 -2300E4 -> ../../mmcblk18p0 lrwxrwxrwx 1 root root 1 dez 10 31 1969F58AA6F78AA6D55 -> ../../sda2 lrwxrwxrwx 2 root root 1 dez 15 31 b1969cde471-8a2-15e44-acce7 - e9a2 .. / mmcblk54511p6
Nós anotamos o UUID do nosso disco rígido (neste caso 58F6AA78F6AA55D2)
Nós adicionamos a seguinte linha no final do arquivo / etc / fstab
UUID = 58F6AA78F6AA55D2 / mnt / Data ntfs-3g padrão 0 0
Reiniciamos nosso Raspberry Pi e o disco rígido será montado automaticamente.
Finalmente começamos o serviço madsonic:
# systemctl inicia madsonic.service
Se quisermos que o serviço inicie automaticamente sempre que o sistema for carregado.
# systemctl habilita madsonic.service
E pronto, temos nosso servidor de streaming de música.
Uma vez que o serviço de madsônico, podemos entrar no nosso navegador preferido para o endereço IP do nosso Raspberry Pi junto com a porta 4040, no meu caso é 192.168.17.1:4040 e entramos usando os dados usuário = admin senha = admin.
Já na interface da web podemos adicionar novos usuários e alterar a senha padrão.
Bem, esta é a minha primeira contribuição, espero que gostem.
Fontes:
http://d.stavrovski.net/blog/post/set-up-home-media-streaming-server-with-madsonic-archlinux-and-cubieboard2
http://www.techjawab.com/2013/06/how-to-setup-mount-auto-mount-usb-hard.html
Eu não tenho um rasp, mas se um servidor de streaming doméstico xD, você já usou o mediatomb? Se sim, o que você pode me dizer em comparação com este? Eu uso o mediatomb, à primeira vista, a interface madsonic dá ao mediatomb xD um mil rodadas, O que me interessaria muito seria saber se você pode fazer streaming via "WAN" e se é através de um protocolo mais seguro, pois o mediatomb permite que seja gerenciado via web mas não com https, e também ( até agora só encontrei um cliente para android) Posso fazer streaming com mediatomb via WAN (se do celular em qualquer lugar eu puder tocar música do meu servidor doméstico) pois duvido da segurança do protocolo, coloco senhas que fazem não tem nenhuma relação com as que costumo usar, e a mesma mediatomb está habilitada de permissões para que se alguém acessar não possa tocar em nada xD
Olá, eu não usei o mediatomb. Quanto às suas dúvidas, claro que você pode usar o madsonic via WAN, eu uso o madsonic via WAN e funciona muito bem para mim. Madsonic permite o uso de https, você só precisa habilitá-lo em seu arquivo de configuração: madsonic_https_port = 8443 e pronto 🙂
Em relação aos aplicativos para android, utilizo uma chamada ultrassônica, isso é muito bom, pois permite armazenar músicas em cache para ouvir sem conexão xD
Saudações.
Amigo, que experiência você tem com o Arch ARM? Sou um usuário do Arch .. instale o Rasbian. Mas cansei dos problemas com os repos. Eu quero o Arch. E os pacotes que não estão no repositório oficial. Por exemplo, pacotes AUR, eles podem ser compilados?
Artigo muito interessante!
Fiz uma pesquisa rápida para ver o seu cliente no Android e vi que é pago. Existe uma alternativa gratuita?
Olá, se houver alternativas gratuitas, eu uso ultrassom.
https://play.google.com/store/apps/details?id=com.thejoshwa.ultrasonic.androidapp&hl=es
Saudações.
Subsonic é uma besta e não usa esterco de Java. Se não me engano, o ownCloud também pode transmitir áudio e vídeo e é hiperleve - pelo menos comparado a ter um JVM rodando e outro aplicativo pesado.
Java deve morrer - o mesmo que Flash.
Na verdade o ownCloud tem um serviço de streaming básico, a vantagem que vejo para subsonic é a possibilidade de transcodificação, caso tenham muita música flac por exemplo. E você também tem razão, ao usar java é um programa pesado, porém, por enquanto não tive problemas para usar um Raspberry de 256 MB de RAM.
Bem, o OpenJDK 7 (não 6 como a Oracle mostra) é muito mais estável em termos de desempenho. Porém, se houver uma versão sem Java, parabéns (pelo menos, é uma boa alternativa ao Spotify).
E a propósito, o OWnCloud tem para Streaming?! Já parece 4shared.
Eu uso minidlna, ele não consome nada e você pode ter acesso a vídeos, fotos e música e eu os capturo de um reprodutor de vídeo no pc ou na tv, também dá a possibilidade de colocar uma página web muito limitada.
Outra coisa, o Madsonic é um serviço de streaming ou streamer? «… Madsonic é um streamer de mídia baseado na web e um fork da jukebox do Subsonic…. , Madsonic suporta conversão e streaming de praticamente qualquer formato de áudio, ... »Não sei quanta diferença existe entre um termo e outro
Não sei qual é a diferença, me parece que o streamer costuma dizer que o software é capaz de fazer streaming, mas repito, não tenho certeza xD
Atualmente uso Ampache, da Subsonic como vi que é software livre, licença GPL3 mas se você quiser ter todas as características deve pagar uma chave de licença para o servidor que está montado com subsonic, pois para madsonic eu não sabia , será uma questão de testá-lo, você poderia me dizer Quais vantagens eu poderia ter se usar madsonic em vez de ampache.
Olá, madsonic é um fork do subsonic, só que no madsonic não é necessário pagar por uma chave. Quanto ao Ampache, eu não usei, - e não poderia dizer quais são as vantagens do madsonic em relação ao ampache, no google encontrei este link, talvez possa ajudar: http://www.brunobense.com/2013/04/subsonic_ftw/.