domingo, 28 de outubro de 2012

MySQL e biblioteca partilhada do XBMC no Raspberry Pi

Depois das Torrents e depois do servidor Samba, chega a vez de instalarmos a base de dados MySQL no pequeno Raspberry Pi! Esta base de dados segundo este artigo servirá para alojar a biblioteca do XBMC!


E se já estão a perguntar para que serve realmente isso... a resposta é que torna-se indispensável para quem tem mais do que uma maquina a rodar o XBMC em casa! 

Com esta biblioteca partilhada por exemplo, o XBMC da sala atualiza a biblioteca, se ligarem o XBMC do quarto este já terá a biblioteca atualizada. Podem começar a ver um filme na sala e terminarem a visualização no quarto do ponto onde anteriormente ficaram.

Obviamente torna-se também útil para garantirem a biblioteca a salvo numa posterior reinstalação do sistema operativo e do XBMC.


Mas existem desvantagens sendo que não recomendo a utilizarem isto em versões diferentes do XBMC. Não existe compatibilidade entre a versão 11.0 EDEN e a mais recente e ainda não lançada versão 12.0 FRODO. Alias mesmo em duas maquina com o XBMC FRODO não é recomendável que utilizem versões compiladas em espaços muito grandes de tempo. Por exemplo em duas maquinas usa-se uma versão FRODO compilada em Outubro e não com muitos meses diferentes entre elas.

Estas desvantagens só surgem porque esta possibilidade de biblioteca partilhada, tornou-se mais uma importante função em desenvolvimento no XBMC e muitas melhorias chegarão com uma versão final do FRODO.

1 - Passemos então aos comandos na consola acendendo ao RPi por SSH para a instalação do MySQL:

apt-get install mysql-server

Nota que durante a instalação vai vós pedir uma password para o acesso root, coloquem a password que quiserem mas não se esqueçam dela. Acho que pede a password três vezes durante a instalação!

2 - Já com o MySQL instalado vamos entrar com o seguinte comando:

mysql -u root -p

E coloquem a password do root que definiram na instalação.

3 - Vamos criar o user xbmc no MySQL e dar respectivas permissões:

CREATE USER 'xbmc' IDENTIFIED BY 'xbmc';

GRANT ALL ON *.* TO 'xbmc';

Depois é escrever exit na linha de comandos para saírem do mysql

4 - Antes de passarmos ao XBMC, vamos desativar no MySQL a innodb engine que consome alguma memoria extra e nós não queremos o RaspPi acabe com falta de memoria. Então é assim:

nano /etc/mysql/my.cnf

E no ficheiro my.cnf procurem pela linha [mysqld] e coloquem por baixo de modo a que fique assim:

[mysqld] 
innodb=OFF 
default-storage-engine=MyISAM

Ainda com o ficheiro my.cnf aberto, umas linhas abaixo procurem pela opção bind-address e substituíam o IP 127.0.0.1 pelo IP do vosso RaspPI. (Isto é muito importante) Em baixo o meu IP:


bind-address            = 192.168.1.89

Fecham o nano com CTRL+X gravando às alterações. E executem logo um reboot ao RPi
--------------------------------------------------------------
5 - Já com o RPi reiniciado passemos então ao computador onde corre o XBMC.

Assim na pasta USERDATA da instalação do XBMC se lá não estiver criem um ficheiro chamado advancedsettings.xml (extensão do ficheiro .xml) e dentro deste coloca-se o seguinte:   

<advancedsettings>

    <videodatabase>
        <type>mysql</type>
        <host>192.168.1.89</host>
        <port>3306</port>
        <user>xbmc</user>
        <pass>xbmc</pass>
    </videodatabase> 

    <musicdatabase>
        <type>mysql</type>
        <host>192.168.1.89</host>
        <port>3306</port>
        <user>xbmc</user>
        <pass>xbmc</pass>
    </musicdatabase>

</advancedsettings>

Nota que obviamente terão que substituir o IP/Host pelo vosso IP atribuído ao Raspberry Pi.

Também sem entrar em mais pormenores o local da pasta USERDATA varia conforme o sistema operativo onde corre o XBMC. Para saberem o local da vossa instalação recomendo uma passagem pela Wiki oficial do XBMC.

Ainda como extra, pode-se também partilhar a pasta Thumbnails num local de rede onde todos os XBMC tenham acesso. Pode ser uma partilha samba, e caso queiram fazer isso também adicionem às seguintes linhas  ao mesmo ficheiro advancedsettings.xml:

<pathsubstitution>
<substitute>
<from>special://masterprofile/Thumbnails</from>
<to>smb://user:password@Raspberry-Pi/RPi_Share/Thumbnails/</to>
</substitute>
</pathsubstitution>


Se o vosso share se encontrar aberto retirem "user:password@". O exemplo que dou em cima baseia-se no meu anterior artigo e na configuração do servidor samba.

