SDB:Tutorial XBMC
Introdução
O presente documento tem por objectivo apresentar a metodologia inerente à instalação e criação de um Media Center utilizando o sistema operativo openSUSE 12.3 e o software XBMC (disponível no repositório de Multimédia do Packman).
A operacionalização destes conceitos têm por base a utilização de um portátil dedicado unicamente para utilização como Media Server para streaming por DNLA/uPnP para um dispositivo remoto.
Não é do âmbito deste documento cobrir aspectos básicos sobre manutenção e administração do sistema operativo; assumimos que o utilizar está familiarizado com estas tarefas, assim como gestão de firewalls e segurança. Este documento foi elaborado assumindo que a utilização dos conceitos será operacionalizada dentro de uma DMZ ou de uma rede doméstica protegida.
Instalação
Durante este tópica serão apresentadas orientações genéricas para a criação de uma PEN USB com a imagem de instalação do sistema operativo, instalação do sistema operativo e instalação dos repositórios necessários com vista à instalação do software XBMC.
Requisitos
- Sistema operativo Linux já existente para criação da imagem de instalação;
- Pen USB igual ou superior a 1GB (imagem de instalação por rede);
- Acesso à Internet para download da imagem de instalação e instalação por rede;
- Portátil dedicado para correr o XBMC;
- Conhecimento sobre manutenção e administração de sistemas operativos Linux (openSUSE);
Criação da Imagem de Instalação
Para este tutorial vamos utilizar a imagem disponibilizada pelo Projecto openSUSE designada normalmente por NET INSTALL disponível no seguinte URL (32 e 64 bits):
http://download.opensuse.org/distribution/12.3/iso/
A imagem após ser descarregada pode ser queimada em media óptica (ex: CD ou DVD), assim como ser criada uma PEN USB bootável através do seguinte comando:
$ sudo dd if=/caminho/para/openSUSE-12.3-NET-x86_64.iso of=/dev/DEVICE bs=8M
Na expressão anterior o utilizador deve consider que DEVICE corresponde ao block device da PEN USB (ex: sdb, sdc, sdd).
Após este processo, a PEN USB deverá conter uma imagem bootável da instalação por rede do sistema operativo openSUSE 12.3. Basta configurar a BIOS do computador onde vai ser instalado o sistema operativo para arrancar por um dispositivo externo USB (verificar documentação do fabricante/placa mãe).
Instalação do Sistema Operativo
A instalação do sistema operativo deve ser efectuada normalmente, e cabem ao utilizador diversas tarefas; Pessoalmente para um uso dedicado recomenda-se o seguinte (ex: para um disco /dev/sda):
- partição de 500mb para /boot (ex: /dev/sda1)
- partição de 40Gb para o sistema (ex: /dev/sda2)
- partição de 4Gb para SWAP (ex: /dev/sda3)
- partição de XX Gb para /home (ex: /dev/sda4)
A instalação do sistema operativo deverá ser a normalmente conhecida por Minimal X; por omissão esta instalação instala a base do sistema operativo com um X Server e o window manager twm.
Instalação de Repositórios Adicionais
Após a instalação do sistema operativo, o utilizador deverá configurar os repositórios necessários a instalação de todo o software. Recomendamos que previamente o seguinte passo seja executado de forma a configurar o gestor de pacotes a ignorar os pacotes Recomendados. Isto é feito no ficheiro /etc/zypp/zypper.conf:
## Do not install soft dependencies (recommended packages) ## ## Valid values: boolean ## Default value: yes ## installRecommends = no
De seguida deveremos instalar os seguintes repositórios:
- Packman Essentials
- Packman Multimedia
A instalação destes repositórios é feita através dos comandos seguintes:
$ sudo zypper ar http://pmbs.links2linux.org/download/Essentials/openSUSE_12.3/ packman-essentials $ sudo zypper ar http://pmbs.links2linux.org/download/Multimedia/openSUSE_12.3/ packman-multimedia
De seguida o utilizador deverá executar os seguintes comandos de forma refrescar a cache local dos repositórios e fazer um update ao sistema operativo:
$ sudo zypper ref $ sudo zypper update
Instalação do Software
Após a configuração inicial dos repositórios e update ao sistema operativo, é recomendado o utilizador executar o seguinte comando de forma a que seja executado um 'distribution upgrade'; Esta operação permite substituir componentes instalados pelos mesmos componentes em repositórios diferentes (neste caso, packman).
$ sudo zypper dup
Após esta operação temos o sistema pronto para a instalação do XBMC e outros componentes necessários. Como o openSUSE 12.3 oferece uma experiência completa a nível de systemd, recomendamos a utilização de um Display Manager que suporte todas as features desejadas, por exemplo o GDM (GNOME Display Manager).
$ sudo zypper install xbmc gdm
Configuração
Nesta secção iremos apresentar algumas configurações que poderão ser feitas de forma a poder correr o XBMC em modo Kiosk. Desta forma, o sistema operativo irá fazer auto login para um utilizador xbmc que correrá directamente o XBMC em modo kiosk directamente numa sessão X sem Window Manager.
Configuração Sistema Operativo
Criação de um utilizador de sistema para correr o serviço XBMC em modo kiosk:
$ sudo useradd -c "XBMC system user" -G users -m xbmc
Configuração do Display Manager
Configuração do Display Manager (/etc/sysconfig/displaymanager):
## Type: string(kdm,kdm3,kdm4,xdm,gdm,wdm,entrance,console) ## Default: "" # # Here you can set the default Display manager (kdm/xdm/gdm/wdm/entrance/console). # all changes in this file require a restart of the displaymanager # DISPLAYMANAGER="gdm"
## Type: string ## Default: # # Define the user whom should get logged in without request. If string # is empty, display standard login dialog. # DISPLAYMANAGER_AUTOLOGIN="xbmc"
## Type: yesno ## Default: no # # Allow all users to login without password, but ask for the user, if # DISPLAYMANAGER_AUTOLOGIN is empty. # DISPLAYMANAGER_PASSWORD_LESS_LOGIN="yes"
Configuração do Window Manager
Embora não seja utilizado um Window Manager (Gestor de Janelas), queremos definir o próprio XBMC como um 'Gestor de Janelas). Isto é feito no ficheiro /etc/sysconfig/windowmanager:
## Path: Desktop/Window manager ## Description: ## Type: string(gnome,kde4,kde,lxde,xfce,twm,icewm) ## Default: kde4 ## Config: profiles,kde,susewm # # Here you can set the default window manager (kde, fvwm, ...) # changes here require at least a re-login DEFAULT_WM="XBMC"
NOTA: O valor XBMC na chave DEFAULT_WM deverá ser o mesmo utilizado no ficheiro que define a Sessão X do XBMC (/usr/share/xsessions/XBMC.desktop).
A partir deste momento, o utilizador deverá reiniciar a máquina. Após reiniciar, a máquina deverá iniciar directamente para o XBMC (utilizador xbmc com home em /home/xbmc).
Extras
Esta secção inclui alguns extras que podem ser atractivos para alguns utilizadores. Embora não sejam mandatórios, oferecem alguma funcionalidade extra que pode ser interessante para muitos utilizadores.
systemd - Desligar controlo da lid
Esta operação permite que quando o portátil seja fechado o mesmo não entre em hibernação ou suspende. Desta forma o utilizador pode ter o portátil fechado sem qualquer prejuízo para as aplicações a correr. Para este comportamento ser operacionalizado o utilizador deverá editar o ficheiro /etc/systemd/logind.conf:
# This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # See logind.conf(5) for details [Login] #NAutoVTs=6 #ReserveVT=6 #KillUserProcesses=no #KillOnlyUsers= #KillExcludeUsers=root #Controllers= #ResetControllers=cpu #InhibitDelayMaxSec=5 #HandlePowerKey=poweroff #HandleSuspendKey=suspend #HandleHibernateKey=hibernate #HandleLidSwitch=suspend HandleLidSwitch=ignore #PowerKeyIgnoreInhibited=no #SuspendKeyIgnoreInhibited=no #HibernateKeyIgnoreInhibited=no LidSwitchIgnoreInhibited=yes
Activar Protocolo XDMCP
De forma a que utilizadores remotos possam utilizar clientes de XDMCP para obter um display remoto e não utilizarem o display fisico do portátil, as seguintes configurações deverão ser feitas no ficheiro /etc/sysconfig/displaymanager:
## Type: yesno ## Default: no # # Allow remote access (XDMCP) to your display manager (xdm/kdm/gdm). Please note # that a modified kdm or xdm configuration, e.g. by KDE control center # will not be changed. For gdm, values will be updated after change. # XDMCP service should run only on trusted networks and you have to disable # firewall for interfaces, where you want to provide this service. # DISPLAYMANAGER_REMOTE_ACCESS="yes" ## Type: yesno ## Default: no # # Allow remote access of the user root to your display manager. Note # that root can never login if DISPLAYMANAGER_SHUTDOWN is "auto" and # System/Security/Permissions/PERMISSION_SECURITY is "paranoid" # DISPLAYMANAGER_ROOT_LOGIN_REMOTE="no" ## Type: yesno ## Default: yes # # Let the displaymanager start a local Xserver. # Set to "no" for remote-access only. # Set to "no" on architectures without any Xserver (e.g. s390/s390x). # DISPLAYMANAGER_STARTS_XSERVER="yes" ## Type: yesno ## Default: no # # TCP port 6000 of Xserver. When set to "no" (default) Xserver is # started with "-nolisten tcp". Only set this to "yes" if you really # need to. Remote X service should run only on trusted networks and # you have to disable firewall for interfaces, where you want to # provide this service. Use ssh X11 port forwarding whenever possible. # DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN="yes"
NOTA: A firewall deverá ser ajustada para aceitar tráfego na porta 6000.