dimecres, 11 de març del 2015

Afegir un disc dur extern a la Raspberry PI 2

Primer les males noticies: NO es pot substituir TOTALMENT la tarja MicroSD per un disc dur extern. la Raspberry sempre necessita arrencar amb la tarja MicroSD.

I ara les bones: SI que es pot substituir PARCIALMENT. L'instal·lació de l'OpenElec a la tarja o al disc dur consta de dues particions: System i Storage. A System tenim el que indica el seu nom, el sistema operatiu, i a Storage les carpetes pròpies del Kodi. El que si podem fer és moure la partició Storage a un altre disc i canviar alguna cosa per a que vagi a buscar-la al nou lloc.

Així doncs, necessitarem una memoria USB o bé un disc dur extern USB. Jo utilitzaré un disc dur SSD i una caixa externa SATA Conceptronics per adaptar un disc SATA a USB.


Insertem el disc SSD al connector SATA de la caixa:


Finalment tanquem la caixa i atornillem:


Ara hem de copiar la partició Storage al nou disc USB. Per a fer-ho hi ha varies maneres. Els que ja en sabeu, segurament ho fareu com més us resulti còmode. Per exemple, amb un PC amb Linux:


  • Extraieu la tarja microSD de la RaspBerry i connecteu-la al vostre ordinador. Connecteu-hi també el disc USB.

  • Mitjançant la comanda parted -l o fd comproveu a quines particions ha muntat els discs el sistema.

  • Creeu una imatge de la partició storage de la tarja microSD al vostre disc dur del PC amb la comanda dd, al paràmetre if s'indica la partició amb el nom designat pel vostre sistema. Al paràmetre of s'indica el nom del fitxer corresponent a la imatge:

    dd if=/dev/mmcblk0p2 of=mmcblk0p2.img bs=4096 conv=notrunc
  • Graveu la imatge creada a la partició del disc dur. Al paràmetre if s'indica el nom del fitxer amb la imatge i al of, la partició destí del vostre disc dur USB:

    # dd if=mmcblk0p2.img of=/dev/sdb1 bs=4096 conv=notrunc
  • Acabeu amb la comanda sync per a que es confirmi la copia.

  • Desprès amb la comanda gparted, podeu redimensionar la partició nova per a que abasti tot el disc dur si voleu, o crear més particions per a dades etc..
Ara ja podem connectar-ho tot a la Raspberry:
  • Connecteu la tarja microSD.
  • Connecteu el disc dur USB a la Raspberry
  • Engegueu la Raspberry
  • Connecteu-vos a la Raspberry via ssh (espero que hagueu seleccionat la opció d'instal·lació del openssh quan heu instal·lat l'openElec), per a fer-ho, aneu al menu de Configuració del Kodi, submenu sistema i busqueu la IP.

    ssh root@192.168.1.33 (això és un exemple, la IP que us hagi assignat el router)
    password: openelec

  • un cop a dins,  localitzeu les particions de la tarja microSD i la del disc dur USB amb df -h:
  • # df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    none                    189512     89556     99956  47% /dev
    /dev/mmcblk0p1          127730     99214     28516  78% /flash
    /dev/mmcblk0p2          774064    773968         0 100% /storage
    /dev/loop0               89472     89472         0 100% /
    none                    191008         0    191008   0% /dev/shm

    Ara heu de modificar el fitxer cmdline.txt que es troba a la partició flash muntada a l'arrel. Però compte, si intenteu editar aquest fitxer no us ho permetrà el sistema, ja que, la unitat ha estat muntada només de lectura (Read-Only). Per a salvar a aquest problema heu de re-muntar la partició amb la comanda:

    # mount -o remount,rw /flash

  • Ara si, ja el podem modificar:

    vi /flash/cmdline.txt

  • El fitxer conté una única línia de la següent forma:

    boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2 ssh quiet

  • El paràmetre boot indica la partició del sistema que es troba a la tarja microSD. Aquest NO s'ha de canviar, altrament, el sistema no es podria carregar.

  • El segon paràmetre disk, l'heu de substituir per la partició corresponent al disc dur USB que ha muntat la Raspberry, per exemple en el meu cas: /dev/disk1 . Així quedaria:

    boot=/dev/mmcblk0p1 disk=/dev/disk1 ssh quiet

  • Guardem el fitxer i reiniciem amb la comanda: # reboot