12 comentários:

  1. Se bem entendi,neste exemplo tens o servidor sql e o xbmc a correr no rpi.

    Para quem use um NAS, o servidor sql deverá ser instalado nessa máquina, certo?

    ResponderEliminar
    Respostas
    1. Não neste RasPi não tenho o XBMC, só tenho o Raspbian sem ambiente gráfico e é ai que tenho feito estas brincadeiras.

      Mas pode-se fazer isso do MySQL e do XBMC no RPi não sei é se ele aguenta tanto ;)

      Sim isto é para instalar numa maquina que esteja 24H ligada tipo um NAS. Neste artigo instalei no meu RasPi

      Eliminar
  2. Descobri hoje o site e os tutoriais para RPi.
    Obrigado e Parabéns!

    Vão dar-me jeito, apesar de ter já feito algumas das brincadeiras (samba, transmission, sickbeard, couchpotatoes), e de momento, enquanto espero pela chegada do novo RPi de 512mb, está com XBian 0.83 ligado à TV e ao disco de 2TB com a minha biblioteca (como tenho tido problemas com o update do xbian para 1.0a2, por não conseguir importar a biblioteca,e para não ter de organizar novamente a bilblioteca, tenho continuado na versão 0.83).

    Estava a pensar usar o novo, com mais memória, para ligar à TV com XBMC, e usar o de 256, que se arrasta um bocado no XBMC, com Raspbian para torrents, partilha de impressora e dos ficheiros do disco de 2TB.

    Com este post, para além de boas esperanças - de ser a ultima vez que tenho que fazer download das informações para o modo biblioteca - e apesar de apenas pretender usar diariamente uma instalação de XBMC, no 2º Rpi, levantaram-se umas questões:
    É possivel usar o MySQL, ao mesmo tempo que faz a partilha dos ficheiros e das miniaturas a reproduzir pelo outro RPi, para fazer downloads no Rpi que penso usar como servidor? Uma vez que o que vai ficar ligado à tv vai ser ao estilo de um AppleTV, precisará de menos recursos que o servidor, será melhor manter o de 256 na TV e usar o de 512 (se aguentar com tudo) como servidor?

    Cumprimentos

    ResponderEliminar
    Respostas
    1. Isto da biblioteca partilha é bom para quando se usa mais que um XBMC. Se só tens apenas um, podes sempre fazer backups da pasta USERDATA. Ao fazer isso quando um dia mais tarde quando reinstalares o sistema e śo repores essa pasta que ficas com às config. anteriores ;)

      SÓ o XBMC precisa de 128mb de ram para o GPU para correr. O split da ram 128/128mb na versão do Raspi de 256.

      Isto quer dizer que só restam 128mb de ram para o sistema, e para o próprio XBMC. Correr outros programas com esta memoria vai atrasar tudo...

      Já o RPI de 512, divide-se em 256/256MB, ou até podemos dividir em 128/384mb (O XBMC precisa de 128mb GPU), com estes 384mb disponíveis já deverá ser possível correr mais alguma coisa. Mas não testei ainda nada.

      A minha opinião é que deves "empurrar" tudo para o RPi com 512mb. Fazes um split de 16/496mb no Raspbian sem ambiente gráfico e este fica com 496mb disponíveis.

      No RPi de 256 corres só o XBMC ;)

      Eliminar
  3. Viva,

    Usando as thumbs num nas e o proprio mysql num NAS nota-se aumento de performance nos menus dada a limitação da velociade do cartão SD?

    ResponderEliminar
    Respostas
    1. Terás que testar, não sei se será mais rápido que com às thumb guardadas localmente no cartão do RPi.

      Mas com o XBMC Frodo já na versão Beta, esta parte de colocar as thumb partilhadas pode ser eliminada. Uma das melhorias no Frodo é a capacidade de cada instalação do xbmc ser "capaz" de efetuar os downloads das thumb para a pasta userdata em bibliotecas partilhadas quando faltam e quando existem novidades na biblioteca.

      Isso não acontecia no EDEN e ai tínhamos que arranjar um modo de mantermos as thumb partilhadas.

      Pode ser útil é usares a mesma a "pathsubstitution" para por exemplo o ficheiro sources.xml.

      Eliminar
  4. Estou agora a instalar a versão beta do raspbmc, segundo eles já nao tem swap para aumentar a perfrmance,,, a ver como isto está.

    O problema que noto é mesmo falta de performance nos menus, talvez pq tenha muitas series e filmes... mas nao é normal esta lentidão toda por isso procurar alternativas... para que nao use tanto o cartao mas nao está facil

    ResponderEliminar
    Respostas
    1. Estas a falar de usar o XBMC no RPi.

      Pois muito já faz ele, nunca terá a performance de um desktop como XBMC.

      Não rodes mais nada a não ser o XBMC no RPi, para outras coisas como o mysql, um segundo RPi é melhor.

      Pra semana tenho um post "gigante" sobre o XBMC no RPi ;)

      Eliminar
  5. Sim eu só tenho o rpi para xbmc, nada mais :)
    Tenho um nas que trata dos downloads e do storage
    A hipotese mysql a ser usada seria tb pelo nas e não no rpi.

    Fico à espera então desse post :)

    ResponderEliminar
  6. Cheira-me que para isto funcionar, tem de ser definido antes do primeiro arranque .Só assim é que tive sucesso.
    Pen Android como cliente, conseguiste aplicar a receita?
    Isto partindo do princípio que tens uma ;)

    ResponderEliminar
    Respostas
    1. Não, isto agora até funciona melhor com o Kodi. Não dispenso ;)

      Mas no caso de poderes instalar o kodi num servidor, podes usar o servidor upnp deste e assim chegar a mesma a outros dispositivos, Android, smartTV e tudo com outros clientes upnp. Também é uma boa opção.

      Eliminar

Related Posts Plugin for WordPress, Blogger...

Popular no Blogue: