notes posteriors a la realització del treball de recerca

CREACIÓ D’UN
MEDIA CENTER
AMB SOFTWARE
LLIURE
OCTAVI FONT SOLA
2N BATXILLERAT
IES SA PALOMERA
BLANES, 12-01-2009
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
2
ÍNDEX
Agraïments
4
Resum del Treball
5
Introducció
7
Notes sobre codi font, comandes i arxius de configuració
7
Antecedents de la investigació
8
Plantejament del problema
10
Metodologia
12
Metodologia emprada per a la realització del treball de recerca
12
Eines emprades per a la realització del treball de recerca
13
Hardware
15
Llista de requisits inicials
16
Característiques imprescindibles 16
Característiques Opcionals 16
Procés de selecció de Hardware
18
Idees inicials 18
Primers candidats
19
µATX, Shuttle, ATI i NVIDIA
20
Mac Mini
20
Consum del Mac Mini vs PC convencional
21
Software
24
Llista de requisits inicials
25
Anàlisi del panorama de software per a media centers
26
 MAC
26
iLife 08’
26
Front Row
26
Plex
27
EyeTV
28
ATV4Mac
28
Linux
29
MythTV
29
Freevo
29
XBMC
30
Procés Creatiu
31
3|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
Preparant arrencada MultiOS
32
Particionant el sistema: Bootcamp
33
Instal·lació el carregador EFI: REFIT
34
Instal·lant el SO: Ubuntu CLI 32bits
36
Instal·lant el carregador BIOS gràfic: grub-gfxboot
39
Instal·lant la pantalla de càrrega grafica: uSplash
40
Configurant les X: x.Org, drivers i problemes de resolució
41
Creant un sistema d’autologin
43
Configurant el sistema
45
Configurant LIRC
45
Configurant el servidor SSH
48
Configurant powernowd
51
Organitzant el multimèdia
53
Exportant la biblioteca iTunes al disc dur extern
53
Còpia de seguretat de la biblioteca iPhoto
53
Entenent l’organització de l’iPhoto
53
Fent còpies periòdiques per WLAN de manera eficient
54
Adaptant la UI de l’XBMC
55
Instal·lant XBMC
55
Project Mayhem: Primers problemes
55
Interacció entre LIRC i XBMC: Lircmap.xml
56
Escalant els controls d’XBMC al comandament
56
Buscant nous skins: AEON i MediaStream
59
MediaStream: evolució i hacks
60
Servidor UPnP
61
Conclusions
62
Comparant els objectius inicials amb el producte final
63
Impressions generals sobre la temàtica del treball de recerca
63
Software: Evolució, manteniment i solucions 64
Apunts finals i notes sobre la comercialització del producte
65
Notes posteriors a la realització del treball de recerca
68
Bibliografia
69
Annex
75
Imatges de la UI final del media center
75
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
4
AGRAÏMENTS
En primer lloc m’agradaria agrair al meu tutor, José Moreno, la confiança que em va
dipositar a l’hora d’acceptar aquest treball de recerca tan ambiciós.
També voldria agrair el suport i la paciència de família i amics, que han hagut de suportar
les meves queixes i els meus monòlegs interminables. Menció especial per a la meva àvia,
que m’ha cedit un pis on he pogut treballar realment tranquil.
Per últim, vull agrair a tota la comunitat de software lliure, especialment als
desenvolupadors d’XBMC, la seva tasca. Sense ells, i amb el risc de caure en tòpics, aquest
treball de recerca no hauria estat possible.
5|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
RESUM DEL TREBALL
L’objectiu d’aquest treball de recerca és la creació d’un dispositiu encarregat de
centralitzar totes les necessitats multimèdia de casa nostra i distribuir aquest contingut a tots
els terminals de la xarxa local d’una manera senzilla i automatitzada. Aquest dispositiu s’ha
dissenyat per estar connectat a una televisió d’alta definició, que permetrà la reproducció i
l’organització de tot el nostre multimèdia d’una manera còmoda i fàcil.
El media center s’encarrega de gestionar la nostra filmoteca, fototeca, biblioteca musical
i sèries de TV de manera transparent i automàtica. A més a més, l’usuari pot accedir a tot el
multimèdia emmagatzemat al media center des de qualsevol dispositiu de la xarxa local a
través de protocols com CIFS o UPnP, en un intent de replicar el cloud computing a escala
local.
El dispositiu ha estat dissenyat per a suportar tot tipus de formats i subtítols, assegurant
la compatibilitat total amb arxius lliures de DRM. El seu disseny minimalista i silenciós el fa
perfecte per a substituir el reproductor de DVD de la sala. Tot això sense oblidar el seu baix
consum, de l’ordre d’un 75% inferior al d’un PC convencional.
Ateses les dimensions del treball, aquest s’estructura en cinc grans blocs:
Introducció, on es presenta el tema, la metodologia i alguns conceptes bàsics que ens
ajudaran a introduir-nos al món del multimèdia digital, l’alta definició i els media centers.
Hardware, on s’enumeren els requisits inicials del dispositiu, es fa un repàs del mercat a
data de juny de 2008, s’estudien els pros i contres de cada opció i s’exposen les raons i les
característiques de la màquina elegida.
Software, on s’enumeren els requisits i les funcions que hauria de desenvolupar el
dispositiu, es fa un repàs al software frontend disponible per al hardware escollit i es redacta
una documentació pròpia dels elements més importants en la realització del media center,
enfocada a facilitar la comprensió del procés creatiu per part del lector.
Procés creatiu, on se segueixen els passos de la instal·lació i adaptació d’un sistema
operatiu dedicat a la gestió i reproducció de continguts multimèdia des de les seves bases
fins als detalls finals de configuració del front-end.
Conclusions, on es fa un repàs a les dificultats sorgides durant el procés de creació, es
comparen els objectius inicials amb els resultats finals i es fan certes observacions sobre el
procés de desenvolupament del software i del mercat.
La metodologia emprada ha estat un dels aspectes claus per poder realitzar amb èxit
aquest treball de recerca. Han calgut unes línies de treball molt estrictes des del principi, com
la presa de notes durant el desenvolupament o l’anotació d’enllaços mitjançant serveis web
com Evernote i Delicious per poder escriure posteriorment la memòria amb el màxim de rigor.
Les tasques a realitzar s’han fragmentat i anotat segons la filosofia GTD (Getting Things
Done). D’aquesta manera ha esdevingut molt més senzill focalitzar-se en el problema de
manera efectiva sense perdre de vista la globalitat del projecte.
El fet d’estar treballant amb tecnologia i software en desenvolupament ha requerit canvis
i adaptació constants, cosa que ha dificultat el manteniment del projecte. La complexitat de
trobar una bona documentació del software emprat (documentació que en la majoria dels
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
6
casos era inexistent) ha fet indispensable l’ús del mètode prova i error per anar avançant en
el treball.
Personalment, la realització d’aquest treball ha millorat les meves capacitats com a
administrador de sistemes i gestor de projectes, m’ha forçat a extreure solucions a
problemes inèdits a partir de coneixements teòrics i ha millorat la meva eficiència a l’hora de
detectar i resoldre problemes.
Pel que fa a l’assoliment dels objectius inicials, es pot dir que s’ha fet el màxim que es
podia fer en els 6 mesos que he dedicat a la realització del treball (de juny de 2008 a gener
de 2009). Els requisits de hardware han estat satisfets així com la major part dels requisits de
software. La part de la interfície Web no s’ha pogut dur a terme per falta de temps de
desenvolupament i de coneixements, però el nivell de la interfície del dispositiu ha
sobrepassat les expectatives inicials.
Atesa la velocitat amb què canvia el mercat, si aquest projecte s’hagués de realitzar en
aquests moments, optaria per un nou paradigma de hardware i de software, que no existia
en el moment de començar el treball. Aquesta és una mostra de la naturalesa inestable d’un
projecte d’aquestes característiques.
7|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
INTRODUCCIÓ
Abans de començar aquest treball, m’agradaria fer un incís especial sobre tota una sèrie
de punts que fan que aquest vagi més enllà d’una simple recerca. I és que l’objectiu principal
d’un treball de recerca consisteix en la tria d’informació sobre un tema concret per acabar
proporcionant-ne una visió més àmplia, o per treure’n alguna conclusió sobre un determinat
aspecte. En aquest cas, però, l’objectiu mai no ha estat la recerca d’informació sinó el
producte final. Això no vol dir que s’hagi prescindit de buscar-ne, d’informació, al contrari,
però aquesta, en comptes de ser tractada com a finalitat, és el mitjà per arribar a l’objectiu
real: el media center.
Aquest fet ha produït que el nombre de fronts tinguts en compte durant el procés de
creació s’hagi incrementat dràsticament, així que no és d’estranyar que es tractin tants
temes i tan variats, tot i que, això sí, tenen una molt estreta relació.
He hagut de treballar amb aspectes com l’administració de sistemes, la programació
(scripting i web), el control i l’automatització de tasques, el disseny d’interfícies gràfiques i
interacció amb l’usuari (tant a nivell conceptual com pràctic), el disseny web. He hagut de
crear molta documentació, he abordat qüestions tant de hardware com de software, còdecs,
reproductors de vídeo, d’àudio, he treballat amb múltiples plataformes intentant aconseguirne la interoperabilitat, i tot això d’una manera coherent per poder fer avançar el projecte en
una determinada direcció.
Notes sobre codi font, comandes i arxius de
configuració
Aquest treball de recerca, ateses les seves característiques, està farcit de petits
paràgrafs
amb aquest format
que podeu apreciar
en aquest exemple.
Això indica que formen part d’un arxiu de configuració, de codi o bé que es tracta d’una
seqüència de comandes. Les sequències de comandes sempre van introduïdes pels símbols
$ o #. El primer ($) indica que la comanda és executada com a usuari sense privilegis i el
segon (#), que l’ordre és executada com a superusuari (root).
La paraula UI (user interface) és l’abreviació anglesa de la versió catalana d’interfície
d’usuari. Per la llargada d’aquest mot en català i atès el nombre de vegades que es repeteix
en tot el treball, he decidit referir-me a ell per mitjà de l’abreviatura anglesa.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
8
ANTECEDENTS DE LA INVESTIGACIÓ
La construcció i configuració del meu sistema operatiu Linux a mida requereix una bona
base de coneixements sobre GNU/Linux i, més concretament, sobre sistemes Debian. És
per això que la meva anterior experiència amb sistemes UNIX ha estat indispensable.
El meu primer contacte amb GNU/Linux va ser el juny del 2004 amb el LiveCD Càtix.
Amb ell vaig descobrir l'existència d'una alternativa a Windows i una nova manera de fer les
coses. Per a mi era una forma de redescobrir l'ordinador, de tornar a aprendre i modificar la
meva manera d'interaccionar amb ell. A més, Linux va venir a mi (víctima de Windows ME)
amb promeses d'estabilitat, zero virus i llibertat total.
La realitat va resultar ser bastant dura. El reconeixement de hardware en aquell temps
era molt pitjor que l’actual i gairebé no hi havia fabricants amb drivers per a Linux o, si n'hi
havia, no utilitzaven cap mètode d'instal·lació senzill. En aquesta primera època vaig utilitzar
tota mena de distribucions sense aconseguir trobar la definitiva. És així com, en un curt
període de temps, vaig provar Mandrake (ara Mandriva), Fedora, Knoppix i Debian, sent
aquesta última la que més em va agradar, per la seva comunitat d'usuaris i la seva gestió de
paquets .deb, clarament superior als rpm de Mandrake i Fedora. El meu idil·li Debian va
perdurar i, malgrat no ser un sistema operatiu amigable, vaig continuar utilitzant-lo.
En aquell moment una gran part del hardware havia de ser configurat de manera
manual, així que em vaig veure forçat a endinsar-m'en el sistema operatiu per aconseguir un
ordinador funcional al 100%. Aquest era el meu passatemps favorit.
Una vegada em vaig cansar de la dificultat de configuració de Debian em vaig passar a
Ubuntu 5.10, molt més amigable però encara molt verda comparada amb versions actuals.
El PC també havia de poder-se utilitzar per treballar, així que vaig abandonar aquest front.
Amb la compra d'un nou PC i l'adquisició d'un vell portàtil vaig tornar a buscar una
distribució que em satisfés. D'una banda vaig haver de solucionar problemes de
compatibilitat amb el nou hardware del PC. D’altra banda vaig haver de solucionar el pèssim
rendiment del vell portàtil. Al nou PC vaig provar amb OpenSuSe i Gentoo però de seguida
vaig tornar a Ubuntu. La gestió de paquets de aptitude i la facilitat d'ús de la derivada de
Debian eren difícils de batre.
Amb el trencament definitiu de la pantalla del meu primer portàtil (Celeron 200MHz,
64MB de RAM) vaig decidir que era hora de crear un NAS (concepte que encara
desconeixia) així que em vaig proposar muntar un SO mínim sense interfície gràfica que
servís com unitat de xarxa, servidor web i gestor de descàrregues. Aquest és el projecte pare
de l'actual treball de recerca i una de les meves primeres fonts de coneixement com a
administrador de sistemes.
Per construir aquest SO mínim vaig provar amb Slackware, Archlinux i Debian,
decantant-me per aquesta última. Aquesta vegada vaig realitzar una instal·lació
personalitzada al 100%, amb kernel personalitzat per a la computadora i els serveis mínims
per a una gestió de RAM més eficient. Gràcies als meus esforços d'optimització vaig
aconseguir una computadora capaç d'arrencar en menys d'un minut i consumint menys de
32MB de RAM amb la qual la descàrrega de continguts, compartició de fitxers i tasques de
servidor web eren possibles.
Aquest ordinador va estar actiu fins a mitjans de 2008, quan el media center el va
rellevar de les seves antigues obligacions.
9|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
La meva adquisició d'un Nokia 770 el desembre de 2005 també va ser de vital
importància per a la meva experiència amb Linux. Aquesta plataforma de Nokia (Internet
Tablet) consisteix a un sistema operatiu basat en Debian (Maemo) dissenyat per a dispositius
portàtils amb pantalla tàctil i capacitat de connectar-se a Internet. El seu desenvolupament
obert em va permetre implicar-me en cert grau a la difusió de la plataforma, realitzant alguns
ports per a ella. Actualment Maemo ha desenvolupat 4 versions del seu sistema operatiu i
aviat publicarà la seva cinquena versió.
Com últim apunt a destacar vull assenyalar la meva adquisició d'un Mac. Amb ell he
pogut provar a fons altres plataformes UNIX i també adonar-me de la importància de l'ús dels
estàndards per aconseguir interoperabilitat total entre plataformes.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
10
PLANTEJAMENT DEL PROBLEMA
La idea de la qual sorgeix aquest treball de recerca es remunta a l’estiu de 2007. És
llavors quan vaig començar a veure sèries en versió original. La TV americana estava
canviant, apareixien sèries de culte, guions per a tots els gustos, grans produccions per a la
pantalla petita. L’esplendor de Hollywood semblava haver-se traslladat als platós i la TV es
començava a veure com una forma d’entreteniment i de cultura, plantejant un cara a cara
amb el cinema en tots els nivells: des de la qualitat dels guions, el repartiment o la
postproducció. Les sèries s’havien convertit en un fenomen de masses i, gràcies a Internet,
en un fenomen mundial.
La xarxa havia canviat la manera de veure la TV convencional. Ara ja no feia falta esperar
que una cadena local comprés els drets de la teva sèrie preferida, la doblés i l’emetés
(moltes vegades en horaris intempestius o amb massa talls publicitaris). Gràcies a Internet
l’accés als nous capítols era possible tan sols unes hores després de la seva emissió. La
velocitat a l’hora de subtitular els episodis per part de grups d’aficionats també feia possible
a tots els no angloparlants aficionats a la TV de qualitat de gaudir d’aquest petit miracle de la
tecnologia i la globalització.
El fet de poder obtenir la sèrie directament de la seva font no només aportava un plus
d’immediatesa. La qualitat de l’arxiu també era molt major i, fins i tot, es podia tenir accés a
les versions d’Alta Definició, que abreujarem com a HD (High Definition) a partir d’ara i durant
la resta del treball. El so d’aquestes còpies també acostumava a ser molt millor i usualment
estava preparat per a equips Home Cinema 5.1. Tot això era, i és, tenir la TV del futur ara,
sense doblatges, sense interrupcions i sense retallades de format (4:3 en comptes de 16:9).
Tot i els aparents avantatges d’aquesta nova forma de veure TV, els inconvenients també
es feien notar i és que, com més hores em passava davant la pantalla de l’ordinador mirant
televisió, més m’adonava que aquesta no podia ser la manera correcta. La televisió està feta
per ser vista en una televisió, i aquesta nova televisió estava feta per ser vista en les noves
televisions HD.
És a partir d’aquest punt que m’adono del gran retard tecnològic que patim a Espanya.
No s’estan aprofitant les millores que ens aporten totes aquestes pantalles noves HDReady o
FullHD. Limitem aquest electrodomèstic, al qual consagrem els millors espais de casa nostra,
a reproductors de DVD barats, l’antic VHS i les emissions de TDT. O sigui que,
majoritàriament, utilitzem la tecnologia d’avui per als usos d’abans d’ahir. I encara sort de les
noves consoles com la Xbox 360 o la PlayStation 3, que han apostat fort per la HD i han
convençut, com a mínim, els jugadors més empedreïts.
Però no només la pantalla de l’ordinador és petita sinó que, a més, la gestió de les sèries
és un complet desastre. Un capítol el tens a l’escriptori, l’altre a la paperera, l’altre
encarpetat, l’últim encara no l’has acabat de veure al teu PC de sobretaula que el següent ja
el tens al disc dur del portàtil, etc. Un caos gegant. Res no és al seu lloc perquè no n’hi ha
cap de fix, es tracta d’una nova activitat que té unes necessitats de gestió especials a les
quals no tenia resposta. Resposta que es complicava, atesa la meva afició d’utilitzar
ordinadors i dispositius diferents per a cada lloc de la casa.
I és així com la idea del media center va anar prenent forma. Buscava la manera de
centralitzar tot el meu contingut multimèdia (sèries, pel·lícules, música i fotos) en un lloc, que
fos accessible des de tot arreu de la casa i que potenciés l’ús de l’espai privilegiat de què
disposa la TV, amb el seu equip de música i els seus sofàs. Així doncs, el que volia era, ni
11|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
més ni menys, que donar la importància que es mereix al contingut digital, en detriment dels
suports òptics (DVD’s y CD’s) i analògics (VHS i TV convencional). Fent això aconseguiria una
millora de la qualitat dels continguts (com a mínim una personalització més gran del que es
veu per la TV) i una gestió més eficaç del temps. S’han acabat els anuncis, ara pots gaudir
dels avantatges de la gravació. Pausar, avançar, retrocedir. Tu manes. Aquesta és la
premissa: el que tu vulguis, com vulguis, quan vulguis i on vulguis.
Aquesta filosofia s’assembla molt a la tendència actual del cloud computing,
d’emmagatzemar totes les nostres dades en un servidor web accessible des de qualsevol
punt i dispositiu, de manera que aquestes es mantenen segures i sincronitzades en tot
moment. I això és exactament el que pretenia fer amb el meu mediacenter: cloud computing
a escala local. Derivar totes les tasques de gestió i emmagatzematge de multimèdia a un
aparell que s’encarregués de distribuir el multimèdia a tots els dispositius de la xarxa i de
reproduir-lo a la TV aprofitant la seva tecnologia al màxim.
No volia tan sols un reproductor, com tants d’altres que ja hi ha al mercat, volia un
aparell que organitzés i descarregués automàticament els nous capítols, que em permetés
accedir a aquests des de qualsevol punt de la xarxa local, que fos capaç de treure el màxim
profit a la HD i que m’oferís flexibilitat total mantenint una interfície agradable, senzilla i
funcional.
Així doncs, ateses les meves necessitats de personalització extrema i la meva creença
personal en les possibilitats del Software Lliure a més de la importància de seguir uns
estàndards que facilitin la interoperabilitat entre plataformes, l’ús de Software Lliure es va fer
indispensable des del primer moment, així com també un element diferenciador de la
competència, que havia optat per construir la seva pròpia plataforma propietària.
De fet, estic convençut que el futur de la distribució de continguts digitals és a Internet, i
que els suports òptics acabaran desapareixent (probablement el Blu-Ray sigui l’últim),
deixant l’emmagatzematge d’informació en mans dels discs durs i de les memòries flash
1d’alta capacitat. Aparells com el que acabo de descriure, dedicats a gestionar el nostre
multimèdia, ocuparan el lloc del DVD que tothom té a casa d’aquí a no gaires anys. Per això
aquest treball, tot i estar enfocat a unes necessitats molt personals, té una clara voluntat
comercial i en diversos punts del text comentaré determinats problemes que, en cas de
convertir-se en un producte adreçat al gran públic, s’haurien de resoldre per altres vies.
Una prova de la validesa d’aquest nou concepte és la inclusió de software reproductor
en les consoles Xbox 360 y PlayStation 3, que no només volen ser el centre de joc de la
casa, sinó anar més enllà. O productes com TV, d’Apple, amb un objectiu semblant al
d’aquest treball de recerca, però limitat a la xarxa de continguts digitals de la companyia
californiana.
1
Les memòries flash són sòlides. A diferència dels discs durs tradicionals, no tenen cap element mòbil, cosa
que les fa més segures i menys propenses a la pèrdua dʼinformació, a part de ser més ràpides (entre dʼaltres
coses). Actualment sʼutilitzen en les targetes de memòria de les càmeres digitals, en els llapis de memòria
USB... També hi ha discs durs creats amb tecnologia flash, anomenats SSD (solid state drive) però són molt
cars i la seva capacitat és encara relativament baixa (64GB o 128GB). Tot i això, els plans de futur són
esperançadors, amb fabricants com Toshiba que ja tenen un model de 512GB preparat per finals de 2009.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
12
METODOLOGIA
Una vegada tancat el tema anterior em centraré a explicar la metodologia que he seguit
per dur a terme aquest treball de recerca a bon port i faré una breu explicació sobre com
s’ha gestionat el temps disposat per a realitzar el treball. També parlaré de les eines que, dia
a dia, han fet la meva feina més fàcil, i que m’han ajudat a mantenir una organització superior
per a una millor productivitat. Tampoc passaré per alt la facilitat de perdre la perspectiva a
què es prestava aquest projecte i a l’enorme quantitat de temps invertit en la creació de
gràfics personalitzats per a cada secció del treball.
Per anar acabant, i seguint la línia de la secció anterior, em centraré en les eines que he
fet servir per a la realització d’aquest treball de recerca. Parlaré de com he utilitzat el
hardware i el software de què disposo per a assolir una experiència de treball al més
satisfactòria possible.
Metodologia emprada per a la realització del treball de recerca
Aquest treball de recerca també m’ha fet veure l’extrema importància que té l’ús i el
seguiment d’un mètode a l’hora de realitzar un treball extens.
Una de les majors dificultats d’aquest treball ha estat, doncs, establir prioritats i marcar
el temps que havia de dedicar a cada tasca. Això, a més, també era molt difícil de
determinar, perquè si bé hi havia assumptes de fàcil solució o d’altres, relacionats amb
l’escriptura d’aquest document, que eren previsibles, tot el que tenia a veure amb el
desenvolupament i la posada a punt del mediacenter podia portar d’algunes hores a diversos
dies, i aquesta última opció va ser la més habitual.
El desenvolupament d’aquest projecte es va dividir en tres parts. La primera comprenia
les vacances d’estiu. Aquestes estaven dedicades a fer avançar el media center. Una vegada
acabada la llista d’objectius (pactada amb el tutor abans d’acabar el curs), em vaig dedicar a
recopilar informació, classificar-la i posar-la en pràctica. A part d’això també vaig escriure
diferents articles i vaig prendre apunts detallats sobre els processos que vaig haver de dur a
terme. Finalitzades les vacances, es van deixar d’implementar noves característiques.
Com que durant el curs no hi havia temps per a continuar amb el desenvolupament del
media center, vaig limitar-me a realitzar el manteniment del software i el seu perfeccionament,
amb millors arxius de configuració, modificacions als scripts, modificacions en el
comportament del comandament, modificacions en la configuració de l’XBMC… A més a
més, també vaig preparar diversos articles més teòrics sobre diferents components de
software emprats durant la realització del treball.
Les vacances de Nadal quedaven reservades per a finalitzar la redacció del treball de
recerca, passar a net els apunts d’articles ja existents, ajuntar i donar un mateix format a
totes les parts del treball per aconseguir una imatge d’unitat, posar en ordre tot el material
que havia anat recopilant i preparant durant la resta de l’any i començar a preparar la
presentació oral.
A part de seguir aquest mapa de desenvolupament, el dia a dia d’aquest treball de
recerca també ha estat marcat per la utilització d’un software i unes rutines concretes.
Pel que fa a la recopilació d’enllaços, aquesta era feta amb Delicious. Tenia un
bookmarklet al meu navegador que podia activar amb un clic i que automàticament guardava
13|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
la pàgina d’interès. Abans, però, jo la classificava amb tota una sèrie de tags perquè fos
fàcilment localitzable.
Els meus apunts sobre els processos que havia seguit per aconseguir un determinat
objectiu els prenia amb Evernote, un servei web que actua com a calaix de sastre, és a dir,
que permet guardar imatges, documents i notes. Això és molt útil per a classificar idees, ja
que indexen la informació que se’ls proporciona i després es pot utilitzar un cercador per a
trobar-la més fàcilment.
Per últim passem al sistema que he utilitzat per gestionar les meves tasques. Aquí em
vaig trobar amb el problema que, si abordava les tasques de manera massa general, em
bloquejava i perdia temps organitzant-me i, una vegada acabada una cosa, perdia temps
pensant en quina era la següent. És per això que vaig provar Things, un programa basat en
la filosofia de treball GTD. Un dels punts d’aquesta famosa filosofia de treball és la
importància d’apuntar totes les tasques que haguem de realitzar en algun suport. D’aquesta
manera ja no hem de pensar més en el que s’ha de fer, només consultar la llista de tasques
pendents. Doncs això és el que permet Things, l’entrada de tasques i la seva classificació,
així que es pot assignar un tag determinat a un conjunt de tasques que tenen una mateixa
relació entre si. Després es pot filtrar la vista de tasques per tag i només mostar aquelles que
fan referència a un tema determinat. D’aquesta manera, es té un control més clar del que
queda per fer i del que s’ha fet, a part de l’avantatge de no haver d’aturar-se a pensar quina
és la propera tasca: només cal consultar la llista de pendents.
Tot això ha fet més fàcil el camí, m’ha ajudat a veure el treball de recerca amb
perspectiva i ha evitat així que, massa ofuscat en un tema concret, oblidés la resta de feina.
Un dels altres grans absorbidors de temps ha estat el tema de la captura i el tractament
d’imatges. Hi ha processos que s’han hagut de repetir, al media center o en una màquina
virtual, per poder prendre captures de la instal·lació o dels programes i documentar
gràficament el treball de recerca. També els esbossos han suposat una despesa de temps
important, a part d’acabar essent díficils de treballar-hi. L’esbós de la UI Web (inclòs en el
material complementari), per exemple, constava de 112 capes.
Eines emprades per a la realització del treball de recerca
També volia fer un incís especial a l’ús que he donat al meu hardware. Des d’un primer
moment el portàtil, un macbook, ha estat l’eina principal de desenvolupament. Buscava
informació des del portàtil, escrivia des del portàtil, organitzava les meves tasques des del
portàtil, guardava tots els meus documents relacionats amb el treball de recerca al portàtil…
Això, juntament amb la configuració del servidor SSH al media center, ha fet possible que la
creació d’aquest treball de recerca hagi estat feta amb una oficina 100% mòbil. Gràcies a les
tecnologies inalàmbriques, com el Wi-Fi, podia estar fent treball de recerca a qualsevol part
de la casa, i l’accés remot al Mac Mini em permetia provar tota la informació que revisava via
web des del mateix portàtil, talment com si estigués treballant amb ella. De fet, encara és
millor així perquè moltes de les modificacions que feia al sistema operatiu del Mac Mini
afectaven directament a la seva estabilitat o requerien reiniciar la màquina, així que, fer el
treball sobre la mateixa màquina objecte del treball hauria estat incòmode i ineficaç. Gràcies
a l’SSH, però, jo modificava valors de la configuració del Mac Mini i podia veure’n el resultat
al mateix instant. Tenint el portàtil al costat del mediacenter va ser quan vaig avançar més en
la solució dels problemes amb x.Org o les diferents configuracions del comandament per a
XBMC.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
14
Però, més increïble és com, mitjançant un mòbil amb connexió 3,5G connectat al portàtil
com a mòdem, m’he pogut connectar al meu media center des de qualsevol lloc a través
d’Internet i manejar-lo a ell i als seus arxius amb la mateixa facilitat que si l’hagués tingut al
costat. És realment sorprenent aquest nivell de mobilitat i d’independència respecte d’un
entorn de treball concret. Amb el 3G podia tenir accés a Internet i al mateix media center,
juntament amb tot el multimèdia que gestiona. Abandonar el meu entorn de treball natural ja
no suposava cap sacrifici perquè la meva oficina es limitava al portàtil i al mòbil.
Tot això és molt positiu, però també és cert que una oficina mòbil és més susceptible a
la pèrdua de dades. És per això que sempre tenia un backup del meu treball al disc dur
extern, un altre a un iPod classic i, finalment, un a Mozy, un sistema de backup online
automàtic. D’aquesta manera m’assegurava que, si hi havia pèrdues, aquestes sempre
serien mínimes.
15|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
HARDWARE
Aquesta secció està dedicada a tot el tema relacionat amb la tria del hardware adequat
per a la creació del mediacenter. Aquí es parlaran de les necessitats, de la llista d’objectius
inicials, del procés de selecció, de com es van anar descartant possibilitats i de com, al final,
es tria el hardware.
Es parlarà del procés de selecció de hardware d’una manera cronològica en comptes de
tractar cada qüestió punt per punt.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
16
LLISTA DE REQUISITS INICIALS
Després d’haver intoduït el concepte de mediacenter i haver-ne presentat els seus
aspectes més generals, cal definir les característiques de la màquina que volem construir. En
la llista següent dividirem el que són característiques essencials del que serien afegits
interessants, però en cap cas imprescindibles.
Aquest parell de llistes inicials només representen el concepte de media center ideal.
Característiques imprescindibles
 Processador o targeta gràfica capaç de reproduir vídeos en HD.
 Gràfica que suporti resolucions HD i tingui sortida digital (HDMI o DVI)
 RAM suficient per a estar reproduint vídeos en HD i executant tots els processos
de servidor.
 Disc dur de gran capacitat, accessible.
 Capacitat d’emmagatzematge de fàcil expansió.
 Targeta de so amb sortida d’àudio digital i alguna tecnologia surround (5.1 o
més).
 Caixa de dimensions reduïdes (semblant a una Wii o un reproductor de DVD).
 Sistema de refrigeració silenciós.
 Wi-Fi 802.11G
 Ethernet 10/100
 USB2.0
 Comandament IR
 Consum energètic reduït
Característiques Opcionals
 Lector multitargetes.
 Capturadora TV
17|
 Lectora/Gravadora DVD
 Lectora/Gravadora Blu-Ray
 Bluetooth
 Wi-Fi 802.11n
 Ethernet 10/100/1000
 Firewire
 E-Sata
 SO instal·lat en memòria flash
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
18
PROCÉS DE SELECCIÓ DE HARDWARE
El fet que la idea de la qual sorgeix aquest treball de recerca vagi néixer a principis de
l’estiu del 2007, ha fet que hagi variat molt respecte del seu concepte inicial.
Idees inicials
L’anunci de l’TV el 12 de setembre de 2006, juntament amb la seva sortida al públic el
21 de març de 2007, va marcar molt l’inici del projecte. La idea d’aquest producte era molt
bona, permetia tenir tot el contingut organitzat i disponible a la TV, aprofitava les resolucions
HD i els equips de so. Tot això integrant els serveis dels diferents programes de la suite iLife.
Un plaer per a un usuari de Mac, que, sense gairebé esforç, podia tenir-ho tot directament a
la pantalla de la seva TV. Ara bé, la teoria va resultar ser molt millor que la pràctica. Així
doncs, l’TV s’ha convertit en un perfecte exemple de com no s’ha de portar a terme una
bona idea.
El hardware de l’TV està molt limitat (Intel Crafton 1Ghz, 256MB RAM, NVIDIA GeForce
Go 5400 64MB VRAM, 40 o 160GB HDD de 2.5”, 10/100 Ethernet, 802.11b/g/n). Podria ser
un ordinador en miniatura prou atractiu pels 289-379€ que costa, però el seu SO és
completament tancat. Els còdecs i resolucions suportades es limiten a H.264 720p@24FPS,
MPEG4 a SD i més H.264 a 480p. Els vídeos a 1080p queden fora del seu abast i és
impossible d’utilitzar còdecs d’ús habitual (divx, xvid, wmv, MPEG2, mkv). A més a més, està
totalment lligat a l’iTunes, programa que gestiona tota la seva música i contingut. No es pot
fer pràcticament res sense iTunes. I si no s’utilitza Mac, amb la suite iLife, tampoc serveix per
a veure les fotos. A més a més, no es pot ampliar la seva capacitat de HDD ni de manera
externa, així que realment no és cap aparell per a guardar els arxius multimèdia, sinó més
aviat un terminal des del qual accedir-hi.
Té certs punts a favor, com la integració amb la iTunes store i el fet que es poden llogar
pel·lícules i comprar sèries de TV, però aquest servei encara no està disponible per a la
iTunes Store espanyola.
Tot i això, com que aquest TV no és res més que un Mac maquillat, amb poc temps
van sortir tot tipus de hacks perquè pogués suportar altres formats de vídeo, resolucions,
van canviar-li el HDD per altres de més grans... Fins i tot han aconseguit instal·lar un SO
Macintosh complet, concretament la Tiger 10.4.8 (ara també hi ha maneres d’instal·lar
Linux 2, encara que no és precisament fàcil). Així que per poc menys de 300€ es pot tenir un
Mac.
Aquesta, però, no era cap solució ideal per al meu projecte. La màquina continuava
pecant de falta de hardware per a reproduir vídeo en HD i, a més, la falta de RAM, fa que el
seu ús com a un ordinador real sigui inviable.
És per això que vaig descartar l’opció de comprar un TV, tot i que el concepte
m’agradava molt -tot el teu contingut digital a la TV- i la seva UI també em semblava molt
bona. Això em va engrescar i vaig començar a pensar la manera de muntar un aparell
semblant, petit, amb una estètica agradable, poc sorollós i, això sí, ampliable i OpenSource.
Aquell aparell havia de ser tot el que l’TV no era: obert, capaç de reproduir qualsevol
format, preparat per als vídeos en HD, capaç de gestionar sèries automàticament… Tot això
2
http://wiki.awkwardtv.org/wiki/Linux_on_Apple_TV
19|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
amb un consum elèctric mínim per poder-lo tenir encès tot el dia. Volia un servidormediacenter, que fes de NAS i de reproductor, al mateix temps que posava tot el multimèdia
a l’abast de qualsevol màquina connectada a la xarxa local.
Primers candidats
Durant tot el projecte, més que qualsevol requisit de hardware, el que s’ha tingut en
compte és l’eficiència energètica, l’espai ocupat, l’estètica de la caixa i el soroll de la
màquina. Aquests han estat els 4 punts clau que han governat el projecte. Es volia
aconseguir una màquina amb unes mides semblants a la d’una Nintendo Wii, amb lectora
de DVD a ser possible (encara que mai no va ser un punt essencial) i que fes molt menys
soroll que aquesta consola. Hauria de ser una màquina inaudible sense caure en un preu
desorbitat, entre 300-400€.
Els primers candidats van ser les plaques µATX, petites, barates, amb moltes funcions i
suport per a tot tipus de CPU’s. El seu problema era que les seves caixes eren grans (mides
iguals o superiors al d’un VHS) i això no em semblava gens atractiu. A més a més, encara
que la placa base podia incorporar gairebé de tot, el consum d’aquests ordinadors és elevat,
cap a uns 100W constants, igual que un ordinador convencional.
Després d’això vaig començar a investigar les plaques Mini-ITX de VIA. Aquest nou
format de 17x17cm era certament atractiu. Placa base + Processador + Gràfica + Targeta de
so + Connectivitat de xarxa. Tot això amb un consum baixíssim (que no arribava als 30W).
Vaig estar-ne sospesant la seva idoneïtat pel seu consum baixíssim i pel fet que hi havia
molts models amb refrigeració passiva, o sigui, sense ventiladors. La idea de crear un
ordinador totalment silenciós em va estar rondant pel cap moltes vegades, però el seu baix
rendiment i el seu alt preu em van fer enrere (estem parlant de 200€ per a la placa, 30€ per a
la RAM, 70€ HDD, 70€ unitat DVD, 130€ caixa. Un ordinador que acabaria costant més de
500€, que no faria gens de soroll, però amb el rendiment d’un processador de fa més de 5
anys. 1Ghz EPIA = 600Mhz Pentium III.
Això, però, podria no haver estat un problema si el suport d’acceleració per hardware de
MPEG4, H264, etc. hagués sigut bo. El fet d’estar limitat a uns drivers de VIA, que només
funcionaven amb una certa versió del x.Org, i un fork de l’mplayer (que s’havia d’utilitzar com
a root per treure profit de l’acceleració) feia inviable aquesta opció. A més a més, per fer-ho
encara pitjor, VIA no semblava tenir gaires ganes de redreçar aquesta situació (encara no ho
ha fet a hores d’ara). És per això que es feia impossible la compra d’un hardware al qual no
se li podria treure el 100% del seu rendiment. O sigui que depens del que no pots fer servir
perquè no hi ha bons drivers que ho suportin. A més a més, comprar una targeta gràfica
independent, a part d’encarir el producte i fer que el consum elèctric augmentés, seria inútil.
En la reproducció de vídeos en HD, la targeta gràfica no hi té res a veure. No es fa servir per
descodificar el vídeo, que és el que realment carrega la CPU. Per tant, si no pots accedir a
targetes que suporten, mitjançant hardware, la descodificació d’aquests formats de vídeo, la
CPU se n’ha de fer càrrec i, per tant, és necessari que aquesta sigui potent. Aquestes
targetes sí que existeixen al mercat (n’hi ha per 50€). El problema és que per treure profit
d’aquesta descodificació per Hardware es necessiti utilitzar windows i, a més a més, uns
programes específics que suporten aquests mètodes propietaris. Com és d’imaginar,
aquests programes també són propietaris i s’han de pagar, algunes llicències dels quals
costen força diners.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
20
µATX, Shuttle, ATI i NVIDIA
Vaig tornar a mirar el tema de les plaques µATX, ja que utilitzant una caixa petita hauria
pogut estar bé, i tindria l’avantatge de poder-hi instal·lar qualsevol processador, però no
m’acabava de fer el pes: massa gros. Així que vaig continuar buscant i vaig trobar els
Shuttle, barebones amb plaques d’un format propietari. Tenen un gran ventall de productes
amb moltes opcions, molts models, i relativament petits. El seu problema és que eren massa
allargats i quadrats pel meu gust. Era preferible alguna cosa més semblant a un DVD, més
pla i estirat que no pas gros i llarg per a col·locar sota de la TV.
Aquestes caixes, a més a més, no porten el processador inclòs, i elles soles ja costen
força diners. Si, a més a més, s’hi instal·lava un core2duo (no són barats), el preu es tornava
a disparar bastant. No hi havia res que complís un compromís suficientment bo entre el
silenci, tamany, disseny i potència. També interessava que el processador fos de 64bits,
perquè és el futur i perquè havia llegit
a http://forhaud.wordpress.com/2007/06/30/
ubuntu-64-y-la-alta-definicion/ que realment es podia treure un gran profit de l’ús d’un
reproductor de vídeo per a 64 bits.
A més a més, el fet de dependre exclusivament del processador a l’hora de descodificar
vídeo encara em forçava més a escollir una bona CPU i, per tant, cara. Això és així perquè
totes les targetes ATI i NVIDIA amb suport per acceleració de vídeo per hardware no tenen
drivers per a Linux. Aquesta situació ja era així a principis d’estiu i no ha canviat, cosa que
cada vegada és més preocupant tenint en compte la proliferció del vídeo en alta definició i el
fet que aquesta característica està inclosa en targetes gràfiques cada vegada més bàsiques i
barates.
Sobre la reproducció de contingut en alta definició en Linux, recomano aquests articles:
http://blog.charlies-server.com/2007/09/13/hd-video-playback-in-linux, http://
www.antiscreeners.com/phpBB2/viewtopic.php?p=30869 i http://www.vicente-navarro.com/
blog/2007/10/10/sobre-las-via-epia-vi-graficos-y-video-acelerado-por-hw-en-linux-con-laex10000eg/.
Mac Mini
Per últim vaig començar a mirar l’opció del Mac Mini. Després de revisar les 21 pàgines
d’un post de Macuarium dedicat a la utilització del mini com a media center (http://
www.macuarium.com/foro/index.php?showtopic=224781), em vaig acabar adonant que el
seu Core2Duo tenia la potència suficient com per a reproduir la majoria de vídeos a 1080p.
El Mac Mini ha resultat ser un ordinador molt bonic, minúscul (semblant al tamany d’una
Wii), silenciós (té un petit ventilador que es fa difícil de sentir, fins i tot amb la sala
completament silenciosa). Podríem dir que els deures pel que fa a màquina van quedar ben
assolits, amb una màquina realment potent (Core2Duo, encara que es tracta d’un Merom a
1.83Ghz de finals de 2007).
A part d’això, també hi ha el tema OSX, que va inclòs amb el Mac, i que és un valor
afegit, per a mi, molt important. Vegem, doncs, les especificacions de la màquina final,
aconseguida per 450€ a l’Apple Store:
Intel Core2Duo 1,83Ghz
1GB SDRAM DDR2 a 667Mhz
21|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
HDD SATA 80GB a 5400RPM
Gràfica integrada Intel GMA950
Sortida d’àudio analògica i òptica digital
Unitat Combo a 24x (DVD-ROM/CD-RW)
Ethernet Gigabit
Wi-Fi 802.11b/g
Bluetooth 2.0 + EDR
Apple Remote
Al final, l’emmagatzematge es fa a través d’un disc dur extern de 500GB connectat a
un airport extreme. D’aquesta manera tinc tots els continguts multimèdia disponibles des de
tots els ordinadors com a una carpeta compartida. L’únic inconvenient d’aquesta
configuració és que per a certes escenes de vídeos a 1080p o, fins i tot, a 720p es tallen si
les veig a través de la connexió Wi-Fi del Mac Mini.
També és cert que determinades escenes de vídeos a 1080p són massa per al
processador del Mac Mini. Per sort, es tracta de casos puntuals i potser amb la utilització
d’un reproductor de vídeo compilat per a 64 bits això no passaria, però el preu de la
configuració superior del Mac Mini ja es disparava per tota una sèrie de millores que no
utilitzaria (més disc dur, un processador una mica més potent i gravadora de DVD).
Consum del Mac Mini vs PC convencional
Un dels aspectes a destacar del fet de tenir un ordinador dedicat i pensat per a realitzar
tasques de gestió i descàrrega de continguts és el seu consum. Els components d’un
ordinador convencional no han estat optimitzats per a consumir poc, sinó per al seu màxim
rendiment. Això repercuteix directament en el consum, que si bé pot semblar irrisori a curt
termini, al llarg de l’any acaba essent significatiu.
Un ordinador com el Mac Mini, en canvi, pel fet d’estar dissenyat amb components
propis d’un portàtil, té un rendiment molt major i un consum molt menor.
Segons Apple (http://support.apple.com/kb/TA24531?viewlocale=en_US), el Mac Mini
consumeix 110W en càrrega màxima i només 23W quan està en repòs (30% del total).
Per poder comparar aquest consum amb el d’un PC convencional he creat una
configuració del que podria ser un pc actual de gamma mitjana:
• Core 2 Duo E6750 2.66Ghz
• Placa base
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
22
• 2 sticks DDR2 RAM
• NVIDIA GeForce 9600GT
• 2 HDD SATA
• 1 unitat DVD-RW/DVD+RW
• 1 unitat DVD-ROM
• 1 targeta de so
• 1 sintonitzadora de TV
• 1 lector de targetes
• 2 ventiladors (120mm i 90mm)
Gràcies a l’aplicació web de Thermaltake (http://www.thermaltake.outervision.com/
Power), he pogut calcular el consum màxim d’aquesta configuració, que quedaria en 314W.
Aplicant el mateix percentatge que en el cas del Mac Mini, calculem quin seria el consum en
repòs d’aquest ordinador (recordem, un 30% del màxim): això són 94W.
Ara ens falta saber el preu del kWh. A data de gener de 2009 podem comprovar que el
preu del kWh en hores punta és de 0,135145€/kWh i de 0,059614€/kWh en hores vall.
Una vegada sabem això ens falta establir un preu mitjà del kWh. Això ho podem fer
sabent que cada dia té 10 hores punta (41,66% del dia) i 14 hores vall (58,33%). Així doncs,
hem de sumar el que resulta de multiplicar el preu de les hores punta i les hores vall pel seu
percentatge diari:
(0,135145€/kWh x 41,66%) + (0,059614€/kWh x 58,33%) = 0,091085248€/kWh
Una vegada tenim el preu mitjà del kWh, només cal que acabem els càlculs.
Mac Mini:
0, 023kW * 24h * 0, 091085248€ / kWh * 365d = 18,35€/any
PC convencional:
0, 094kW * 24h * 0, 091085248€ / kWh * 365d = 75€ / any
Calculem la diferència:
75€ − 18, 35€ = 56, 65€
Com podem veure, el fet de tenir el Mac Mini com a servidor d’arxius i descàrregues
evita que el nostre ordinador principal hagi d’estar encès tantes hores, cosa que al cap de
l’any repercuteix positivament en la nostra butxaca. Concretament, representa un estalvi de
56,65€, o sigui un 76% menys de despesa energètica.
23|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
PC estàndard
Mac Mini
80€
60€
40€
20€
0€
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
24
SOFTWARE
En aquesta secció del treball es parlarà dels objectius que es pretenen assolir pel que fa
al software, es farà una petita anàlisi del panorama de software media center a les
plataformes Linux i Mac.
25|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
LLISTA DE REQUISITS INICIALS
El front-end del media center hauria de disposar de les característiques següents:
Biblioteca de pel·lícules
Biblioteca de sèries
Bilbioteca de música
Reproductor de DVD
Visualitzador de fotos
Emuladors
El back-end del media center hauria d’incloure els serveis següents:
Servidor per a backups a través d’rsync o time machine (MAC).
Servidor UPNP amb transcoding i DAAP (iTunes) per tenir tot el contingut del media center
disponible a tota la casa en qualsevol moment i en qualsevol lloc.
Client de bittorrent per descarregar sèries.
Servidor Samba, AFP i NFS (per tenir tots els continguts ben accessibles des de la xarxa local.
SSH i una interfície web com webmin per al control remot
Com ja es pot veure, aquest media center juga dos rols completament diferents: un és el
de media center real, sense complicacions de cap mena i enfocat únicament a la
reproducció de continguts multimèdia. L’altra part està dedicada a la seva administració i
distribució per la xarxa local.
També seria interessant configurar un LVM de manera que, en el cas d’afegir més discs
durs, es poguessin tractar com un de sol.
Seria indispensable assegurar la interconnexió d’aquest media center i les internet
tablets de nokia (770, n800 i n810) perquè es pogués accedir des d’aquestes a tot el
contingut del media center.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
26
ANÀLISI DEL PANORAMA DE SOFTWARE PER
A MEDIA CENTERS
 MAC
Com que a l’hora de comprar el Hardware es va utilitzar com a argument el fet que es
tractava d’un Mac, ara trobo necessari exposar d’una manera força esquemàtica el que ens
aporta aquest SO, tan aclamat per la seva UI al panorama media center.
Així doncs, aquesta secció farà un repàs a les eines que té un usuari de Mac per muntarse el seu mediacenter d’una manera ràpida i senzilla.
iLife 08’
Encara que aquesta suite de programes no estigui realment enfocada a la seva utilització
en HTPC’s, el cert és que permeten una organització excel·lent de tot el que és multimèdia.
No estan preparats per a utilitzar-se amb la TV com a pantalla, però són el millor per
processar les fotos, música, crear podcasts, editar vídeos, gestionar l’iPod. El mediacenter
mostra el contingut, però els que realment el processen són aquests programes. Això,
encara que pugui semblar il·lògic, no ho és pas. El mediacenter o HTPC ha de servir per
centralitzar, serveix de centre d’emmagatzematge, que té cada cosa al seu lloc i que permet
visualitzar-la. El mediacenter, per tant, actua com una biblioteca. Està equipat amb tot de
prestatges, arxivadors, marcadors per als llibres... té totes les eines neccessàries per
organitzar el que faci falta, però la feina d’organitzar tots els llibres, fer la classificació, etc. la
fa iLife amb l’ajut de l’usuari. La màquina s’encarrega de servir el que prèviament s’ha
classificat.
Front Row
Aquest és el software mediacenter que ve inclòs de sèrie amb tots els macs des d’una
mica abans de la transició a intel (2005). Amb una interfície molt senzilla ens permet navegar
pels diferents continguts que tinguem en les nostres biblioteques (música, fotos i vídeo) i
reproduir DVD. És una manera fàcil d’accedir a tot el nostre contingut, li falten moltes
27|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
opcions. Gairebé no és configurable i tampoc suporta gaires formats de vídeo. És per això
que hi ha un plugin molt atractiu que, com si es tractés d’un paquet de còdecs (de fet, ho és)
permet a Quicktime de reproduir molts més còdecs. Aquest plugin s’anomena Perian i es pot
obtenir gratuïtament a http://perian.org/.
Plex
Aquest software mediacenter és un fork del XBMC. Aquesta versió està enfocada a Mac
OSX only, només funciona amb Leopard i, a més, està limitada a processadors intel per tema
còdecs (aquests es basen molt en l’arquitectura del processador, no són multiplataforma). En
qualsevol cas, en tractar-se d’un XBMC ben cuidat, està molt bé com a programa i, com a
característica única, aprofita els processadors de doble nucli per descodificar el vídeo, cosa
que repercuteix en una millora notable del rendiment.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
28
EyeTV
Aquesta aplicació de ElGato és el software PVR per excel·lència en Mac. Amb ell pots
gravar programes, editar-los, etc. Perfecte per a complementar els sintonitzadors de TV de la
mateixa empresa. S’integra amb frontrow mitjançant un plugin. Més informació a http://
www.elgato.com/elgato/int/mainmenu/products/software/EyeTV-3/product1.en.html.
ATV4Mac
Aquest programa no oficial permet instal·lar el software de l’TV en qualsevol mac intel
que funcioni amb Tiger (Mac OSX 10.4). S’encarrega de baixar el SO de l’TV dels servidors
d’apple i l’instal·la, reemplaçant l’antic frontrow per aquesta versió, molt més completa. El
seu principal desavantatge és que no es pot accedir a la pròpia biblioteca, ja que es
necessita l’iTunes per sincronitzar els programes i no s’hi pot accedir mentre aquest s’estigui
executant. Pot ser genial si es dedica un mac a aquesta tasca, com si fos un ATV, però en
cas de voler aportar una mica d’user friendliness al que tens al teu ordinador no és la solució.
Té la gràcia, això no ho nego, que es pot tenir un Apple TV per 0€ (si ja tenies un Mac
abans). També comet l’errada de no poder utilitzar-se amb el teclat. Només Apple Remote.
29|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
Linux
MythTV
Un dels pioners en el panorama DVR a Linux. Permet uns nivells de configuració i una
flexibilitat enormes, però el seu enfocament a ser utilitzat com a gravador de TV i no
reproductor d’arxius multimèdia, juntament amb la dificultat d’instal·lació que comporta
aquest programa (s’ha de crear un usuari específic per a ell, una base de dades…), em va fer
desistir d’utilitzar-lo.
El MythTV té un gran nombre de plugins molt útils que amplien el seu ventall de funcions
enormement. Tot i això, el grau d’organització aconseguit per la biblioteca de l’XBMC és un
nivell massa alt per al projecte veterà del món del software lliure.
Freevo
Com el MythTV, també és un software molt enfocat a la seva utilització com a PVR que
no pas com a organitzador de multimèdia. El seu desenvolupament està força aturat i, com
el MythTV, avança molt lentament.
A part d’això, la seva comunitat d’usuaris és menor que la de MythTV i el nombre de
plugins programats per al sistema no té res a veure amb el d’aquest
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
30
XBMC
L’XBMC és un projecte de software lliure iniciat l’any 2004. El desenvolupament d’aquest
software es va iniciar en la plataforma XBOX i no va ser fins al maig del 2007 que es va
començar el desenvolupament multiplataforma.
Els punts forts d’aquest projecte són la gran tasca que realitza automàticament pel que
fa a l’organització del multimèdia en forma de biblioteca i l’ús d’un reproductor d’àudio i
vídeo eficients i amb gran suport per a tot tipus de formats.
Torno a destacar l’apartat de la biblioteca, on és capaç de descarregar automàticament
sinopsis, puntuació, informació sobre actors, directors o bandes, caràtules i fons de pantalla
relacionats amb el nostre multimèdia. És realment increïble la facilitat amb què XBMC
converteix un conjunt de carpetes en una filmoteca atractiva.
No és d’estranyar, doncs, que l’equip darrere d’aquesta meravella del software lliure hagi
guanyat múltiples guardons als premis atorgats per SourceForge als millors projectes de
software lliure.
Com no podia ser d’una altra manera, el seu excel·lent acabat i el fet de compartir el
mateix enfocament que el del meu treball de recerca, juntament amb l’activa comunitat
d’usuaris i de desenvolupament de què disposa, va fer fàcil la tria d’aquesta software com a
pedra angular del meu projecte.
31|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
PROCÉS CREATIU
Aquesta secció està dedicada a tot el que fa referència al procés d’instal·lació i
configuració del software en el Mac Mini. Aquest procés és presentat de manera lineal, des
de la instal·lació del SO al software encarregat de reproduir el multimèdia i altres components
necessaris per a la correcta finalització del projecte.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
32
PREPARANT ARRENCADA MULTIOS
Amb aquesta imatge comencem tota una sèrie d’articles que ens portaran a través del
procés de configuració d’un sistema amb 3 SO en un Mac Mini. Aquesta configuració de 3
SO té unes quantes peculiaritats, tant pel que fa als aspectes purament tècnics (carregador
EFI en comptes de BIOS) com pel que fa a d’altres relacionats amb el workflow del projecte.
És per això que, abans de començar, m’agradaria explicar, d’una banda, el perquè de 3 SO
en una màquina, i de l’altra, les dificultats inicials que es plantegen per dur a terme aquest
objectiu.
L’objectiu que es persegueix amb aquesta instal·lació múltiple és clar: mantenir el SO
inicial (per totes les raons que ja s’han mencionat abans) i, a més a més, tenir un entorn de
desenvolupament a prova de bomba. M’explicaré: quan estàs muntant un SO, i el vols
personalitzar fins al més mínim detall, has de tocar molts components crítics del SO, i un pas
en fals pot suposar la inutilització de tot el sistema. I com que això és molt probable que
passi en un moment o altre, val més estar preparat. Per estar-ho, no hi ha res millor que tenir
un SO de proves.
Aquest SO actua de recinte tancat, on es pot fer el que sigui, provar configuracions,
compilar programes... I un cop el que s’havia de posar a prova ja es considera estable o útil,
es passa a reproduir els passos en l’altra instal·lació, la definitiva. De fet, aquest procediment
és bastant habitual en la creació de software. Serveis web com http://meneame.net o el
popular http://youtube.com acostumen a tenir una versió beta, on es proven les noves
característiques que es volen implementar en el servei i, a partir d’aquesta experiència, es
decideix si aquelles noves funcions passen a la versió final, s’han de modificar o es retiren.
A més a més, la versió de desenvolupament serà la Ubuntu de 64bits, a diferència de la
final, que utilitzarà la de 32bits. Això és així perquè actualment l’XBMC (el software del qual
aquest projecte depèn principalment) només ofereix suport per a 32bits. I si ja estem parlant
d’un software inestable de per si, amb les versions compilades directament del SVN, arriscarse a utilitzar una versió no oficial és massa perillós per a un projecte que necessita una
màquina robusta per funcionar. I per què no fer que la instal·lació sandbox també fos de
32bits? Doncs perquè després d’haver llegit diversos articles sobre l’increment de rendiment
en la reproducció de vídeos que suposen els 64bits volia comprovar-ho. A més a més, el
33|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
món del software és molt variable i en qualsevol moment pot aparèixer un nou programa,
molt millor que la competència, aprofitant els 64 bits. Sí que és cert que poden sorgir
problemes a l’hora de compilar programes si les versions del SO són diferents, però tenia la
certesa que tot el software que faria servir (a part del de reproducció de vídeo) no en donaria.
Per últim, i per acabar d’asegurar-nos que no ens passarà res amb la nostra versió
definitiva del SO, serà convenient fer periòdicament un backup complet de la partició amb
l’Ubuntu release. Veiem, doncs, com aquests 5 paràgrafs expliquen el mateix que la petita
imatge de la capçalera.
Després de parlar del perquè del Multiboot, és hora d’explicar-ne la seva dificultat. A
diferència d’un PC convencional, on Linux, amb el seu carregador (GRUB o LILO),
s’encarrega de gestionar l’arrencada dels múltiples OS; en un Mac aquesta tasca s’ha de dur
a terme per partida doble. Això és així perquè els PC convencionals carreguen el SO a través
de la BIOS, i els Mac Intel no fan servir aquesta tecnologia, o sigui que hi ha un carregador
addicional pel mig, que permet seleccionar entre un SO EFI (Mac OSX) i d’altres BIOS (Linux i
Windows) i, en cas de seleccionar-ne un que es basi en BIOS per arrencar, entra en un mode
compatibilitat, carrega una BIOS emulada (aquesta és la gràcia de Bootcamp) i aquesta
permet engegar aquests SO, que a la vegada posen en marxa els seus carregadors
habituals. O sigui que, quan carregues Linux en un mac, el primer bootloader es posa en
mode compatibilitat BIOS i després hi ha un segon bootloader (GRUB per exemple) que
carrega les diferents versions de Linux i Windows que tinguis instal·lades a les diferents
particions del teu HDD).
A part d’aquest embolic de bootloaders, hi ha una restricció important que també s’ha
de tenir en compte: un sistema EFI només permet tenir 4 particions primàries per HDD, així
que no es pot dur a terme la distribució habitual de ext3+swap, ocupant cada linux 2
particions, perquè acabaríem tenint-ne 6. I, encara que s’utilitzés una sola partició swap per
a les 2 instal·lacions, encara ens passaríem, perquè d’aquestes 4 particions possibles, 2 ja
estan ocupades (partició EFI i partició MACOSX). És per això que si es vol SWAP d’algun
tipus haurà de ser en un fitxer dins del SO. Per tant, a l’hora d’instal·lar, hem d’assegurar-nos
que el SO va en una sola partició i no s’inclou swap.
Tenint en compte la facilitat d’instal·lació d’Ubuntu desktop 64 bits (instal·lació gràfica a
base de següent-> següent) i l’abundància de recursos online que cobreixen aquest tema
(recomano http://tuxpepino.wordpress.com/2008/04/25/instalar-ubuntu/), he desestimat la
creació d’un article com el de Bootcamp, REFIT o Ubuntu CLI. En qualsevol cas, a l’hora de
particionar, cal estar atents i només crear una única partició, deixant espai per a una quarta.
Particionant el sistema: Bootcamp
Ja que havia decidit no eliminar la meva partició d’OSX i havia d’instal·lar Ubuntu, vaig
optar per Bootcamp com a particionador. D’aquesta manera podria canviar la mida de la
partició per defecte sense perdre informació.
 Per dur a terme aquest canvi de mida de partició, el que farem serà executar
l’eina de particionament, que trobarem a /Aplicaciones/Utilidades
 Una vegada iniciat, el programa ens explicarà que només suporta Windows XP i
Windows Vista i ens oferirà el manual en pdf. Ignorarem les advertències i
continuarem amb el procés.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
34
 Un cop acabada aquesta tasca passarem a l’apartat del particionament. Aquí ens
hem de limitar a arrossegar la barra de la partició Windows (que després
eliminarem quan instal·lem Ubuntu) a la mida que vulguem. Concretament, jo vaig
deixar unes 25GB per a MacOSX i unes altres 50 per a Ubuntu. S’estarà una
bona estona per a canviar la mida de les particions. És MOLT IMPORTANT no fer
res durant aquest procés. El programa no s’ha d’interrompre sota cap concepte,
perquè la màquina està executant un procés delicat que es pot emportar totes les
dades. També és important tenir el disc net i no gaire fragmentat. Si fa molt que
es té aquella partició, és possible que falli el procés de particionament i que es
perdi l’espai que s’havia assignat a la partició Windows sense que aquesta s’hagi
creat. Per solucionar això s’ha de reparar el disc des de la utilitat de discos,
inclosa en el DVD del Mac (o qualsevol DVD d’instal·lació de MacOSX), i
desfragmentar la partició, cosa que només és possible a través de software
propietari 3rd party de pagament (iDefrag, http://www.coriolis-systems.com/
iDefrag.php 25€).
 Una vegada el procés de particionament ha acabat amb èxit, l’assistent
bootcamp ens oferirà la creació d’un CD de drivers per a Windows, que no
necessitarem, així que declinarem l’oferta i sortirem del programa, preparats per a
reiniciar i instal·lar Linux d’una vegada per totes.
Instal·lació el carregador EFI: REFIT
Instal·lar REFIT, afortunadament, comporta la mateixa dificultat que qualsevol altre
programa per a Mac. Només cal baixar el paquet de la pàgina oficial, executar l’instal·lador,
seguir els passos impresos en pantalla i seleccionar el disc dur correcte. Després d’això,
però, haurem de canviar certs paràmetres a la configuració per defecte. Vegem-ho:
 Anem a la pàgina oficial del projecte (http://refit.sourceforge.net/) i descarreguem
l’última versió de REFIT (en aquest cas, la 0.11).
 Un cop descarregat el fitxer dmg, l’obrim i executem l’instal·lador (rEFIT.mkpg).
 Haurem d’acceptar una License Agreement i ja podrem seleccionar el disc dur on
volem que s’instal·li. És molt important que el disc dur que escollim sigui el
d’arrencada, el que conté el SO. Si instal·lem refit a cap altre HDD no servirà per
a res.
 Després d’això ens demanaran la nostra contrasenya d’administrador i el procés
continuarà durant uns segons. Un cop acabat, ja podem tancar aquesta pantalla.
35|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
 Acabat aquest procés, ja tenim el carregador REFIT instal·lat, i la nostra pantalla
d’arrencada s’assembla a aquesta (imatge extreta de http://refit.sourceforge.net/
screen.html):
 Tot i això, encara ens queda modificar l’arxiu de configuració per escurçar el
temps d’arrencada i per seleccionar Linux com a SO per defecte. Així doncs,
obrim l’arxiu refit.conf que trobarem a /efi/refit:
 Amb qualsevol editor de text modifiquem el valor de timeout a 1 (0 desactiva la
selecció automàtica) i descomentem la línia legacyfirst (ara carrega Linux per
defecte). Vegeu una còpia de la configuració a continuació:
#
# refit.conf
# Configuration file for the rEFIt boot menu
#
# Timeout in seconds for the main menu screen. Setting the timeout to 0
# disables automatic booting (i.e., no timeout).
#
timeout 1
# Disable menu options for increased security. These are intended for a lab
# environment where the administrator doesn't want users to mess with the
# operating system. List the names for the options you want to hide from
# the boot menu. Currently supported:
# shell
- remove the EFI shell
# tools
- remove all EFI tools (shell and gptsync)
# optical
- no booting from optical drives
# external
- no booting from external disks or USB flash drives
# internal
- no booting from internal disks; this setting is not
#
recommended because it locks you out of all operating
#
systems installed on the internal hard disks.
# singleuser - remove the submenu options to boot Mac OS X in single-user
#
or verbose modes
# hwtest
- remove the submenu option to run Apple Hardware Test
# all
- all of the above, except for 'internal'
#
#disable external optical shell singleuser
#disable all
# Note: The 'disableopticalboot' and 'disableexternalboot' options from
# Charles Ahn's patch are also supported for compatibility. They are
# equivalent to 'disable optical' and 'disable external', respectively.
# Use a custom title banner instead of the rEFIt icon and name. The file
# path is relative to the directory where refit.efi is located. The color
# in the top left corner of the image is used as the background color
# for the menu screens. Currently uncompressed BMP images with color
# depths of 24, 8, 4 or 1 bits are supported.
#
#banner hostname.bmp
#
#
#
#
#
#
#
#
Custom images for the selection background. There is a big one (144 x 144)
for the OS icons, and a small one (64 x 64) for the function icons in the
second row. If only a small image is given, that one is also used for
the big icons by stretching it in the middle. If only a big one is given,
the built-in default will be used for the small icons.
Like the banner option above, these options take a filename of
an uncompressed BMP image file.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
36
#
#selection_big
selection-big.bmp
#selection_small selection-small.bmp
# Hide the volume badge icons in the graphical main menu. There are three
# settings:
# none
- show all volume badges (default)
# internal - hide badges on internal disk volumes only, allowing you to
#
distinguish CDs and occasionally connected external disks
# all
- never show volume badges (not recommended)
#
#hidebadges internal
# Hide various user interface elements. Here you can list the names of
# interface elements to hide. Currently supported:
# banner
- the rEFIt title banner
# shell
- the EFI shell icon
# tools
- all EFI tools (shell and gptsync)
# funcs
- built-in functions (about, restart)
#
('tools' and 'funcs' together hide the complete second row of icons.)
# label
- text label in the menu
# hdbadges - volume badges for internal disk volumes (same as
#
'hidebadges internal')
# badges
- all volume badges (same as 'hidebadges all'); this setting
#
is not recommended because it won't let you distinguish
#
installed OSes and bootable CDs/DVDs.
# all
- all of the above, except for 'badges'
#
# Note: The 'shell' and 'tools' options are equivalent to the 'disable'
# options with the same names.
#
#hideui tools funcs hdbadges
#hideui all
# Use text mode only. When enabled, this option forces rEFIt into text mode.
#
#textonly
# List legacy options first. When enabled, legacy BIOS based boot options
# (e.g. Windows, Linux via LILO or GRUB) will be listed first. This is
# intended as a quick fix to change the default boot choice until full
# configurability arrives.
#
legacyfirst
# EOF
Instal·lant el SO: Ubuntu CLI 32bits
Per al nostre SO de producció necessitarem una instal·lació mínima, sobre la qual anirem
muntant, de mica en mica, les peces necessàries per a crear el nostre mediacenter particular.
És per això que, en comptes d’anar desmuntant peça per peça una instal·lació per defecte
d’Ubuntu, és preferible començar amb una de mínima. Això és així perquè és molt més
senzill de controlar el que s’executa a la màquina si es van afegint progressivament diferents
serveis que si els eliminem. A més a més, d’aquesta manera ens estalviem maldecaps de
configuració, perquè és molt habitual que en una desinstal·lació quedin restes, arxius i
carpetes de configuració que havien d’haver estat eliminats, mòduls al kernel... que poden
crear problemes a curt termini. Aquesta explicació ens porta a la conclusió -ben lògica,
d’altra banda- que construir és molt més senzill (i fidel a la idea de projecte que tenim) que
reformar.
37|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
Instal·lem ara l’Ubuntu Alternate CLI (command line interface) 32bits.
Abans de començar hem de descarregar el SO, que podem trobar a http://
www.ubuntu.com/getubuntu/download. Aquí ens trobarem una senzilla pàgina de la qual
haurem de seleccionar unes opcions en concret per poder dur a terme aquesta instal·lació
mínima.
En el nostre cas el que ens interessa és la versió Desktop, de 32 bits (standard personal
computer) amb l’opció d’alternate desktop CD activada. Després d’assegurar-nos que totes
les opcions que ens interessen han estat marcades, només cladrà que seleccionem un
servidor que estigui a prop nostre (geogràficament parlant) per obtenir la màxima velocitat de
descàrrega i procedir a la descàrrega.
Un cop tinguem la imatge decarregada, la gravem a un CD i arrenquem l’ordinador (amb
el CD a la lectora) prement la tecla C (és l’encarregada d’indicar al Mac que utilitzi la unitat
òptica com a primera opció d’arrencada). Així que, passats uns moments, ja tindrem la
pantalla inicial d’Ubuntu carregada.
Un cop arribats a aquest punt, ens caldrà seleccionar l’idioma de la instal·lació, en
aquest cas anglès, per a un millor troubleshooting. Realment, val la pena instal·lar el SO en
anglès, perquè l’usuari no el veu i per al desenvolupador és molt millor, amb més
documentació i errors més descriptius.
Després de seleccionar la llengua, toca modificar el mapa de teclat a l’espanyol, ja que
per defecte hi ha seleccionat el mapa d’USA. Aquesta acció evita desegradables problemes
amb les tecles (realment, són molt molestos i fan parar boig).
A continuació abordem el pas més important de la instal·lació: hem de canviar el mode
normal al d’instal·lació mínima. Això es fa mitjançant la tecla F4, que obre el menú Modes, i
seleccionant l’opció Install command-line system. Tot seguit, i és essencial que es faci
immediatament després (si no, ignora el nou mode seleccionat i fa una instal·lació normal),
carreguem l’opció Install Ubuntu.
Un cop ens hem encarregat de canviar aquestes opcions, la instal·lació no varia gaire de
qualsevol distro que utilitzi debinst3 Així que ens hem de limitar a seguir els passos que van
apareixent en pantalla, com la selecció de l’idioma (altre cop) i el país.
Després d’això l’instal·lador carregarà alguns mòduls necessaris per a continuar amb la
instal·lació, intentarà configurar la xarxa automàticament (sense èxit, ja que no tenim
l’ethernet connectada), ens preguntarà pel hostname (nom de la màquina a la xarxa) i ens
demanarà el nostre fus horari, per acabar amb un detector de hardware que carregarà tota la
resta de mòduls al kernel, que ens asseguren la màxima compatibilitat del nostre hardware
amb el SO.
Després d’aquests processos, força mecànics tots ells, ve el plat fort de la instal·lació: el
particionament del disc dur. Si ho hem fet tot bé fins ara, tindrem una mini partició FAT32
(EFI) d’uns pocs centenars de megabytes, una altra partició HFS+ on hi ha instal·lat MacOSX,
una partició EXT3 de l’Ubuntu 64bits i uns quants GB buits. És aquí on hem de crear una
nova partició EXT3, que ocuparà tot l’espai lliure, i establir aquesta nova partició perquè es
munti com a arrel del disc /. Per aclarir una mica tot aquest complicat assumpte de
particions, vegeu una imatge on es veu clar com queda tot:
3
Instal·lador basat en ncurses i menús, creat per Debian i introduït amb la versió 3.0 (Sarge) del SO.
Ubuntu el va utilitzar durant molt temps fins que Ubiquity, el nou instal·lador gràfic es va imposar.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
38
Com es pot veure en aquesta taula de particions4, la primera i més petita (FAT32) és la
partició ocupada per EFI, la segona és on hi ha instal·lat MacOSX (HFS+), la tercera és on
tenim la nostra instal·lació de 64bits d’Ubuntu (EXT3) i la quarta (EXT3) és on instal·lem el
nostre sistema Ubuntu 32bits (la muntem com a arrel / del disc).
Després d’això, confirmem els canvis al disc i l’instal·lador s’ocuparà de crear la nova
partició, instal·lar el sistema base (i res més, perquè la resta de components ja els hi posarem
nosaltres segons ens convingui). Un cop hagi acabat (cosa que, per cert, serà bastant
ràpida), haurem d’acabar de configurar els comptes d’usuari. En aquest cas, com que estem
creant una instal·lació de fàbrica, en principi adequada per a tots els usuaris, amb el
hardware a punt però les opcions personals per establir, el més convenient és utilitzar un
usuari i contrasenya molt genèrics (una mica com la contrasenya per defecte dels routers).
Més tard, l’usuari ja podria modificar la contrasenya, o fins i tot el nom d’usuari (cosa no
recomanable, portaria massa problemes perquè hi ha scripts i força aspectes i permisos que
depenen directament del l’usuari). En aquest cas, ho vaig deixar així (no és gaire original, per
cert):
Usuari -> mediacenter
Contrasenya -> mediacenter
I després d’això ja gairebé ho tenim. La instal·lació ens dirà que ha acabat, que ja ho té
tot a punt, i ens preguntarà si volem reiniciar. Nosaltres respondrem afirmativament i la
màquina es reiniciarà, però abans de poder carregar les nostres instal·lacions de Linux,
haurem d’executar una utilitat inclosa amb refit, per sincronitzar les taules de particions (cosa
que hauria de fer el particionador d’Ubuntu i que, per alguna raó, no fa. Aquest és un pas
importantíssim, perquè sense aquesta sincronització refit no detecta les noves particions ni el
nou MBR i, per tant, no pot carregar el GRUB, cosa que fa impossible que puguem iniciar
Linux. Aquesta utilitat és la de la icona del disc dur amb els formatgets. Només d’iniciar ens
informarà de la desincronització de la taula de particions i ens oferirà de reparar-la.
Acceptarem i, un cop acabada l’operació, abandonarem el programa. I ara sí, una vegada fet
tot això, ja podem reiniciar i arrencar el nostre Ubuntu per primera vegada. Si ho hem fet bé,
tindrà un aspecte semblant a aquest:
4
creada en una màquina virtual, per raons purament acadèmiques i demostratives. No és la taula de
particions real del Mac Mini.
39|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
Com es pot veure, això és una TTY amb una sessió ja començada, mostrant la versió
del kernel utilitzat en aquell moment, compilat per al suport de processadors amb múltiples
nuclis o hyperthreading (SMP), versió 32bits (i686).
Instal·lant el carregador BIOS gràfic: grub-gfxboot
Una vegada tenim el sistema a punt, si el que volem és una entrada més gràfica podem
instal·lar aquesta versió del grub creada pels desenvolupadors de SuSe. Per a instal·lar-la, la
descarreguem del servidor de kanotix:
$ wget http://kanotix.com/debian/pool/main/g/grub-gfxboot/grub-gfxboot_0.97-11_i386.deb
# dpkg -i gfxboot_0.97-11:i386.deb
I una vegada instal·lat amb èxit, reinstal·lem el grub al MBR 5:
# grub-install /dev/sda
Després d’això necessitarem un theme. En el meu cas, aquest va ser simple green
(http://ww.gnome-look.org/content/show.php/Simple+Green+GFXBOOT+Theme?
content=80933&PHPSESSID=6ee45eb3e7e9276218acc28bac9d85bc) que guardarem a /
boot/grub/themes/message.Simple_Green i, ja per acabar, afegirem aquesta línia al /boot/
grub/menu.lst (modificant l’arxiu com a root):
gfxmenu /boot/grub/themes/message.Simple_Green
Tot i això, una vegada ja no tenim la necessitat de canviar entre versions d’Ubuntu, el
més convenient és configurar el menu.lst de la manera següent:
timeout 0
hiddenmenu
Així amaga el menú i selecciona directament l’arrencada per defecte, i perd menys
temps en el procés.
5
MBR, Master Boot Record. Sector dʼarrencada en un disc dur on se situen els carregadors de SO com el
boot.ini (windows), LiLo o GRUB (Linux).
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
40
Instal·lant la pantalla de càrrega grafica: uSplash
La pantalla de càrrega per defecte de Linux és inexistent. Això significa que, amb la
instal·lació CLI, l’ordinador ens mostra tots els missatges de la TTY. Això, que és positiu pel
fet que podem saber en tot moment en quin punt de l’arrencada del sistema ens trobem,
resta molts punts al Look&Feel d’un projecte que té com a un dels objectius principals la
creació d’una UI pràctica i atractiva. És per això que existeixen projectes com uSplash que
mostren un gràfic animat en comptes de la TTY.
Aquests temes per a uSplash es poden crear des de zero, però la seva realització no és
gens senzilla no existeix documentació. És per això que no recomano l’ús d’uSplash i, de fet,
quan vaig tenir-ne l’oportunitat, vaig instal·lar el tema d’un usuari dels fòrums d’XBMC en
comptes de crear-ne un de zero altre cop i perdre tot un dia per una qüestió tan superficial.
De moment tinc instal·lat un theme de Du-Duke, que ha donat molt bons resultats. Tot i això,
l’esforç que em va suposar la creació d’un d’aquests temes és digne de menció, així que
explicaré el procés de creació de tal engendre.
En primer lloc hem de descarregar unes llibreries de desenvolupament:
# aptitude install libusplash-dev build-essential
Després copiem la carpeta que ha creat amb els exemples al nostre home:
$ cp /usr/share/doc/libusplash-dev/examples/* /home/mediacenter/usplash
Ara és quan hem de crear una imatge amb el GIMP, tan ampla com l’amplada màxima
de la resolució que volem utilitzar, i més llarga. En la part superior muntarem el fons de
pantalla i en l’inferior, la barra animada. Prendrem com a model els arxius ja existents.
Aquest document el desem amb una paleta de 256 colors pròpia
(image>mode>indexed>256). Després retallem les parts que ens interessen i canviem la
mida al fons de pantalla tantes vegades com resolucions haguem de suportar.
Aquests fons s’hauran d’anomenar segons el patró següent: nomtema_xres_yres.png
(per exemple xbmc_800_600.png). Les barres de progrés conservaran el mateix nom que les
originals.
Ara obrim el Makefile i l’eft-theme.c i canviem tota referència a eft pel nom que haguem
decidit que tingui el nostre tema. També vaig afegir suport per a un mode a 640x480 píxels al
codi del programa i al Makefile. Un cop realitzats aquests passos executem:
$ make
I es crearà l’arxiu nomdeltema-theme.so (per exemple xbmc-theme.so). Ara només
faltarà copiar aquest arxiu a la carpeta corresponent i actualitzar l’xbmc amb el nou theme:
# cp nomtheme-theme.so /usr/lib/usplash
# update-alternatives --install /usr/lib/usplash/usplash-artwork.so usplash-artwork.so /
usr/lib/usplash/nomtheme-theme.so 55
# update-alternatives --config usplash-artwork.so
# dpkg-reconfigure linux-image-$(uname -r)
Amb tot això afegim el theme a la llista, el seleccionem per defecte i preparem el kernel
actual per al seu ús. Després d’això potser encara haurem d’escollir la resolució que volem
que utilitzi uSplash manualment editant /etc/usplash.conf i col·locant els camps
corresponents a xres= i yres=. Finalment, i per acabar d’assegurar la jugada, executem:
# dpkg-reconfigure usplash
41|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
Quan vaig voler instal·lar l’altre tema vaig copiar el nou fitxer *.so a sobre del que ja havia
creat prèviament (/usr/lib/usplash/xbmc-theme.so). Després d’això:
# dpkg-reconfigure usplash
Per a més informació sobre aquest tema podeu visitar http://xbmc.org/forum/
showthread.php?t=37336, http://www.agali.org/cambiando_imagen_usplash, http://
jfibergran.wordpress.com/2007/05/02/cambiar-el-usplash-pantalla-de-inicio-en-ubuntukubunutu/ o https://help.ubuntu.com/community/USplashCustomizationHowto.
Configurant les X: x.Org, drivers i problemes de resolució
Una de les novetats d’Ubuntu 8.04 va ser la incorporació de la versió 7.3 d’x.Org, el
servidor gràfic. Un dels seus grans avantatges sobre les versions anteriors és l’habilitat per
autoconfigurar monitors. El problema d’això, però, és que si la informació que et proporciona
aquest monitor és errònia no hi ha cap manera senzilla de corregir-la manualment. A més a
més, la pantalla que utilitzo suporta una resolució màxima no estàndard de 1366x768 píxels6.
El nou x.Org no la detectava correctament i, en canvi, intentava utilitzar la resolució de
1280x768, que no compleix un ràtio de 16:9 i ajuda a deformar les pel·lícules que es
reescalen. Per acabar-ho d’adobar, aquesta resolució resultava no funcionar amb el driver
configurat per l’instal·lador d’Ubuntu (cosa que vaig descorbir per casualitat, després de
comprovar que certes configuracions amb el mateix xip gràfic que el Mac Mini l’utilitzaven i
que es tractava d’un driver més nou).
6
Podeu trobar molta més informació sobre aquestes resolucions no estàndard a http://www.vicentenavarro.com/blog/2007/10/15/la-resolucion-1366x768/ i a http://en.wikipedia.org/wiki/WXGA.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
42
Per forçar l’ús del mode 1280x720 (resolució dels arxius de vídeo a 720p) amb el ràtio
de 16:9 necessari perquè no s’hagi de reescalar la imatge, vaig haver de realitzar els passos
següents:
Primer de tot hem d’instal·lar el servidor gràfic i, a més a més, descarregar i compilar un
programa que ens generarà unes línies necessàries per forçar el x.Org a utilitzar la resolució
de 1280x720.
#
$
$
$
aptitude install xorg xserver-xorg-video-intel
wget http://osdn.dl.sourceforge.net/sourceforge/gtf/gtf.c
gcc gtf.c -o gtf -lm -Wall
chmod +x gtf
Després l’executem per a totes les resolucions que volem que es puguin fer servir. En el
meu cas, van ser la de 1280x720, 1280x768 i 800x600. Per fer això executem el programa
seguit de la resolució vertical, l’horitzontal i la freqüència de refresc (60Hz en el meu cas i
també 56Hz en els 800x600).
$ ./gtf 1280 720 60
modeline "1280x720@60" 74.48 1280 1336 1472 1664 720 721 724 746 -hsync +vsync
$ ./gtf 1280 768 60
modeline "1280x768@60" 80.14 1280 1344 1480 1680 768 769 772 795 -hsync +vsync
$ ./gtf 800 600 60
modeline "800x600@60" 40.0 800 840 968 1056 600 601 605 628 +hsync +vsync
$ ./gtf 800 600 56
modeline "800x600@56" 36.0 800 824 896 1024 600 601 603 625 +hsync +vsync
Un cop hem generat aquestes línies, les hem de copiar dins de l’apartat del monitor
corresponent. A més a més, en aquesta mateixa secció també haurem d’escriure aquesta
línia per configurar la resolució de 1280x720 com a predeterminada:
Option "PreferredMode" "1280x720@60"
Un cop fet això només ens queda assegurar-nos d’haver canviat l’antic driver i810 per
intel i canviar la llista de modes de la secció screen pels establerts a modeline. Podeu veure
els canvis (subratllats amb blau) en aquesta còpia del xorg.conf (situat a /etc/X11 i editable
com a root):
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
xorg.conf (X.Org X Window System server configuration file)
This file was generated by dexconf, the Debian X Configuration tool, using
values from the debconf database.
Edit this file with caution, and see the xorg.conf manual page.
(Type "man xorg.conf" at the shell prompt.)
This file is automatically updated on xserver-xorg package upgrades *only*
if it has not been modified since the last upgrade of the xserver-xorg
package.
If you have edited this file but would like it to be automatically updated
again, run the following command:
sudo dpkg-reconfigure -phigh xserver-xorg
Section "InputDevice"
Identifier
Driver Option Option Option Option EndSection
Section "InputDevice"
"Generic Keyboard"
"kbd"
"XkbRules"
"xorg"
"XkbModel"
"pc105"
"XkbLayout"
"es"
"XkbOptions" "lv3:ralt_switch"
43|
Identifier
Driver Option EndSection
Section "Device"
Identifier
Boardname
Busid Driver Screen 0
Vendorname
EndSection
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
"Configured Mouse"
"mouse"
"CorePointer"
"Configured Video Device"
"Intel 945"
"PCI:0:2:0"
"intel"
"Intel"
Section "Monitor"
Identifier
"Configured Monitor"
Vendorname
"Generic LCD Display"
Modelname
"LCD Panel 1280x800"
Horizsync
31.5-50.0
Vertrefresh
56.0 - 65.0
modeline "800x600@56" 36.0 800 824 896 1024 600 601 603 625 +hsync +vsync
modeline "800x600@60" 40.0 800 840 968 1056 600 601 605 628 +hsync +vsync
modeline "1280x768@60" 80.14 1280 1344 1480 1680 768 769 772 795 -hsync +vsync
modeline "1280x720@60" 74.48 1280 1336 1472 1664 720 721 724 746 -hsync +vsync
Gamma 1.0
Option "PreferredMode" "1280x720@60"
EndSection
Section "Screen"
Identifier
"Default Screen"
Monitor
"Configured Monitor"
Device "Configured Video Device"
Defaultdepth 24
SubSection "Display"
Depth 24
Virtual1368
768
Modes "1280x720@60" "1280x720@60" "1280x768@60" "800x600@60"
EndSubSection
EndSection
"800x600@56"
Section "ServerLayout"
Identifier
"Default Layout"
screen 0 "Default Screen" 0 0
EndSection
Section "Module"
Load "glx"
Load "GLcore"
Load "dri"
Load "v4l"
EndSection
Section "ServerFlags"
EndSection
Creant un sistema d’autologin
Com que hem realitzat una instal·lació mínima, no s’han instal·lat ni el servidor X ni cap
entorn gràfic. És per això que tampoc tenim cap display manager7 disponible. Això ens és
convenient, perquè no necessitem escollir cap sessió per entrar el sistema: aquest no hauria
de requerir més acció per iniciar-se que la polsació del botó d’arrencada.
7
display manager, daemon que arrenca automàticament el servidor gràfic i ens permet accedir a la nostra
sessió gràfica amb lʼentorn que utilitzem normalment. Tant KDE com GNOME tenen el seu propi display
manager, anomenats KDM i GDM, respectivament. Nʼhi ha dʼaltres, però són molt menys utilitzats.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
44
És per això que, després de buscar intensament sobre el tema, vaig descobrir la manera
de fer autologin al sistema un cop iniciat. Quan s’ha aconseguit entrar amb èxit al sistema es
pot configurar perquè bash executi les X automàticament mitjançant un script i que, l’script
que executa l’script, executi l’XBMC. Sembla complicat però no ho és tant. Senzillament,
configurem el sistema perquè entri automàticament en una sessió d’usuari concreta. Aquesta
sessió d’usuari està configurada perquè, en entrar, executi el servidor gràfic i el servidor gràfic
està configurat perquè, en iniciar-se, executi l’XBMC.
En primer lloc, haurem d’instal·lar rungetty i modificar l’última línia de /etc/event.d/tty1,
tal com s’indica a continuació:
# aptitude install rungetty
Ara obrim l’arxiu /etc/event.d/tty1 com a root i modifiquem la línia exec /sbin/getty
38400 tty2 per:
exec /sbin/rungetty tty1 --autologin mediacenter
Un cop fet això, modifiquem el bash_profile de l’usuari mediacenter (/home/
mediacenter/.bash_profile) com es detalla a continuació:
if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
while [ 1 == 1 ]
do
startx -- -br
sleep 10
done
fi
Després fem el mateix amb el xinitrc (/home/mediacenter/.xinitrc):
#!/bin/sh
#FINAL XBMC BUILD
exec /home/mediacenter/xbmc-8.10final1/BUILD/xbmc.bin --standalone
Amb totes aquestes modificacions aconseguim que a la TTY1 (consola principal durant
l’arrencada del sistema) s’hi iniciï una sessió com a usuari mediacenter. Aquesta sessió
llança un script en un bucle infinit que només s’executa en cas d’iniciar-se una sessió des
d’aquesta determinada TTY (no s’executarà si entrem al sistema remotament per SSH per
exemple) i que engega el servidor gràfic. En cas que aquest servidor falli, per qualsevol
motiu, el programa el rellançarà al cap de 10 segons. Per últim, el xinitrc executa l’XBMC en
mode standalone (mode preparat per a funcionar sense entorn d’escriptori) en iniciar-se el
servidor x.Org.
A part d’això, per evitar els missatges que apareixen a l’hora de fer login
automàticament, vaig canviar el color de la pantalla i de la tipografia a negre afegint aquestes
línies a l’rc.local, un script que s’autoexecuta amb l’arrencada de qualsevol distribució
basada en debian:
setterm -foreground black -store > /dev/tty1
clear > /dev/tty1
45|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
CONFIGURANT EL SISTEMA
Configurant LIRC
Encara que l’apple remote es pot utilitzar amb un mòdul independ
ent (appleir) sense la necessitat de LIRC, ens trobàvem davant el fet
que la manera estàndard de fer funcionar controls remots amb l’XBMC
és mitjançant LIRC. Això, juntament amb l’entrada del mòdul macmini a
la branca principal de desenvolupament de LIRC, convertia en
obligació l’ús d’aquest estàndard en matèria de comandaments IR.
En principi, el que havia de ser una senzilla comanda juntament
amb unes petites modificacions als arxius de configuració va resultar
molt més complicada. Vegem el procés que es va dur a terme:
En primer lloc es va instal·lar lirc i el codi dels seus mòduls per a
compilar-los posteriorment:
# aptitude install lirc lirc-modules-source
$ cd /usr/src
# sudo make
El problema és que els mòduls no compilaven, així que es va
recórrer al pla B: Baixar una versió del CVS i provar de compilar el
mòdul d’allà per instal·lar-lo després:
#
$
$
$
$
$
apt-get install cvs
cvs -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc login
cvs -z8 -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc co lirc
cd lirc
./autogen.sh
./setup.sh
Una vegada arribats a aquest punt se’ns obrirà un diàleg escrit amb NCURSES, on
haurem de seleccionar les opcions Driver Configuration->USB devices->Apple Mac Mini USB
IR Receiver. Un cop fet això seleccionem Software configuration i deseleccionem Compile
tools for X-Windows. Tot seguit executem un Save configuration & run configure i a
continuació executem:
$ make
# make install
Amb tot això hem aconseguit instal·lar el mòdul necessari perquè el hardware es pugui
comunicar amb el daemon lircd, amb l’inconvenient que hem hagut de reinstal·lar totes les
altres eines, encara que en un altre directori (/usr/local) on no molestaran.
Després d’això ens hem de dirigir a /etc/lirc per modificar 2 arxius: lircd.conf i
hardware.conf. El primer és l’encarregat d’interpretar l’entrada RAW proporcionada pel
comandament i convertir-la en senyals estandaritzats per LIRC, interpretables per la resta del
software del sistema. Aquesta configuració la podem dur a terme de forma manual
mitjançant el programa irrecord, inclòs amb el paquet lirc, o bé copiar-ne una d’inclosa amb
la versió de desenvolupament que ens acabem de baixar. Vista la conveniència d’aquest
segon mètode (hi ha certs punts en la configuració de la sensibilitat del receptor d’IR força
delicats que és preferible estalviar-se si algú ja ho ha fet per tu, comprovat) copiarem aquesta
versió a la nostra lircd.conf.
(continuem al mateix directori que en la comanda anterior)
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
46
$ cd remotes/apple
# cp lircd.conf.macmini /etc/lirc/lircd.conf
Una vegada tenim la configuració a punt, només ens falta modificar el hardware.conf,
però abans de fer-ho hem de descobrir quin dispositiu és el nostre receptor IR. En principi
hauria de ser o bé un /dev/hiddev0 o /dev/hiddev0.
# cat /dev/hiddev0
# cat /dev/usb/hiddev0
En aquest cas, la comanda en què apareguin signes estranys quan es cliquen les tecles
del comandament és la bona. Llavors ens haurem d’asssegurar que les següents línies
estiguin configurades així:
REMOTE="Appleremote"
REMOTE_MODULES=""
REMOTE_DRIVER="macmini"
REMOTE_DEVICE="/dev/usb/hiddev0"
REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"
REMOTE_LIRCD_ARGS=""
NOTA: Per alguna raó desconeguda, molt infreqüentment el Mac Mini detecta el
receptor com a /dev/usb/hiddev1 quan sempre ho fa com a /dev/usb/hiddev0. Crec que
sempre passa quan en iniciar ha de realitzar un fsck. Tot se soluciona al següent reinici.
El problema de tot això és que, si bé funcionava el lircd quan l’executaves manualment
des de la TTY, aquest ignorava la configuració del hardware.conf i, a més, tampoc permetia
cap tipus d’automatització de la tasca (llançar el lircd manualment a través de l’script rc.local
tampoc no funcionava, així com fer-ho des de /etc/init.d/lirc. No servia per a res. El problema,
com vaig descobrir més tard, a força de provar, era de la versió del software inclosa amb
Ubuntu, que per alguna raó que desconec incorpora un bug en la versió de lirc precompilada
que impedia la correcta càrrega de la configuració. És per això que llavors vaig provat
d’instal·lar la versió que m’havia descarregat del CVS a sobre de la del sistema, de manera
que conservaria la configuració però no els executables (el que clarament estava fallant). Per
això primer vaig desinstal·lar-la (és important deixar el mínim de restes possibles):
(al directori de lirc)
# make uninstall
$ nano Makefile
(aquí modifiquem la línia “prefix = /usr/local” per “prefix = /usr” i guardem
# make install
Ara ja tenim el lirc instal·lat i ben configurat, sense que ens haguem de preocupar més
per arrencar-lo de forma manual. Només ens hem d’assegurar que aparegui com a /etc/
rc2.d/S**lirc perquè el daemon s’iniciï cada vegada que ho fa la màquina.
ACTUALITZACIÓ [12-10-08] Amb la sortida de la versió final 0.8.4 he aprofitat per
desfer-me de la versió CVS (sempre més inestable) i instal·lar la versió final. Els passos han
sigut els següents:
$
$
$
$
$
$
#
wget http://prdownloads.sourceforge.net/lirc/lirc-0.8.4a.tar.bz2
tar –jxvf lirc-0.8.4a.tar.bz2
cd lirc-0.8.4a
./setup.sh (mateixos paràmetres que en el cas anterior)
nano Makefile (mateixes modificacions que anteriorment)
make
make install
No hi ha hagut cap problema i tot ha continuat funcionant a la perfecció. A continuació
adjunto els fitxers hardware.conf i lircd.conf:
lircd.conf
#
47|
#
#
#
#
#
#
#
#
#
#
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
this config file was automatically generated
using lirc-0.8.2(macmini) on Tue Dec 11 11:35:26 2007
contributed by Sebastian Schaetzel
brand:
Apple
model no. of remote control: A1156
devices being controlled by this remote: Mac Mini, MacBookPro 15"
SantaRosa (3.1), MacBook2
begin remote
name
bits
eps
aeps
Appleremote
8
30
100
one
0
0
zero
0
0
pre_data_bits
24
pre_data
0x87EE81
gap
211982
toggle_bit_mask 0x0
ignore_mask 0x0000ff01
begin codes
VOLUP
VOLDOWN
BACKWARD
FORWARD
PLAY
MENU
end codes
0x0B
0x0D
0x08
0x07
0x04
0x02
end remote
hardware.conf
# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE="Appleremote"
REMOTE_MODULES=""
REMOTE_DRIVER="macmini"
REMOTE_DEVICE="/dev/usb/hiddev0"
REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"
REMOTE_LIRCD_ARGS=""
#Chosen IR Transmitter
TRANSMITTER="None"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""
#Enable lircd
START_LIRCD="true"
#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD="false"
#Try to load appropriate kernel modules
LOAD_MODULES="false"
# Default configuration files for your hardware if any
LIRCMD_CONF=""
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
48
#Forcing noninteractive reconfiguration
#If lirc is to be reconfigured by an external application
#that doesn't have a debconf frontend available, the noninteractive
#frontend can be invoked and set to parse REMOTE and TRANSMITTER
#It will then populate all other variables without any user input
#If you would like to configure lirc via standard methods, be sure
#to leave this set to "false"
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""
Configurant el servidor SSH
A l’hora de crear el treball de recerca, configurar i retocar el nou SO que havia instal·lat al
Mac Mini vaig haver de passar-me moltes hores a la consola del sistema, revisant scripts,
processos d’arrencada, instal·lant paquets, baixant i compilant versions SVN dels diferents
programes que he anat utilitzant... Tot això ho podia haver fet directament des de l’HTPC,
canviant tota l’estona entre el macbook on estava buscant la informació i el mediacenter (la
màquina on havia d’aplicar tot aquest coneixement). Doncs bé, en comptes d’això, el que
vaig fer va ser instal·lar i configurar un servidor SSH per tal que des de la mateixa consola del
portàtil pogués posar en pràctica tot el que estava aprenent.
Primer de tot, però, feia falta instal·lar el servidor i configurar-lo amb un mínim de
condicions perquè, encara que es trobés darrere un firewall i no fos accessible des d’Internet
arribaria el dia en què això no seria així (fase final del treball i posada en marxa d’aquest en
un entorn de funcionament real, amb totes les funcions madurades i funcionant) i, per tant,
vaig posar en pràctica les indicacions detallades en la secció SSH de l’apartat software
d’aquest mateix treball. A continuació, les instruccions detallades d’instal·lació d’un servidor
d’aquestes característiques:
# aptitude install ssh
Amb això instal·lem els paquets openssh-server i openssh-client. Aquesta versió de
servidor i client creada pels mateixos desenvolupadors d’OpenBSD, un SO BSD enfocat a
màquines on la seguretat i l’estabilitat és primordial. Aquesta implementació del protocol
49|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
SSH és lliure i àmpliament utilitzada en tot el panorama UNIX. Està disponible per a qualsevol
distribució Linux, BSD o Mac OSX i, segons els seus creadors, és més segur que el
programa original, privatiu. Això últim queda contrastat per la seva experiència a l’hora de
crear codi estable i segur a OpenBSD i també pel fet que OpenSSH estigui publicat sota
llicència BSD, cosa que permet el lliure accés al codi font del programa i facilita el
descobriment de bugs.
Un cop acabada aquesta petita digressió sobre openssh tornem al nostre procés
d’instal·lació. Fins ara havíem instal·lat el client i el servidor i posat en marxa aquest últim. Ara
només ens queda canviar la configuració per defecte per una de més segura.
Amb un editor de text obrim l’arxiu /etc/ssh/sshd_config (nano en el meu cas) com a
superusuari i editem o afegim les línies següents (les línes amb # del fitxer de configuració
són comentaris):
# nano /etc/ssh/sshd_config
#Amb això canviem el port per defecte, ens ajudarà a protegir-nos contra determinats
#scripts que realitzen atacs contra el port per defecte (22)
Port 1991
#Aquí desabilitem la possibilitat d’utilitzar el protocol 1, insegur i obsolet, per #a
realitzar connexions
Protocol 2
#Deshabilitem la possibilitat d’entrar com a root
#descobrir un usuari vàlid per a entrar al sistema
PermitRootLogin no
directament.
Ara
és
més
difícil
#Amb aquesta línia ens assegurem que ens serà possible fer login mitjançant claus #RSA o
DSA
PubKeyAuthentication yes
#Màxim d’intents de login per IP. Això dificulta els possibles atacs per força bruta #que
es puguin dur a terme
MaxAuthTries 2
#Quantitat de connexions simultànies de login per IP. També és efectiu contra #possibles
atacs que basen la seva efectivitat en la possibilitat de tenir moltes #pantalles de
login actives
MaxStartups 3
#Temps que estarà activa la pantalla de login abans de tancar-se. És eficaç per #evitar
pantalles de login obertes sense que ningú les utilitzi, a mig omplir...
LoginGraceTime 45
#Nom dels usuaris als quals se’ls permet l’entrada al sistema per SSH. En un sistema
#UNIX s’hi acostumen a crear usuaris virtuals com el que s’encarrega del servidor #web, o
potser no ens interessa que determinats usuaris d’una màquina tinguin la #possibilitat
d’accedir aquesta mitjançant SSH. També es pot determinar el rang d’IP #des de la qual
els està permés accedir al sistema afegint una @ darrere el nom #seguida de la IP o
domini convenients
AllowUsers mediacenter
Un cop guardats els canvis passarem a la creació del parell de claus pública i privada
per poder accedir al media center d’una manera més segura i, en el cas que ens ocupa, més
ràpidament (no posarem contrasenya a la clau que crearem). La creació d’aquestes claus es
fa directament en la màquina client, en aquest cas un portàtil funcionant amb Mac OSX. Així
doncs, obrim el terminal d’OSX i executem:
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/tavifont/.ssh/id_rsa):
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
50
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/tavifont/prova.
Your public key has been saved in /Users/tavifont/prova.pub.
The key fingerprint is:
ab:38:9b:49:7a:28:de:92:fd:7c:0e:a3:5c:9b:fd:a7 tavifont@magners.lan
Amb això ja tenim una clau privada RSA de 2048 bits creada a /Users/tavifont/.ssh/
id_rsa i la seva corresponent clau pública guardada a /Users/tavifont/.ssh/id_rsa.pub. Tenim
pendent la còpia d’aquesta clau pública al servidor (perquè quan intentem identificar-nos
amb la nostra clau privada pugui certificar que som qui diem ser) i ja només ens farà falta
reiniciar el servidor SSH perquè tingui en compte tots aquests canvis en la configuració.
Per copiar la clau pública iniciem una connexió SSH amb el servidor i editem l’arxiu /
home/mediacenter/.ssh/authorized_keys2 (suposant que haguem fet login amb l’usuari
mediacenter) on copiarem el contingut del fitxer /Users/tavifont/.ssh/id_rsa.pub. Un cop fet
això, restringim els permisos en aquest directori, de tal manera que només el propietari del
fitxer tingui permisos de lectura i escriptura (de qualsevol altra forma no podrem utilitzar la
clau privada per entrar al sistema):
$ chmod 700 $HOME/.ssh
$ chmod 600 $HOME/.ssh/authorized_keys2
Un cop fet això ja només ens queda reiniciar el servidor i, en cas que vulguem
deshabilitar l’entrada mitjançant contrasenya, reeditar l’arxiu /etc/ssh/sshd_config canviant
les línies següents:
PasswordAuthentication no
ChallengeResponseAuthentication no
El servidor SSH es pot controlar mitjançant l’script /etc/init.d/ssh. Aquest script,
juntament amb tots els altres situats a /etc/init.d, funcionen d’una manera semblant, facilitant
la gestió dels daemons que s’executen amb el sistema. A continuació, una petita descripció
del seu ús:
#
#
#
#
/etc/init.d/daemonexemple
/etc/init.d/daemonexemple
/etc/init.d/daemonexemple
/etc/init.d/daemonexemple
stop -> Apaga el daemon
start -> Engega el daemon
restart -> Reinicia el daemon
force-reload -> Recarrega la configuració
I una còpia de l’arxiu /etc/ssh/sshd_config:
# Package generated configuration file
# See the sshd(8) manpage for details
# What ports, IPs and protocols we listen for
Port 1991
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768
# Logging
SyslogFacility AUTH
LogLevel INFO
51|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
# Authentication:
LoginGraceTime 45
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile
%h/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
#Additional security
MaxAuthTries 2
MaxStartups 3
AllowUsers mediacenter
Configurant powernowd
Els processadors Core2Duo, com és el cas del Mac Mini, incorporen una tecnologia
anomenada SpeedStep. Aquesta tecnologia permet reduir la freqüència i el voltatge del
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
52
processador. Això repercuteix en un menor consum, menor increment de la temperatura i un
menor ús del ventilador i, per tant, encara menys soroll.
Per poder fer ús d’aquesta característica del processador he utilitzat powernowd, un
daemon que varia la freqüència del processador depenent de la càrrega d’aquest. D’aquesta
manera, quan el mediacenter està en repòs o desenvolupant tasques que requereixen poca
CPU, el processador es mantindrà a 1000Mhz, mentre que a l’hora de reproduir vídeos en
HD la freqüència d’aquest automàticament escalarà fins al seu màxim (1830Mhz).
Per instal·lar aquest daemon teclegem al terminal:
# aptitude install powernowd
I una vegada instal·lat només caldrà configurar-lo per assegurar-se que quan realment es
necessiti tota la potència del processador, aquesta hi sigui. És per això que el fitxer de
configuració /etc/default/powernowd ha de contenir la línia següent:
OPTIONS="-q -u 50 -l 10"
En aquest cas la -q indica que només es reportin errors greus; la -u 50, que el
processador augmenti la seva freqüència quan estigui sota càrregues del 50% i la -l 10, que
disminueixi la freqüència del processador quan la càrrega del sistema sigui inferior al 10%.
En resum, el processador es mantindrà funcionant a 1000Mhz si la càrrega no supera el
50%. En el cas que la demanda sigui superior a aquest 50%, automàticament la freqüència
augmentarà a 1830Mhz i, una vegada la demanda de processador sigui inferior al 10%,
aquesta anirà disminuint gradualment fins a arribar altre cop als 1000Mhz.
53|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
ORGANITZANT EL MULTIMÈDIA
Exportant la biblioteca iTunes al disc dur extern
Per poder disposar de tota la meva biblioteca musical des de qualsevol punt de la casa
vaig haver de traslladar-la al disc dur connectat al Airport Extreme. D’aquesta manera era
accessible per a l’XBMC, que la podia escannejar i distribuir mitjançant el protocol UPnP.
Aquest procés d’exportació es fa amb tres passos.
Primer de tot cal assegurar-se que estiguin seleccionades les opcions:
Aquestes es poden trobar a preferencias -> avanzado.
Un cop fet això, canviem la localització de la nostra biblioteca per una carpeta del disc
dur extern connectat a l’airport des de la mateixa pestanya de preferencias -> avanzado.
Llavors serà qüestió de clicar consolidar biblioteca dins d’archivo -> biblioteca.
Còpia de seguretat de la biblioteca iPhoto
Entenent l’organització de l’iPhoto
La biblioteca de l’iPhoto, com era de preveure tenint en compte que és un producte
Apple, és aparentment més tancada i hermètica del que realment acaba sent. MacOSX la
presenta com un bloc, com a un únic arxiu, però en realitat no és res més que una estructura
de carpetes i subcarpetes amb una quants fitxers XML que s’encarreguen de l’organització
de les fotos.
El que ens interessa, però, és el lloc on es guarden les fotos. Així doncs, hi ha dues
carpetes molt interessants: Originals i Modified. A la primera trobem les fotos que hem
importat, sense modificacions, ordenades per any i després per event, cosa que les fa
fàcilment navegables fins i tot sense els XML que emmagatzemen la informació sobre la
biblioteca. Després hi ha la carpeta Modified, que és on es guarden les còpies dels originals
amb les modificacions que hem fet a la foto. D’aquesta manera, encara que fem malbé la
foto a base de moficacions, sempre tindrem l’original intocat.
Per poder accedir-hi des de l’XBMC copiarem l’iPhoto Library al disc dur extern de
l’Airport. Aquesta còpia l’hauríem de realitzar periòdicament per reduir les possibles pèrdues
de dades al màxim.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
54
Fent còpies periòdiques per WLAN de manera eficient
Per a un major nivell de seguretat també copiarem la biblioteca de l’iPhoto al disc dur
intern del Mac Mini. Per això utilitzarem l’rsync i la còpia que hem realitzat anteriorment al
disc dur extern.
El gran avantage d’utilitzar rsync és que només copiarà els canvis que realitzem.
D’aquesta manera evitarem de copiar gigabytes i gigabytes de dades un i altre cop quan
només se n’han modificat uns pocs megabytes.
Després d’això també crearem un sistema d’arxius a base d’enllaços simbòlics fruit de la
fusió entre les versions originals de les fotos i les modificades. D’aquesta manera tindrem una
estructura de directoris igual que la de la biblioteca original però sense dues branques
(originals i modificades). La fusió es fa de tal manera que els enllaços simbòlics de les
fotografies modificades sobreescriuen els de les originals. A més a més, l’ús d’enllaços
simbòlics elimina la necessitat de fer tots aquests processos amb les imatges reals, amb
l’estalvi d’espai al disc dur i el guany en velocitat que això suposa.
Aquesta tasca ha estat automatitzada en l’script presentat a continuació:
#!/bin/sh
#Declaring variables
HDDEXT=//AIRPORT/IOMEGA
LIBRARY=/fotos/iPhoto\ Library
MOUNTPOINT=/home/mediacenter/IOMEGA
INTDIR=/home/mediacenter/fotos
MERGDIR=/home/mediacenter/fotos/xbmc
USER=tavi
PASS=**********
CHARSET=utf8
smbmount "$HDDEXT" "$MOUNTPOINT" -o user=$USER,pass=$PASS,iocharset=$CHARSET
rsync -avz --no-whole-file "$MOUNTPOINT""$LIBRARY" $INTDIR
cp -sfvR "$INTDIR"/iPhoto\ Library/Originals/* "$MERGDIR"
cp -sfvR "$INTDIR"/iPhoto\ Library/Modified/* "$MERGDIR"
sudo umount $MOUNTPOINT
Per aconseguir l’execució automàtica d’aquest script cada dissabte en un interval de 30
minuts entre les 23:00 i les 01:00 del diumenge s’ha d’afegir la línia següent al crontab
(crontab -e per obrir la finestra d’edició d’aquest):
*/30 23-1 * * 6 /home/mediacenter/.scripts/bkpics
55|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
ADAPTANT LA UI DE L’XBMC
Instal·lant XBMC
Per a instal·lar la versió definitiva d’XBMC afegirem aquestes línies a /etc/apt/sources.list,
actualitzarem l’aptitude i instal·larem un skin de la versió precompilada:
deb http://ppa.launchpad.net/team-xbmc-hardy/ubuntu hardy main
deb-src http://ppa.launchpad.net/team-xbmc-hardy/ubuntu hardy main
# aptitude update
# aptitude install xbmc-skin-pm3-hd
Un cop fet això instal·lem totes les dependències i descarreguem el codi font de l’XBMC:
# apt-get build-dep xbmc
# apt-get source xbmc
Ara ja tenim el codi font descomprimit en una carpeta amb permisos de root. Per a
poder compilar com a usuari normal, modificarem el propietari del directori:
# chown -R mediacenter:mediacenter xbmc-8.10final1/
Entrem al directori i compilem:
./build.sh
Una vega fet això ja tindrem els binaris d’XBMC dins de la carpeta BUILD. Tot i això,
aquesta no arrencarà fins que no hi copiem el nou skin d’XBMC, PM3-HD. Com que aquest
no es compila des del codi font no tindrem més remei que copiar la versió compilada al
directori corresponent (suposarem que la carpeta on es troba el codi font és /home/
mediacenter):
$ cp -R /usr/share/xbmc/skin/PM3.HD /home/mediacenter/xbmc-8.10final1/BUILD/skin/
Un cop fet això comprovem que la línia següent estigui present al xinitrc i l’XBMC
s’autoexecutarà amb l’arrencada del servidor gràfic:
/home/mediacenter/xbmc-8.10final1/BUILD/xbmc.bin --standalone
Project Mayhem: Primers problemes
La instal·lació per defecte de l’XBMC ens deixa un skin correcte i ens permet controlar el
programa des del teclat però això no serà suficient. Necessitem poder manejar el media
center des d’un control remot i millorar l’atractiu del programa. A més a més, el mode llibreria
ajunta el cine i la televisió i ens veiem forçats a desactivar-lo si volem accedir a vídeos no
classificats.
D’altra banda, tampoc podem configurar les opcions que apareixen en pantalla, el menú
de reproducció és lleig i el menú de configuració és poc intuïtiu.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
56
Interacció entre LIRC i XBMC: Lircmap.xml
Per a poder utilitzar l’apple remote com a comandament de l’XBMC necessitem
configurar el fitxer Lircmap.xml perquè interpreti els senyals que rep LIRC com a senyals del
programa.
Per aconseguir-ho hem d’afegir un nou comandament seguint l’esquema dels arxius
XML (semblant a l’HTML). Dins de les etiquetes hem d’incloure el nom que LIRC atorga als
botons del comandament (/etc/lirc/lircd.conf) dins d’etiquetes amb el nom que volem que
tinguin per a XBMC (system/Lircmap.xml). La secció afegida és la següent:
<remote device="Appleremote">
<left>BACKWARD</left>
<right>FORWARD</right>
<up>VOLUP</up>
<down>VOLDOWN</down>
<select>PLAY</select>
<menu>MENU</menu>
</remote>
Després d’això ja podrem utilitzar el nostre comandament un cop assignem funcions a
les diferents tecles que hem creat (left, right, up, down, select i menu) a través del
Keymap.xml.
Escalant els controls d’XBMC al comandament
El fet d’haver escollit l’Apple remote com a comandament principal per al media center
ens obliga a fer sacrificis en el nombre de funcions que tindrem disponibles i a pensar molt
bé la manera més eficient d’interacció entre l’usuari i el programa. És cert que s’hagués
pogut utilitzar un comandament amb més botons, però el fet de venir inclòs amb el sistema i
el repte de domesticar un programa tan complet com l’XBMC a la voluntat d’un
comandament tan minimalista van uns arguments molt més pesants.
57|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
A continuació adjunto una imatge del mapa de teclat i del mapa de funcions del
comandament, des d’on es pot veure molt gràficament la magnitud d’aquesta tasca. S’ha
aconseguit la mateixa funcionalitat de 23 botons amb només 6. Això representa un 70%
menys d’elements de control:
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
58
59|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
Això, com és evident, s’ha aconseguit a través del sacrifici de les funcions més
supèrflues i amb la utilització d’un esquema diferent depenent de la pantalla on es trobava el
programa. Per tant, una mateixa tecla realitza funcions diferents segons si s’està navegant
pels arxius, reproduint-ne o bé es troba a la pantalla principal del programa. Tot i això, s’ha
procurat que l’ús del comandament sigui al més coherent possible.
El fet d’utilitzar aquest mapejat de funcions també ha condicionat la tria de l’skin. Ara jo
no n’hi havia prou amb el fet que aquest fos atractiu, sinó que s’havia de poder navegar per
la biblioteca sense scroll lateral (aquest tenia la funció de canviar a vista completa i mostrar el
menú contextual). Amb això perdem la possibilitat de canviar les vistes de la biblioteca i la
manera com organitza els arxius per defecte i tampoc ens permet desactivar-la ni accedir a
la navegació per carpetes. És per això que haurem de configurar el comportament per
defecte abans i que hauríem de trobar un skin que ens permeti l’accés a la vista per carpetes
separadament de la biblioteca, per si hem d’afegir noves fonts multimèdia o volem visualitzar
arxius no classificats..
Buscant nous skins: AEON i MediaStream
AEON va ser la primera alternativa que vaig considerar seriosament. Es tracta d’un tema
molt espectacular, amb unes grans animacions i suport per a fons de pantalla personalitzats.
Tot i això, el seu ús intensiu de l’scroll lateral juntament amb una pantalla de visualització molt
poc atractiva va fer-me abandonar la idea.
El MediaStream, sense fer un ús tan intensiu de les transicions, també presentava un
acabat superior, digne d’un gran producte. Els vídeos estaven separats en 3 modes: vídeos
(vista d’arxius), pel·lícules i sèries. La música, en canvi, només era accessible des del mode
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
60
llibreria. Tot i això, el seu sistema de menús es pot modificar fàcilment sense problemes, així
que jo mateix vaig afegir aquesta opció.
A més a més, les llibreries i tots els menus són accessibles sense scroll lateral, per la
qual cosa podem aprofitar aquests botons per a altres funcions, com el menú contextual o el
canvi al mode visualització.
MediaStream: evolució i hacks
Encara que el MediaStream ha resultat ser la millor opció, també ha presentat
problemes. Un d’ells, per exemple, és el suport de caràcters asiàtics (les cançons amb títols
en japonès no es mostraran correctament) i, fins no fa gaire, l’inexistent suport per a
caràcters llatins (accents, ñ i ç).
També he hagut de modificar l’skin perquè les funcions d’apagada i reinici funcionessin i
he afegit un botó per a l’expulsió de discos òptics.
Per a l’apagada i el reinici he hagut de modificar el fitxer /etc/sudoers, per poder
executar les comandes encarregades de l’estat de la màquina sense necessitat d’introduir la
contrasenya de superusuari:
mediacenter ALL =(root) NOPASSWD: /sbin/shutdown
Després d’això he modificat les línies següents al fitxer Home.xml:
<content>
<item id="1">
<description>Shutdown Button</description>
<label> $LOCALIZE[31071] </label>
<onclick>XBMC.System.Exec(sudo shutdown -h now)</onclick>
</item>
<item id="2">
<description>Restart Button</description>
<label> $LOCALIZE[31072] </label>
<onclick>XBMC.System.Exec(sudo shutdown -r now)</onclick>
</item>
<item id="3">
<description>Reload Button</description>
<label> $LOCALIZE[31073] </label>
<onclick>XBMC.RestartApp()</onclick>
</item>
<item id="4">
<description>Refresh Button</description>
<label> $LOCALIZE[31075] </label>
<onclick>XBMC.ReloadSkin()</onclick>
</item>
<item id="5">
<description>Dashboard Button</description>
<label> $LOCALIZE[31074] </label>
<onclick>XBMC.EjectTray()</onclick>
</item>
<item id="6">
<description>Suspend</description>
<label> $LOCALIZE[13011] </label>
<onclick>XBMC.Suspend()</onclick>
<visible>!System.Platform.Xbox</visible>
</item>
<item id="7">
<description>Hibernate</description>
<label> $LOCALIZE[13010] </label>
<onclick>XBMC.Hibernate()</onclick>
<visible>!System.Platform.Xbox</visible>
</item>
<item id="8">
61|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
<description>Logout Button</description>
<label> $LOCALIZE[20126] </label>
<onclick>System.LogOff</onclick>
<visible>System.HasLoginScreen</visible>
</item>
</content>
Per últim també he afegit un botó al submenú de música per poder accedir a la vista per
carpetes de manera automàtica:
<content>
<item id="1">
<description>Browse Library Button</description>
<label> BROWSE LIBRARY </label>
<onclick>XBMC.ActivateWindow(MyMusicLibrary)</onclick>
</item>
<item id="5">
<description>Browse Filesystem Button</description>
<label> BROWSE SOURCES </label>
<onclick>XBMC.ActivateWindow(MyMusicFiles)</onclick>
</item>
<item id="2">
<description>Playlists</description>
<label> $LOCALIZE[136] </label>
<onclick>XBMC.ActivateWindow(501,Playlists)</onclick>
</item>
<item id="3">
<description>Music Videos</description>
<label> $LOCALIZE[20389] </label>
<onclick>XBMC.ActivateWindow(MyVideoLibrary,musicvideos,return)</onclick>
</item>
<item id="4">
<description>Settings Button</description>
<label> $LOCALIZE[31060] </label>
<onclick>XBMC.ActivateWindow(15)</onclick>
</item>
</content>
</control>
Servidor UPnP
Per a configurar el media center com a servidor UPnP i permetre la distribució del
contingut de la biblioteca a través d’aquest protocol només cal activar l’opció Enable UPnP
Server dins de l’apartat System > Network de l’XBMC. D’aquesta manera podem accedir a
tot el contingut de la nostra biblioteca musical des d’un dispositiu mòbil com el Nokia N800 o
el Nokia N82 des de qualsevol punt de la casa amb cobertura Wi-Fi.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
62
CONCLUSIONS
Tenint en compte les peculiaritats i la profunditat a què ha arribat aquest treball de
recerca, he cregut convenient la creació d’un apartat que englobi les meves conclusions,
separades per diferents temàtiques amb l’objectiu d’aconseguir una major claredat.
En primer lloc, doncs, compararé la llista d’objectius inicials i els resultats finals. Es
raonarà el perquè de la no-inclusió de determinades característiques en el producte final i la
conveniència de les que s’han afegit posteriorment.
A continuació seguirà un article comentant les impressions generals que he extret un
cop acabada la realització d’aquest treball de recerca. Intentaré exposar de manera completa
la magnitud del projecte i de la diversitat de tasques que he hagut de dur a terme.
Més endavant dedicaré una secció a parlar sobre el software que s’ha utilitzat des de la
perspectiva que em donen aquests mesos d’intens treball. Revelaré el progrés que hi ha
hagut en aquest camp, les feines de manteniment i la dificultat d’arribar a solucions
definitives.
Per últim, exposaré les meves reflexions més personals sobre el treball i els passos a
seguir per portar aquest projecte a un nivell superior: la comercialització.
63|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
Comparant els objectius inicials amb el producte final
Pel que fa als objectius essencials de hardware, he assolit amb èxit tots els aspectes
que m’havia marcat com a claus excepte un. Aquest és el del disc dur de gran capacitat.
Aquesta característica ha resultat innecessària amb l’ús d’un disc dur extern connectat a la
xarxa per emmagatzemar les dades.
De les característiques de hardware opcionals, tenim que la lectora de DVD, el Firewire,
el Bluetooth i l’ethernet 10/100/1000 han estat possibles. Els lectors de Blu-Ray encara són
massa cars i no es poden utilitzar en Linux, la capturadora de TV tampoc era necessària
tenint en compte el rumb més enfocat a la web que ha agafat el treball i l’e-sata tampoc es
feia imprescindible ja que aquest media center no busca un gran rendiment sinó una gran
capacitat. Així doncs, de totes aquestes característiques que no s’han implementat, la que
he trobat més a faltar ha estat la del Wi-Fi 802.11n. El protocol g és massa just per al
correcte streaming de vídeos en HD (encara que aquests funcionin perfectament el 90% del
temps).
Totes les característiques requerides pel front-end han estat cobertes i de sobres, amb
excepció dels emuladors en el sistema. Això, però, atesa la possibilitat d’executar scripts des
del mateix XBMC, faria possible la creació d’una llançadora d’aquest tipus d’aplicacions.
L’apartat de software servidor és el que ha quedat més reduït, amb la creació de còpies
de seguretat de la biblioteca de l’iPhoto i no de tot el sistema, servidor UPnP sense
transcoding (aquesta característica encara no està incorporada al XBMC i vaig considerar
que el fet d’utilitzar un altre software només ajudaria a fragmentar el sistema i fer més difícil la
seva gestió). Els servidors de compartició d’arxius s’han reduït a un pel mateix motiu que no
s’ha utilitzat un altre servidor UPnP, per evitar tenir en marxa daemons que realitzen serveis
idèntics. El servidor SSH, en canvi, s’ha potenciat al màxim i les funcions dedicades a la
interfície web, encara que no s’han implementat, s’han estudiat a fons.
Impressions generals sobre la temàtica del treball de recerca
Des dels inicis de la gestació d’aquest projecte vaig ser conscient del fet que es tractava
d’una empresa que requeriria de tot el meu temps i esforç. Tot i això, les meves estimacions
encara es van quedar curtes i és que, la versió original no adaptada als premis CIRIT tenia
més de dues-centes pàgines. Això ha convertit aquest treball de recerca en projecte amb
totes les de la llei. Però això no hauria d’estranyar ningú que hagi tingut relació amb la
informàtica, perquè ja se sap que a major grau de perfeccionament del sistema, major és el
temps invertit (a un nivell que m’atreviria a qualificar d’exponencial).
Els temes que s’han tractat en aquest treball són molts i molt variats. Tots infinitament
extensos i interessants, cosa que és atractiva per una banda però problemàtica per una altra,
ja que és difícil determinar fins a quin punt és convenient d’arribar. Per aquest motiu molts
apartats no han estat abordats amb la mateixa profunditat amb què es van investigar, per
evitar una generalització excessiva del treball, que el desviés de l’objectiu principal: la creació
d’un HTPC concret i la seva correcta posada a punt.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
64
Software: Evolució, manteniment i solucions
Un dels punts clau en el decurs de la realització d’aquest projecte va ser la tria del
software. Vaig decidir que la columna vertebral del meu projecte es basés en un projecte que
encara no havia arribat a una fase ALPHA en el seu desenvolupament.
Això comportava molts riscos: el reproductor de DVD, l’estabilitat, el suport per a xarxes
i el mode llibreria encara no funcionaven i no tenia cap assegurança que ho fessin
correctament en un futur a part del roadmap del projecte i de les crítiques positives que tenia
l’equip de desenvolupament pel que havien aconseguit anteriorment amb la versió d’XBMC
per a XBOX. Tot i això, vaig fer confiança a l’equip de desenvolupament, sobretot en veure
l’activitat dels seus usuaris, la comunitat que havien creat al seu voltant i les excel·lents
crítiques que rebia el seu projecte.
Per tant, mentre realitzava altres tasques relacionades amb el treball i la configuració del
SO del Mac Mini, vaig començar a baixar les versions de desenvolupament de l’XBMC via
SVN. D’aquesta manera cada dia baixava i compilava l’última versió, adaptant-me als canvis i
observant els progressos del programa.
Aquest procés, a part de ser lent (l’XBMC és una peça de software complexa i tarda el
seu temps a compilar-se), porta problemes, i és que era habitual que les compilacions
deixessin de ser possibles en un determinat moment, per culpa d’algun error introduït en
l’última modificació, o que s’afegissin noves dependències sense previ avís, que després
havia de descobrir i instal·lar.
Aquest procediment es va convertir en una tasca diària de manteniment. Cada dia
dedicava un temps a baixar i recompilar les versions SVN de l’XBMC i també altres
components com l’rtorrent o el LIRC. Amb l’inici del curs i l’aparició de versions ALPHA,
BETA i Release Candidate, la freqüència en la recompilació va disminuir, però tot i això
aquestes tasques de manteniment han suposat una despesa de temps important, temps
que és invisible per a qualsevol que no estigui treballant per al projecte, però no per això
menys important.
En qualsevol cas, el fet de treballar amb projectes en moviment és totalment diferent del
que havia fet fins ara a l’Institut. A les classes sempre tractem de temes tancats, estàtics.
Adquirim uns coneixements sobre una àrea concreta, però aquesta no canvia. Ha estat la
mateixa pels qui han cursat la matèria abans que nosaltres i pels qui la cursaran més tard, és
un coneixement immòbil. En canvi, haver treballat tants mesos seguits de manera paral·lela
amb el desenvolupament de l’XBMC ha fet que el coneixement adquirit fos qualsevol cosa
excepte estàtic. El que un dia era vàlid podia no ser-ho al següent. El funcionament de certs
aspectes podia canviar, es podien afegir noves característiques mentre que d’altres
d’antigues desapareixien. És per això que el repte també és major i es fa necessària una total
implicació amb el projecte si es vol arribar a algun lloc, perquè no és suficient a dedicar unes
quantes hores al treball cada X temps, cal estar al sobre del que et queda per fer i del que
fan els altres per adaptar-t’hi i adaptar-ho.
Com a anècdota curiosa d’implicació en el desenvolupament i de correció en la presa de
decisions, voldria posar dos exemples significatius. El primer de tots té a veure amb un botó
absent a l’XBMC: el d’expulsar el DVD. Com que el meu Mac Mini no disposa de cap botó
extern per expulsar els CD/DVD que s’hi introdueixen, vaig haver de modificar l’skin per
afegir-hi aquesta funció. El segon és que, com que no hi havia cap tema d’uSplash amb els
motius d’XBMC, també vaig haver de crear-me el meu. Doncs bé, uns quants mesos més
tard, en el nou skin s’ha afegit aquest botó i DuDuke, un usuari dels fòrums d’XBMC que va
65|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
publicar uns temes per a uSplash amb els logos d’XBMC, ha aconseguit que aquests siguin
inclosos en la versió Live del programa distribuïda pels desenvolupadors. A part d’això, el
thread on ell va publicar aquests temes està inclòs com a tema de referència i ocupa una
posició priviliegiada dins el fòrum de Linux. Amb això em vaig adonar que, per una banda, les
meves idees no eren dolentes i, per l’altra, em va animar a perdre la por de publicar els meus
hacks o propostes per a la millora dels programes. Aquests poden ser més útils del que un
s’imagina en un primer moment i, fins i tot, acabar formant part del projecte en què has
col·laborat.
Relacionat amb el que s’ha dit dos paràgrafs abans, sobre les tasques invisibles que
s’han dut a terme per al projecte, m’agradaria afegir-ne una altra. I és que, per arribar a les
solucions finals dels problemes que m’he plantejat al principi, han fet falta moltes solucions
intermèdies. Això es pot veure més clarament en articles com els del disseny de Bridge o els
problemes d’UI amb XBMC, però temes com el de l’arrencada han necessitat de molts
passos intermedis per arribar al grau de perfeccionament actual. Tots aquests passos han
passat el seu període de gestació i de proves, necessaris per analitzar els problemes que
presentaven i, a partir d’aquesta nova informació, idear i buscar altres solucions millors. El
tema de l’arrencada, per exemple, vaig començar-lo a treballar pel juliol i no el vaig donar per
acabat fins al novembre. En aquest període de temps vaig provar amb scripts d’inici,
diferents programes per fer autologin, diferents paràmetres per a totes les comandes, display
managers… De fet, tot el que s’ha descrit a Creant un sistema d’autologin va haver-se de
refer més de 5 vegades, i cada una consumint gairebé el mateix temps que l’anterior.
Apunts finals i notes sobre la comercialització del producte
El meu primer contacte amb el software lliure va ser l’any 2004, amb la distribució del
LiveCD Càtix per part del diari AVUI. A partir d’aquell moment, la meva relació amb el
software lliure ha anat variant, amb els seus punts àlgids i les seves hores baixes, però puc
dir amb seguretat que aquests coneixements previs, apresos de forma totalment
autodidacta, han estat la base que m’ha capacitat per portar aquest treball endavant.
Un cop acabat aquest treball puc dir que la base s’ha expandit i reforçat. Fins ara
m’havia limitat a seguir tutorials o centrava el meu interès en programes molt concrets. Una
vegada acabat aquest treball, però, he de dir que això ha canviat. He treballat amb el SO i les
seves eines molt més a fons, buscant-ne totes les seves possibilitats, afinant cada programa
i cada procés al mil·límetre, revisant pàgines i pàgines de documentació i de nodocumentació (la falta d’una bona base de coneixement per a la majoria de programes del
software lliure és vergonyosa i dificulta moltíssim el treball), buscant la manera de relacionar
processos entre si… Ja no buscava solucions, les acabava creant jo mateix. De fet, sense
voler-ho, m’he convertit en un administrador de sistemes molt més eficient del que era
abans, capaç de controlar la màquina mitjançant la consola tant o més eficientment del que
ho podria fer mitjançant una interfície gràfica.
Sobre la possible comercialització d’aquest producte he de dir que sí, que seria viable, i
fins i tot podria arribar a tenir un cert èxit. De fet, es venen media centers molt més mal
acabats i menys funcionals que la màquina que he creat, però tot i això s’haurien de dreçar
uns quants aspectes.
El comandament a distància el canviaria. No és que no m’agradi l’Apple remote. De fet,
la idea de poder controlar tantes coses amb tan pocs botons m’encanta, però requereix una
mica de memòria i he de reconèixer que hi ha certs aspectes del meu mapejat que no són
precisament evidents. És per això que si pogués crear el meu comandament a mida
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
66
col·locaria 7 botons de navegació (amunt, avall, esquerra, dreta, seleccionar, enrere i menú
contextual) i 5 més per a controlar l’estat dels vídeos o música que s’estiguessin reproduint
(engega/pausa, parar, endavant, enrere, puja el volum, baixa el volum). Potser un botó per
poder apagar la màquina directament des del comandament seria prou útil també.
A part del comandament diferent, també s’hauria de recompilar el kernel perquè
únicament suportés el hardware del sistema (eliminant mòduls i pes innecessari, aconseguint
una arrencada més ràpida i fent un ús menys intensiu dels recursos del sistema). Pel que fa a
la resta de software, es tractaria d’acabar la UI Web (part tractada al material complementari),
incloure un sistema d’actualitzacions automàtiques (via servidors propis muntats com a un
repositori. Es podrien fer passar totes les actualitzacions d’Ubuntu i les pròpies del sistema a
través d’aquí, per mantenir un control més estricte del que s’instal·la en les màquines dels
clients i evitar possibles conflictes en cas d’actualització directa des dels servidors d’Ubuntu).
Treballar una mica per millorar el temps d’arrencada i implementar la hibernació del sistema
són els dos últims punts importants a retocar. Després també es podria intentar de simplificar
una mica el sistema, retallant algunes funcions de l’XBMC i fent-ne més visibles d’altres. Res
més pel que fa al software.
El hardware s’hauria de canviar, per a retallar costos i apropar el producte al rang dels
200-300€. 450€ és excessiu per a un gran públic, i més si tenim en compte que no
reprodueix Blu-Ray. És per això que faria una retallada de RAM, que quedaria entre 256MB
(just) i 512MB (en sobraria). Després em plantejaria una ampliació o retallada de disc dur,
depenent de si es tria mantenir el tamany reduït i dependre d’emmagatzematge extern o si
es vol incloure un disc dur de grans dimensions (cosa que veig problemàtica amb el Mac
Mini, que té un disc dur de 2.5’ de portàtil, que tenen menys capacitat d’emmagatzematge i
són més cars que un de 3.5’). On realment tindríem problemes seria amb la CPU. El Mac
Mini porta un Core2Duo T5600, que és un processador intel de portàtil amb un baix consum
(TDP 8 màxim de 35W) però car (un processador amb característiques semblants de l’actual
generació té un preu de 200-250€ de cara al públic), que es menja el pressupost de la
màquina.
Aquí és on entra el major problema de Linux. Com que no hi ha suport per a
l’acceleració de vídeo per a hardware es depèn del processador per a decodificar-lo. I aquest
processador, si és car, es fa pagar. En aquest punt, les grans empreses tenen les de guanyar.
Per a ells comprar un hardware descodificador de vídeo i pagar-ne els drivers o les
especificacions per a poder desenvolupar-ne és un problema menor. I després, una vegada
es té acceleració per a hardware, qualsevol cosa serveix. A més a més, com que treballen a
gran escala tenen uns marges molt majors i els components els poden comprar molt més
barats, cosa que és impossible per a un particular o una petita empresa.
Per tant, com que no es tracta d’un producte dirigit a un gran públic (no encara) valdria
més apostar per l’excel·lència i intentar ajustar el preu a 350€, 400€ com a límit. Això faria
obligatori el perfeccionament de la UI al màxim per poder-la utilitzar com a justificació del
preu. Això, juntament amb la inclusió d’un mode escriptori i un sistema suficientment obert
per als hacks dels usuaris avançats, podria estar bé. Seria una manera d’oferir un precuinat a
un conjunt d’usuaris interessats en el tema, però que no disposen del temps suficient com
perquè aquest vagi a més.
Aquest projecte, llavors, s’hauria de promocionar per totes aquestes webs sobre
descàrrega de sèries en VO i VOS. També pels fòrums d’XBMC i projectes similars, i intentar
8
Thermal Design Power (TDP) fa referència al nivell màxim de calor que haurà de dissipar el sistema de
refrigeració perquè el processador pugui funcionar normalment.
67|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
fer una mena de publicitat viral: mostrar bé la UI, les innovacions que aporta el sistema i els
avantatges que presenta a tota aquesta minoria selecta que vol veure televisió sense
esperes, sense anuncis i en alta definició.
Potser d’aquesta manera, acceptant quantitats reduïdes d’encàrrecs i intentant crear-se
un bon nom gràcies a una experiència d’usuari superior als altres productes, en un futur on el
suport d’acceleració per a hardware en Linux sigui una realitat es podria, ara sí, crear un
producte mainstream que no només reprodueixi qualsevol cosa sinó que, a més, organitzi
correctament i distribueixi aquest contingut per a tota la xarxa domèstica.
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
68
NOTES POSTERIORS A LA
REALITZACIÓ DEL TREBALL DE
RECERCA
Durant els mesos finals de desenvolupament del media center i el primer trimestre de
2009, una vegada el treball va estar acabat, el mercat ha presentat tota una sèrie de
productes que han canviat el paradigma de hardware per a HTPC existent a data de juny de
2008. La presentació de noves plataformes com la NVIDIA ION, composta per gràfiques
integrades amb decodificació de vídeo en HD (GeForce 9400M) i processadors de molt baix
consum intel Atom faria possible la creació d’un hardware definitiu per al nostre mediacenter.
Finalment, es podria aconseguir una màquina encara més eficient energèticament (amb
consums d’uns 10-15W en repòs), amb possible refrigeració passiva, perfectament
preparada per a l’alta definició i realment barata i competitiva, amb un preu al voltant dels
270-300€.
Aquest hardware, però, sense uns drivers que suportessin aquestes característiques i
sense un frontend que en pogués treure partit seria totalment inútil en la plataforma basada
en Linux que he creat. És per això que la nova API proporcionada per NVIDIA des de mitjan
de novembre de 2008, VDPAU9 , es converteix en un element essencial. Gràcies a l’aparició
d’uns drivers que permeten l’ús d’aquesta característica i a la feina que està realitzant la
comunitat de Software Lliure, aplicacions multimèdia de renom com MPlayer, FFmpeg, Xine,
VLC o MythTV ja permeten l’ús de la decodificació de vídeo a través de la GPU.
La comunitat darrere de XBMC no es queda enrere i ja ha anunciat que la API VDPAU
estarà suportada en la propera versió final del programa: 9.04 Babylon. S’espera la seva
publicació durant el segon trimestre de 2009.
Pel que fa a la viabilitat del meu mediacenter com a producte comercial m’agradaria
destacar la recent aparició (principis de març de 2009) de l’H2Box (http://www.xataka.com/
tag/h2box), un media center creat per un emprenedor espanyol que replica, gairebé punt per
punt, la filosofia, característiques i software emprat en el meu projecte. Fins i tot el preu del
producte (289€) entra dins el rang que assenyalo com a idoni.
Espero que aquests apunts finals serveixin com a mostra de la fragilitat de la meva
recerca i de l’esforç d’adaptació constant a les noves tecnologies que he hagut d’afrontar, ja
sigui des del camp del software com del hardware. L’aparició de projectes com l’H2Box o el
Blu:Brain també avalen el concepte d’interconnexió i digitalització del multimèdia que he
estat defensant des de les fases més embrionàries del projecte i que, de ben segur,
s’acabaran imposant en un futur immediat.
9
Video Decode and Presentation API for Unix. Trobareu més informació sobre aquesta API a la pàgina
oficial de NVIDIA: http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/index.html
69|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
BIBLIOGRAFIA
Aquesta és una recopilació dels enllaços més rellevants que he utilitzat per a la
realització d’aquest treball de recerca per ordre alfabètic. Per a un millor visionat d’aquests
recomano visitar http://delicious.com/knopkern/mediacenter, on estan organitzats per
etiquetes.
Alguns enllaços de les seccions de software i de les aclaracions no estan inclosos a la
bilbiografia per evitar-ne la repetició i fer més dificultosa la lectura d’aquesta secció.
[aptitude] How to get a list of all installed packages? - LinuxQuestions.org h t t p : / /
www.linuxquestions.org/questions/debian-26/aptitude-how-to-get-a-list-of-all-installedpackages-458119/
[LINUX] Enable XvMC for FFmpeg in XBMC's DVDPlayer? - XBMC Community Forum
xbmc.org/forum/showthread.php?t=31350
http://
[SOLVED] Change background color after GDM Login before background image appears Ubuntu Forums http://ubuntuforums.org/showthread.php?t=745869
1080p Does Matter - Here's When (Screen Size vs. Viewing Distance vs. Resolution) »
CarltonBale.comhttp://www.carltonbale.com/2006/11/1080p-does-matter/
A need for speed: 802.11n router roundup: Page 1
hardware/802-11n-router-roundup.ars/1
h t t p : / / a r s t e c h n i c a . c o m / re v i e w s /
Advanced Bash-Scripting Guidehttp://tldp.org/LDP/abs/html/index.html
Another Example of Why You May Need 1080p » CarltonBale.com
h t
www.carltonbale.com/2007/04/another-example-of-why-you-may-need-1080p/
t
p
:
/
/
Ars System Guide special: it's easy being green: Page 1 http://arstechnica.com/guides/buyer/
guide-200802-green.ars/1
Ars System Guide: HTPC edition
http://arstechnica.com/guides/buyer/guide-200804.ars
atv-bootloader - Google Code http://code.google.com/p/atv-bootloader/
Autologin con Xfce4 « Linux para las masas 2007/10/24/autologin-con-xfce4/
http://linuxparalasmasas.wordpress.com/
autologin gdm.conf
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/
desktop-guide/s1-ddg-lockdown-other-kiosk-configs.html
bash - Wikipedia, la enciclopedia libre
http://es.wikipedia.org/wiki/Bash
BASH Programming - Introduction HOW-TO
HOWTO.html
http://tldp.org/HOWTO/Bash-Prog-Intro-
Bash Reference Manualhttp://www.gnu.org/software/bash/manual/html_node/index.html
Benchmarking an Ubuntu system - XBMC Community Forum
showthread.php?t=33645
http://xbmc.org/forum/
Big Buck Bunny » Download http://www.bigbuckbunny.org/index.php/download/
BIOS - Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/BIOS
BitTorrentSpecification - TheoryOrg
http://wiki.theory.org/BitTorrentSpecification
Bubok, ya hemos recibido el libroedita y publica tus libros h ttp://www.genbeta.com/2008/05/09bubok-ya-hemos-recibido-el-libro
Bug #132833 in gdm (Ubuntu): “login background color is hardcoded”
bugs.launchpad.net/ubuntu/+source/gdm/+bug/132833
h t t p s : / /
Comparando la BlackBerry Storm con el iPhone http://www.applesfera.com/2008/12/14comparando-la-blackberry-storm-con-el-iphone
Comparativa de dispositivos de almacenamiento en red http://www.tecnologiapyme.com/
2008/10/05-comparativa-de-dispositivos-de-almacenamiento-en-red
Complete Guide to Pre-Installed Fonts in Linux, Mac, and Windows | A Padded Cell
www.apaddedcell.com/web-fonts
http://
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
70
Conceptronic Grab’n’GO Gigabit Full HDh ttp://www.xataka.com/2008/03/25-conceptronicgrabanago-gigabit-full-hd
Conceptronic Grab'n'Go CM3PVR, análisis
conceptronic-grabngo-cm3pvr-analisis
h t t p : / / w w w. x a t a k a . c o m / 2 0 0 8 / 0 3 / 2 7 -
Configuring powernowd - Ubuntu Forums t=14864&highlight=configuring+powernowd
http://ubuntuforums.org/showthread.php?
CoreAvc + Mplayer en Linux :D http://antiscreeners.com/phpBB2/viewtopic.php?t=4028
coreavc-for-linux - Google Codehttp://code.google.com/p/coreavc-for-linux/
cpufreqd - How to configure you cpu speed | Linux Operating system - Debian, Fedora, Centos,
Ubuntu - Linux stuff
http://www.go2linux.org/how-to-configure-cpufreqd
Cygwin - Wikipedia, la enciclopedia librehttp://es.wikipedia.org/wiki/Cygwin
Change tty color - Ubuntu Forums http://ubuntuforums.org/showthread.php?t=473106
Chrome: el navegador como sistema operativo » El Blog de Enrique Dansh t t p
www.enriquedans.com/2008/09/chrome-el-navegador-como-sistema-operativo.html
Chrome: mirando más allá » El Blog de Enrique Dans chrome-mirando-mas-alla.html
:
/
/
http://www.enriquedans.com/2008/09/
Debian User Forums :: View topic - auto login and startx without a display manager
forums.debian.net/viewtopic.php?t=29333
delicious blog » Oh happy day — the new Delicious is here
2008/07/oh-happy-day.html
http://
http://blog.delicious.com/blog/
Desktop environment - Wikipedia, the free encyclopedia h t t p : / / e n . w i k i p e d i a . o r g / w i k i /
Desktop_environment#Examples_of_desktop_environments
Disco duro multimedia de 2.5 pulgadas http://www.xataka.com/2008/05/03-disco-duromultimedia-de-25-pulgadas
D'Oh!: Ext4 (lo que traerá Linux 2.6.28 parte I)
que-traer-linux-2628-parte-i.html
http://diegocg.blogspot.com/2008/12/ext4-lo-
Eject DVD Button - XBMC Community Forum
t=35684&highlight=shutdown+xbmc
http://xbmc.org/forum/showthread.php?
El navegador que sueña con ser sistema operativo | soitu.es
2008/09/05/vidadigital/1220638967_438039.html
Everaldo: Crystal
http://www.soitu.es/soitu/
http://www.everaldo.com/crystal/
Expresión regular - Wikipedia, la enciclopedia libre
Expresión_regular
http://es.wikipedia.org/wiki/
Extensible Firmware Interface - Wikipedia, la enciclopedia libre
Extensible_Firmware_Interface
http://es.wikipedia.org/wiki/
Extensible Firmware Interface (EFI) (Intel)http://www.intel.com/technology/efi/
Fábrica de Tux - CrystalXP.net - TheGuit Tux
theguit-tux.html
http://tux.crystalxp.net/es.id.9870-mimipunk-
FAQ Linux Memory Management - Gentoo Linux Wiki
FAQ_Linux_Memory_Management
http://gentoo-wiki.com/
FeedMyTorrents.com - Your source for automatic downloading
http://feedmytorrents.com/
File system permissions - Wikipedia, the free encyclopedia
File_system_permissions
http://en.wikipedia.org/wiki/
FlipsideReality » Blog Archive » rtorrent with wtorrent on debian etch complete HOWTO http://
flipsidereality.com/blog/linux/rtorrent-with-wtorrent-on-debian-etch-complete-howto/
Foro de AntiScreeners :: Ver tema - [Articulo] ¿Cuando merece la pena 1080p sobre 720p?http://
www.antiscreeners.com/phpBB2/viewtopic.php?t=179
Foro de AntiScreeners :: Ver tema - DXVA: Decodificación por hardware (GPU) de AVC/H.264 y
VC-1 http://www.antiscreeners.com/phpBB2/viewtopic.php?t=3196
Foro de AntiScreeners :: Ver tema - instalar mplayer (compilando)h t t p : / / a n t i s c re e n e r s . c o m /
phpBB2/viewtopic.php?t=10
Free Web Icons - NETTUTS http://nettuts.com/freebies/icons-freebies/free-web-icons/
71|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
Geek To Live: Transform Your Classic Xbox into a Killer Media Center
http://lifehacker.com/
software/geek-to-live/transform-your-classic-xbox-into-a-killer-media-center-299809.php
GeForce 9400 GT
http://www.nvidia.com/object/product_geforce_9400gt_us.html
GettingStarted - Clutch - Trac http://recurser.com/trac/transmission/wiki/GettingStarted
Giingo >> Linux en un Mac Mini (Intel Core Duo) http://giingo.org/bitacora/pivot/entry.php?
id=326
grub-gfxboot deb
http://kanotix.com/debian/pool/main/g/grub-gfxboot/
h.264 decode on slow CPUs - Knoppix.net
t=26769
H.264 Demo Clips - H264info.com
http://www.knoppix.net/forum/viewtopic.php?
http://www.h264info.com/clips.html
HD 1080p - Optimización con CoreAVC Video Decoder http://www.atlantiscode.com/blog/
hd-1080p-optimizacion-con-coreavc-video-decoder/
HD Video Playback in Linux at Blog on Charlie’s Server
2007/09/13/hd-video-playback-in-linux
h t t p : / / b l o g . c h a r l i e s - s e r v e r. c o m /
HD Video Playback in Linux at Blog on Charlie’s Server
2007/09/13/hd-video-playback-in-linux/
h t t p : / / b l o g . c h a r l i e s - s e r v e r. c o m /
HD1080i: 1080i on 1366x768 resolution problems De-mystify HDTV, HD-Ready, and High
Definition TV - Know Why Before you Buyh t t p : / / h d 1 0 8 0 i . b l o g s p o t . c o m / 2 0 0 6 / 1 2 / 1 0 8 0 i on-1366x768-resolution-problems.html
HDTV Bandwidth requirements http://www.tomshardware.co.uk/forum/27374-30-hdtvbandwidth-requirements
Home of JDownloader http://jdownloader.org/home_features
Home Theater Calculator: Viewing Distance, Screen Size » CarltonBale.com spreadsheet http://
www.carltonbale.com/home-theater/home-theater-calculator/
Home Theater Seatings Distances: Field-of-View vs. Resolution » CarltonBale.comh t t p : / /
www.carltonbale.com/2006/12/home-theater-seatings-distances-field-of-view-vs-resolution/
Home Theater: The 2008 HDTV Technology Face Off
208hdface/index.html
http://www.hometheatermag.com/lcds/
Howto - Compilar kernel de linux para macbooks (mactel) | Magarto
http://magarto.com/
blog/archivo/2007/07/31/howto-compilar-kernel-de-linux-para-macbooks-mactel/
Howto configure MPlayer/list−options - Wikihowto: a howto site anyone can edit h t t p : / /
howto.wikia.com/wiki/Howto_configure_MPlayer/list%E2%88%92options
Howto install rtorrent and wtorrent within an Ubuntu Hardy VE | Robert Penz Blog h t t p : / /
robert.penz.name/82/howto-install-rtorrent-and-wtorrent-within-an-ubuntu-hardy-ve/
HOWTO Reducir la frecuencia del procesador - Gentoo Linux Wiki
wiki.com/HOWTO_Reducir_la_frecuencia_del_procesador#Cpufreqd
http://es.gentoo-
HOWTO Share Directories via AFP - Gentoo Linux Wiki h t t p : / / g e n t o o - w i k i . c o m /
HOWTO_Share_Directories_via_AFP
HOWTO: (GDM) Show the user wallpaper/background color, while logging in - Ubuntu
Forums http://ubuntuforums.org/showthread.php?t=753261
HOWTO: CPU Frequency Scaling w/ Kernel Module - Ubuntu Forums ubuntuforums.org/showthread.php?t=248867)
h
t
t
p
:
/
/
HOWTO: LIRC en macbook, macbook pro, macmini, imac, ... - Magarto - Wiki
h t t p : / /
magarto.com/wiki/index.php?title=HOWTO:_LIRC_en_macbook%2C_macbook_pro%2C_macmini
%2C_imac%2C_...
HOWTO: madWi-Fi & WPA tty http://ubuntuforums.org/showthread.php?t=75451
HOWTO: Wii remote in Ubuntu 8.04 - Ubuntu Forums showthread.php?t=836231
http://ubuntuforums.org/
HOWTO: Wireless Security - WPA1, WPA2, LEAP, etc. - Ubuntu Forums h
ubuntuforums.org/showthread.php?t=318539
Image:Vector Video Standards2.png - Wikipedia, the free encyclopedia
wiki/Image:Vector_Video_Standards2.png
InOut TV
http://www.inout.tv/
t
t
p
:
/
/
http://en.wikipedia.org/
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
Installation/LowMemorySystems - Community Ubuntu Documentation
help.ubuntu.com/community/Installation/LowMemorySystems
Installing Lighttpd With PHP5
|
72
h t t p s : / /
http://www.howtoforge.com/lighttpd_mysql_php_debian_etch
Jorge Martin (Cuerpo Nacional de Policia) Bajar emule h t t p : / / e s . y o u t u b e . c o m / w a t c h ?
v=wk7j_Pe1itg&feature=PlayList&p=6334500B65DB71AB&index=5
La consolidación y el futuro del mercado del netbook » El Blog de Enrique Dans h t t p : / /
www.enriquedans.com/2008/09/la-consolidacion-y-el-futuro-del-mercado-del-netbook.html
Let a common user shutdown and reboot - Gentoo Linux Wiki
HOWTO_Let_a_common_user_shutdown/reboot
Linux add a swap file howto
http://gentoo-wiki.com/
http://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/
Linux/Documentation/cpu-freq/user-guide.txt
Documentation/cpu-freq/user-guide.txt
http://users.sosdg.org/~qiyong/lxr/source/
LinuxFocus: Permisos de acceso a ficheros January1999/article77.html
h t t p : / / w w w. l i n u x f o c u s . o r g / C a s t e l l a n o /
Lo hice y lo entendí | Autentificación trasparente por clave pública/privada con OpenSSH http://
www.vicente-navarro.com/blog/2008/01/13/autentificacion-trasparente-por-clave-publicaprivadacon-openssh/
Lo hice y lo entendí » La resolución 1366×768 h t t p : / / w w w. v i c e n t e - n a v a r r o . c o m / b l o g /
2007/10/15/la-resolucion-1366x768/
Lo hice y lo entendí » VIA EPIA http://www.vicente-navarro.com/blog/category/hardware/viaepia/
Mac Mini: Power consumption and thermal output (BTU) information
docs.info.apple.com/article.html?artnum=304952
Media center con Mac Mini y OSX
h
t
t
p
:
/
/
t
t
p
:
/
/
http://macminihtpc.wordpress.com/
Meet EZTV, The Leading TV-torrent Distribution Group | TorrentFreak
torrentfreak.com/meet-eztv-the-leading-tv-torrent-distribution-group/
h
mike.saunby - x11vnc for Nokia 770, N800 and N810
x11vncfornokia7702
http://mike.saunby.googlepages.com/
Mini como Mediacenter - Comunidad Macuarium
index.php?showtopic=224781
http://www.macuarium.com/foro/
mini-itx.com - epia n 10000 review
http://mini-itx.com/reviews/nano-itx/default.asp?page=1
mini-itx.com - epia px 10000 review
http://mini-itx.com/reviews/pico-itx/default.asp?page=1
MPEG-4 AVC/H.264 Information - Doom9's Forum
showthread.php?t=96059
MPlayer - The Movie Player documentation
index.html
Mplayer h264 linux - Utilitybox.org
title=Mplayer_h264_linux
http://forum.doom9.org/
http://www.mplayerhq.hu/DOCS/HTML/en/
http://utilitybox.org/ubWiki/index.php?
MSI Titan 700 mini-PC gets announced - Engadget
msi-titan-700-mini-pc-gets-announced/
http://www.engadget.com/2008/05/09/
Network MediaPlayer-450 WLAN se pasa al HDMI
network-mediaplayer-450-wlan-se-pasa-al-hdmi
http://www.xataka.com/2008/05/01-
NVIDIA PureVideo HD - For the Ultimate HD Experience h t t p : / / w w w. n v i d i a . c o m / c o n t e n t /
purevideohd/index.html?CMP=ILC-QX4828847354
OpenChrome (VIA graphics OSS driver) support h t t p : / / w i k i . o p e n c h ro m e . o r g / t i k i w i k i / t i k i index.php?page=HardwareCaveats
Optimize Your BitTorrent Download Speed | TorrentFreak http://torrentfreak.com/optimize-yourBitTorrent-download-speed/
OT: Multithreaded h264? | MythTV | Users
users/299807
http://www.gossamer-threads.com/lists/mythtv/
Permisos de acceso a archivos - Wikipedia, la enciclopedia libre http://es.wikipedia.org/wiki/
Permisos_de_acceso_a_archivos
73|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
Phoronix Test Suite - Linux Testing & Benchmarking Platform
h t t p : / / w w w. p h o ro n i x - t e s t suite.com/
Plasma vs. LCD Revisited: Screen Glare is Still the Deciding Factor » CarltonBale.com
http://
www.carltonbale.com/2007/08/plasma-vs-lcd-revisited-screen-glare-is-still-the-deciding-factor/
post sobre h.264 en ubuntu, códecs i algo de hardware h t t p : / / f o r u m . d o o m 9 . o r g /
showthread.php?s=de77759b72dfb6e07af9f128e61489bd&t=126691&page=2
Proyecto media center http://knopkern.es/blog
Regular Expressions Cheat Sheet (V2) - Cheat Sheets - Added Bytes www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/
Reveladora comparativa de pantallas planas | Antiscreeners node/642
Review: AirPort Extreme 802.11n
#performance
h
t
t
p
:
/
/
http://www.antiscreeners.com/
h t t p : / / w w w. m a c i n t o u c h . c o m / re v i e w s / a i r p o r t n /
rssdler - Google Code http://code.google.com/p/rssdler/
rTorrent con interfaz web · Lunahttp://luna.elotrolado.net/2008/04/rtorrent-con-interfaz-web/
RTorrentUsingDHT - The libTorrent and rTorrent Project - Trac
wiki/RTorrentUsingDHT
Secure Linux/UNIX access with PuTTY and OpenSSH
openssh.html
http://libtorrent.rakshasa.no/
http://unixwiz.net/techtips/putty-
set WPA from console http://www.aei.mpg.de/~pau/amilo_1425_linux_en.html
Setting up your own APT repository with upload support http://www.debian-administration.org/
articles/286
Share your iTunes library between computers story=20070424081346722
http://www.macosxhints.com/article.php?
Shell (computing) - Wikipedia, the free encyclopedia
Shell_(computing)
http://en.wikipedia.org/wiki/
Shutdown computer via XBMC - Page 2 - XBMC Community Forum
showthread.php?t=30096&highlight=shutdown+linux&page=2
http://xbmc.org/forum/
Slingbox, tu TV en todos sitios http://www.xataka.com/2005/10/24-slingbox-tu-tv-en-todossitios
Soporte multithread para h264 en mplayer
viewtopic.php?p=30869
h t t p : / / w w w. a n t i s c re e n e r s . c o m / p h p B B 2 /
Speed test: Airport Extreme lives up to its name http://arstechnica.com/journals/apple.ars/
2007/06/26/speed-test-airport-extreme-lives-up-to-its-name
Tango Desktop Project - Tango Desktop Project h t t p : / / t a n g o . f r e e d e s k t o p . o r g /
Tango_Desktop_Project
The libTorrent and rTorrent Project - Trachttp://libtorrent.rakshasa.no/
The VideoLAN Forums • View topic - UPnP AV support h t t p : / / f o r u m . v i d e o l a n . o r g /
viewtopic.php?f=7&t=8571
Top Ten Internet Languages - World Internet Statistics stats7.htm
TOSLINK - Wikipedia, the free encyclopedia
http://www.internetworldstats.com/
http://en.wikipedia.org/wiki/TOSLINK
Transmission http://www.transmissionbt.com/
TUAW Tip: Regular Expressions for Beginners - The Unofficial Apple Weblog (TUAW)
www.tuaw.com/2008/09/08/tuaw-tip-regular-expressions-for-beginners/
http://
Ubuntu 64 y la Alta Definicion « Forhaud, linux, sal y pimienta.
2007/06/30/ubuntu-64-y-la-alta-definicion/
http://forhaud.wordpress.com/
Ubuntu 64 y la Alta Definicion « Forhaud, linux, sal y pimienta.
2007/06/30/ubuntu-64-y-la-alta-definicion/#more-4
http://forhaud.wordpress.com/
Uncovering The Dark Side of P4P | TorrentFreak http://torrentfreak.com/uncovering-the-darkside-of-p4p-080824/
Unix shell - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Unix_shell
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
|
74
VIA Arena - Display Drivers http://www.viaarena.com/default.aspx?
PageID=420&OSID=45&CatID=3220&SubCatID=158
Visual reference to 19 fonts for cross-platform web design
h
www.webspaceworks.com/resources/fonts-web-typography/49/
VisualHub: Try different video resolutions & codecs visualhub/seeit.php
t
t
p
:
/
/
h t t p : / / w w w. t e c h s p a n s i o n . c o m /
Weekend Project: Soup Up Your Xbox Media Center
h t t p : / / l i f e h a c k e r. c o m / s o f t w a r e /
weekend-project/soup-up-your-xbox-media-center-302821.php
Wide XGA - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/WXGA
Wi-FiDocs/WPAHowTo - Community Ubuntu Documentation
community/Wi-FiDocs/WPAHowTo
https://help.ubuntu.com/
Wi-FiDocs/WPAHowTo - Community Ubuntu Documentation
community/Wi-FiDocs/WPAHowTo#WPA%20Supplicant
https://help.ubuntu.com/
wTorrent - Trachttp://www.wtorrent-project.org/trac/
wTorrentInstall http://www.wtorrent-project.org/trac/wiki/wTorrentInstall
X window manager - Wikipedia, the free encyclopedia
X_window_manager#Popular_X_window_managers
X.Org Wiki - Invisible mouse pointer
action=highlight&value=cursor
http://en.wikipedia.org/wiki/
h t t p : / / w i k i . x . o r g / w i k i / A d v a n c e d To p i c s FA Q ?
XBMC - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/XBMC
XBMC // Wiki // Hardware Accelerated Video Decoding h t t p : / / x b m c . o r g / w i k i / ?
title=Hardware_Accelerated_Video_Decoding#GLSL_.28OpenGL_Shading_Language.29
XBMC without desktop environment
http://xbmc.org/forum/showthread.php?t=32046
XBOX 360 vs PS3 (and Wii) - Power Consumption Report - hardCOREware.net
www.hardcoreware.net/reviews/review-356-1.htm
h t t p : / /
XvMC:Example CPU Savings - MythTV h t t p : / / w w w . m y t h t v . o r g / w i k i / i n d e x . p h p /
XvMC:Example_CPU_Savings
75|
CREACIÓ
D’UN
MEDIA
CENTER
AMB
SOFTWARE
LLIURE
ANNEX
Imatges de la UI final del media center
Visualització de sèrie per capitols
Filmoteca