I ja està!!! Si tot ha anat bé, en reiniciar s'engegarà Kodi i anirà a buscar les dades al disc dur USB. Es nota per la llum del disc dur que denota el seu us.

Anàlisi final.

Realment jo no he notat massa diferència en quant a velocitat, clar que per molt disc dur SSD que sigui, el coll d'ampolla deu ser a la interfície USB 2.0 de la RaspBerry (no, no és 3.0, però la caixa del disc dur extern que tinc tampoc ho és, així que m'és igual).
Tenint en compte això potser no caldria que fos un disc dur SSD si no hem de guanyar velocitat. No sembla que pugui activar TRIM amb la Raspberry i això perjudica la vida útil del disc SSD.



dimecres, 4 de març del 2015

Experiència d'instal·lació d'un media center a la Raspberry Pi 2 (2a. part)

com dèiem ahir...

Abans de procedir amb la instal·lació, em vaig descuidar un element que potser necessitareu si la vostra Tele o Home Cinema no suporta el sistema HDMI CEC i no podeu utilitzar el comandament de la tele per navegar per l'XBMC. Aleshores heu d'aconseguir un receptor IR com ara aquest: Flirc o algun altre receptor Bluetooth endollat a un dels 4 ports USB i el corresponent comandament.

Instal·lació del Sistema Operatiu


Bé, ja tenim els diferents elements preparats. Abans d'engegar-ho i connectar-ho tot, millor que gravem el sistema operatiu a la tarja MicroSD. Sense això, la Raspberry Pi 2 resulta completament inútil. 
Recordem que el que volem és un Media Center, per tant hem de gravar-hi una distro linux amb el XBMC (Kodi). N'hi ha més d'una. Podem escollir entre OpenElec, Raspbmc i Xbian. Jo vaig escollir OpenElec per que em resultava més familiar que les altres però qualsevol val. OpenElec i Raspbmc són les més similars en quant a rendiment.
Enlloc d'instal·lar el S.O. a sac, una manera més senzilla per a principiants és instal·lar el NOOBS. És un instal·lador que et deixa triar quina de les distros vols al moment d'engegar. Inclús venen tarjes MicroSD pre-instal·lades amb el NOOBS. El seu funcionament és senzill. Et descarregues el NOOBS comprimit al PC. Has de formatejar la tarja MicroSD amb un programa que es diu SD Formatter 4.0 i copies el contingut descomprimit del NOOBS. Les instruccions precises les trobareu en aquesta pàgina: http://www.raspberrypi.org/help/noobs-setup/

Jo vaig preferir instal·lar el OpenElec directament per que la versió de l'OpenElec que conté el NOOBS és inferior (4.0.5 < 5.0.5). Almenys això sembla del que es desprèn de la pàgina web  de de descàrrega: http://www.raspberrypi.org/downloads/

Instal·lar OpenElec a la tarja MicroSD


Recordeu que necessitareu l'adaptador a tarja SD i un lector de tarjes SD connectat a l'ordinador si aquest no en té.
  • Baixeu-vos la imatge del OpenElec d'aquesta pàgina: http://openelec.tv/get-openelec Evidentment, el fitxer que correspon amb el vostre model de Raspberry Pi. En el meu cas, com és el model 2, vaig baixar-me el que indicava amb el títol següent, i dels dos fitxers que hi ha a sota, vaig triar el que indica Diskimage: 

ARMv7 builds - RPi2 ARMv7 quad core models (Model B 1024MB)

  • A la mateixa pàgina trobareu un link a les instruccions detallades per gravar la imatge, tant en Linux, Windows o Mac: http://wiki.openelec.tv/index.php/HOW-TO:Installing_OpenELEC/Creating_The_Install_Key#tab=DiskImage
  • Per a Mac, vaig tenir problemes a l'hora de gravar la imatge a la tarja. Em donava l'error: Permission denied. Vaig provar varies solucions que vaig trobar per internet però cap va funcionar així que vaig desistir i vaig acabar fent-ho amb Linux.
  • Bé, doncs, un cop descarregada la imatge al vostre PC, aneu a la carpeta on s'ha guardat i descomprimiu el fitxer: 
gunzip -d OpenELEC-RPi2.arm-5.0.0.img.gz

  • Ara heu d'averiguar la etiqueta que ha assignat el vostre sistema a la unitat on teniu muntada la tarja microSD. Per a fer-ho:
parted -l

  • Us sortirà un llistat amb les diferents particions. Heu de buscar la de la tarja SD, per exemple: /dev/sdb
  • Ara, amb la comanda següent es gravarà la imatge amb el OpenElec a la tarja. Compte no escolliu una altra partició per error, assegureu-vos de que és realment la que té muntada la tarja SD, ja que, la següent operació n'esborrarà completament el seu contingut:
dd if=OpenELEC-RPi2-5.0.0.img of=/dev/sdb bs=4M

  • Finalment executeu la següent comanda per assegurar que es sincronitzen els canvis:
sync

Nota: no us prengueu les instruccions al peu de la lletra. En funció de la vostra distribució Linux poden canviar lleugerament. Es possible que hagueu de desmuntar la unitat abans de gravar-hi la imatge. També pot canviar la descripció de les particions, per exemple si teniu dues particions a la tarja /dev/sdb0 o /dev/sdb1 etc..

Un cop gravat heu de poder veure el contingut de la tarja amb tot de fitxers anant a  la carpeta amb:

 cd /media/<NOM DE LA TARJA>
ls -l

Engeguem la Raspberry!!

Tot ha anat bé i ja tenim la tarja gravada a la tarja MicroSD. És hora d'engegar la Raspberry:

  • Fiqueu la tarja microSD a la Raspberry. La ranura costa de veure, és literalment al cul de la placa, a la cara contrària d'on hi ha els ports USB per la part posterior de la placa. Empenyeu la tarja fins que faci 'click'. Una imatge val més que 1000 paraules:
  • Connecteu el cable Ethernet del router a la tarja (2).


  • Connecteu el cable HDMI al lateral de la tarja (3) i l'altre extrem a la televisió:



  • Connecteu l'adaptador microUSB al costat de l'HDMI (4) i l'altre extrem a l'USB de la televisió o bé a un endoll adaptador a la corrent:



  • Ja ho tenim això. Quan s'engega a la corrent s'encenen els leds a la part de davant de la Raspberry. Aquest és l'aspecte de la meva Raspberry preparada:



Primer startup


