Madsonic: Instale o servidor de streaming de música em um Raspberry Pi

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.

Recomenda-se não instalar um ambiente gráfico no Raspberry Pi, pois utiliza muita memória. Em vez disso, é melhor trabalhar sempre usando uma conexão ssh.

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)

As etapas a seguir são opcionais, mas recomendo executá-las para evitar que o Raspberry fique com pouca memória RAM.

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.
RAM de streaming


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.

CUIDADO! Se colocarmos pouca RAM para a GPU, o Raspberry não iniciará e teremos que introduzir o cartão SD em um computador para reparar o arquivo /boot/config.txt

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)

Eu recomendo usar uma fonte de resfriamento para evitar que a framboesa superaqueça

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
Lembre-se de alterar o UUID, para aquele obtido a partir dos comandos acima

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.

madsônico

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


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   x11tete11x dito

    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

    1.    Eroland dito

      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.

    2.    Ronal dito

      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?

  2.   tanrax dito

    Artigo muito interessante!
    Fiz uma pesquisa rápida para ver o seu cliente no Android e vi que é pago. Existe uma alternativa gratuita?

    1.    Eroland dito

      Olá, se houver alternativas gratuitas, eu uso ultrassom.
      https://play.google.com/store/apps/details?id=com.thejoshwa.ultrasonic.androidapp&hl=es

      Saudações.

  3.   msx dito

    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.

    1.    Eroland dito

      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.

      1.    eliotime3000 dito

        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.

  4.   Rolo dito

    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

    1.    Eroland dito

      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

  5.   O op dito

    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.

    1.    Eroland dito

      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/.