Si tot va bé, els leds comencen a fer pampallugues i no tardarà en aparèixer la pantalla de l'OpenElec i finalment el menú del Kodi (XBMC) amb indicacions per on començar. 
A partir d'aquí tot es configura com un XBMC normal. Si voleu, podeu afegir fonts de pel·lícules i sèries via Samba al vostre servidor i començar a omplir la biblioteca però jo no he optat per això. En aquest cas és més adequat que mai afegir el plugin PleXBMC del qual vaig parlar al meu anterior post.
Recordeu que PleXBMC és un client de Plex per al XBMC. Això vol dir que serà el servidor Plex Media Server, l'encarregat de mantenir la biblioteca i actualitzar les metadades deslliurant d'aquesta tasca a la Raspberry i el que és més important, si no es guarda la biblioteca a la tarja microSD de la Raspberry menys accessos d'escriptura s'endurà, i per tant més durarà.
A més serà el Plex Media Server qui transcodificarà el video al servidor i enviarà el video ja 'cuinat' a la Raspberry. Això té avantatges: el servidor és més adequat per a fer això (pressumptament més potent) al ser una operació que requereix més CPU. Així descarrega d'aquesta feixuga tasca a la  Raspberry que adopta una postura més passiva. A més, els còdecs que la Raspberry no suporti serà Plex qui els transcodificarà, eliminant aquesta restricció. Com veieu tot són avantatges.
D'altra banda, jo he connectat el cable de corrent microUSB a l'USB de la tele. D'aquesta manera quan engego la tele, s'engega automàticament la Raspberry i carrega el Kodi. I, de la mateixa manera, quan apago la tele s'apaga la Raspberry.

Doncs ja està! Ara només resta configurar el Kodi al vostre gust. Afegir un skin, plugins etc... L'augment de rendiment de la nova Raspberry respecte models anteriors es nota i no cal fer "retallades" per a que vagi més lleuger com s'acostumava a fer. Potser canviar el sistema a una memòria USB seria un pròxim upgrade a plantejar-se. Ja ho veurem. De moment a gaudir-ne!



dimarts, 3 de març del 2015

Experiència d'instal·lació d'un media center a la Raspberry Pi 2

Aquest cap de setmana he preparat la Raspberry Pi 2 com a media center en substitució d'un miniPC i ara us explicaré com ha estat la meva experiència.
Però primer, per als que els hi pugui venir de nou us posaré en antecedents. 

Que és una Rasberry Pi?


Per als que no n'han sentit a parlar, una Raspberry Pi és, en paraules de la Wikipedia, un ordinador monoplaca de baix cost. Una placa amb el seu processador i la seva memòria que consumeix molt poc i costa menys de 50 eur. Clar, no és un ordinador per al consumidor no iniciat, doncs només inclou la placa pelada, ni tan sols amb cable per endollar, ni tancada en una capsa de disseny. El primer model A va aparèixer al 2012 i va tenir un gran èxit. Es basa en un processador ARM, el primer era de 700 MHz i una RAM de 256 Mb. El model B i B+ van doblar la memòria a 512 Mb i el model 2, el més nou que van comercialitzar a principis de febrer,  és de 4 nuclis a 900 MHz amb 1Gb.
La placa consta a més d'uns quants ports USB, un HDMI, Ethernet i una ranura per a tarjes MicroSD.
Resumint, les especificacions de la Raspberry PI 2 són:

SoC: Broadcom 2836
CPU: Quad-core ARM7 800MHz
GPU: Videocore IV 250MHz
Memory: 1GB
GPIO: 40pin
Ports: 4x USB 2.0, 100BaseT Ethernet, HDMI, MicroSD card
Size: 85.60 × 56.5mm (about 3.2 x 2.1-inch

Per a que es pot utilitzar?


Des que va sortir el primer model la comunitat l'ha fet servir per a tota mena d'experiments degut a la seva gran versatilitat i baix preu. Un dels usos més populars és el de Media Center. El seu baix consum i el fet de no dur ventilació, la converteix en quelcom completament silenciós i això la fa ideal per col·locar-la prop del televisor. Han aparegut varies distros Linux amb el media center més popular XBMC (ara Kodi). Però a banda d'aquest ús, també hi ha altres tipus de projectes, com per exemple, utilitzar-la com a una retro-màquina de videojocs, com a NAS, i altres aplicacions en domòtica.

Ingredients per a un Media Center.


Però aquest cop ens ocuparem de convertir la Raspberry en un Media Center. Tot i que els models antics també eren aptes per això, ara que ha aparegut el model 2,  que és uns 6 cops més potent , m'he decidit a provar-ho.

La placa t'arriba amb dins una capsa de cartró tipus de les de paracetamol. A dins hi ha un senzill tríptic amb unes mínimes instruccions i la placa. I prou. La resta d'elements t'has d'espavilar en conseguir-los tu mateix. Aquesta és la llista de la compra:
  • La Raspberry Pi 2 evidentment
  • Una capsa de la mida aproximada d'un paquet de tabac
  • Un cable/adaptador MicroUSB a USB
  • Un adaptador d'USB per endollar a la corrent (desprès pot ser no caldrà si es pot endollar a l'USB de la tele)
  • Un cable HDMI
  • Un cable Ethernet 100BaseT (o sigui de xarxa per endollar-la al router o switch)
  • Una tarja MicroSD (i un adaptador a SD per a grabar-la)

La capsa


La capsa on encabir la placa (si és que la voleu ficar dins d'alguna capsa i no deixar nua) pot ser qualsevol cosa. Si mireu per internet la gent s'ha empescat tota mena de capses: des d'un paquet de tabac fins a una capsa feta amb fitxes de Lego. Jo vaig pensar en encabir-la en una capsa de les antigues cintes de casset del segle passat. Em va semblar irònic. És una mica justa i s'ha de foradar pels laterals per a poder endollar els cables i els ports USB també sobresurten, però de moment em serveix fins a trobar quelcom millor, o un model B més ben acabat.



El cable/adaptador MicroUSB a USB



El cable per a portar corrent a la Raspberry és un microUSB i l'altre extrem ha de ser un endoll o bé un USB. Jo ja el tenia i segur que vosaltres també el podeu treure de qualsevol altre gadget, com ara alguna bateria que tingueu per casa.
També necessitareu un adaptador de corrent USB si voleu endollar-ho directament a la corrent. En primera instància vaig utilitzar el d'Apple o, si en teniu, el del Kindle. Aneu amb compte amb això per que no tots van bé. Finalment, el vaig treure i vaig endollar directament a la sortida USB de la tele, tot i que el manual no ho recomana. D'aquesta manera s'engega i s'apaga conjuntament amb la tele i no cal més interruptors. És molt pràctic.

El cable HDMI


La Raspberry té una sortida HDMI lo qual la permet endollar fàcilment a les teles actuals. A més, suporta el protocol HDMI CEC. Això vol dir que, si el software ho permet (i el Kodi si) pots controlar-lo i moure't pel menú, amb el mateix comandament de la TV!!! Això és molt interessant ja que, no ho solen permetre els PC normals de sobretaula. Un comandament menys! 

El cable Ethernet


El cable anirà al router o switch per connectar la Raspberry a Internet.




La tarja MicroSD


Necessitariem una tarja microSD d'uns 8Gb que farà "de disc dur" per a la Raspberry. Per defecte, la Rasp anirà a buscar a la tarja microSD per carregar el sistema operatiu. Més endavant, però, ja veurem de canviar el sistema a una memòria USB externa que augmentar el rendiment (http://picodotdev.github.io/blog-bitix/2014/01/iniciar-la-raspberry-pi-desde-un-disco-o-memoria-usb/) però això ja serà en un altre post/projecte. D'entrada utilitzarem una tarja MicroUSB i us recomano que sigui bona. El problema d'aquestes tarjes és que, amb les successives operacions d'escriptura, no duren gaire. A ser possible que la tarja suporti el que anomenen, wear leveling. Això vol dir que, al escriure, va distribuint l'escriptura per diferents punts per tal d'augmentar-ne la duració. I com més gran sigui més superfície pot escriure i per tant també durarà més. 
Jo he optat per aquesta: SanDisk Extreme PRO 8GB UHS-1
No oblideu que també necessitarem un adaptador a SD per a poder grabar-hi el sistema.

Per avui ja n'hi ha prou. En el proper episodi (digo post) procedirem amb la instal·lació.
Fins aviat!