Friday, May 12, 2006

Costruire un Media Center con Linux e Freevo (prima parte)

Un Media Center (MC) e' un nuovo tipo di computer pensato per il vostro soggiorno piuttosto che per il vostro ufficio. Ci sono vari modelli di MC disponibili sul mercato e la maggiorparte di questi sono basati su una versione ad-hoc di Windows XP chiamata perlappunto Windows Media Center Edition.

Diversamente da un classico personal computer, l'interazione con un MC avviene principalmente attraverso il telecomando e lo schermo televisivo. Naturalmente e' possibile aggiungere al MC una tastiera senza fili per effettuare la scrittura di testi qualora fosse necessario.

Il tipico caso d'uso di un MC coinvolge uno o piu' utenti che nel soggiorno (o dovunque sia stato installato l'impiato radio-televisivo domestico) vogliono fruire di contenuti multimediali che possono arrivare da fonti disparate quali DVD, Video CD, fotocamere e videocamere digitali, radio, TV analogiga o digitale terrestre e/o satellitare, rete, disco rigido etc. A tutto questo si affianca la possibilita' di sfruttare la rete ed il processore per svolgere altre attivita' come ad esempio navigare sul Web o leggere la posta elettronica. Naturalmente tutte le applicazioni dovranno avere un'interfaccia utente che permette il controllo tramite telecomando e che sia ben visualizzata su uno schermo TV

Gli ingredienti del nostro MC sono di 3 tipi: hardware, software e connessione. La connessione alla rete Internet dovra' essere preferibilmente a banda larga e con tariffa flat. Utilizzare il modem a 56K non garantisce una banda sufficiente per la fruizione di contenuti multimedia mentre una ADSL a consumo sarebbe troppo costosa. ADSL flat 2Mb e' una scelta ragionevole.

Per quanto riguarda l'hardware di base abbiamo bisogno di: scheda madre, CPU, RAM, disco, scheda video con TV/OUT, scheda audio, scheda sinto TV/FM, scheda di rete, lettore CD/DVD e telecomando con apposito sensore. Naturalmente come componenti opzionali possiamo prevedere un masterizzatore DVD, un lettore di memorie per macchine fotografiche digitali, una catena amplificatore/diffusori all'uscita della scheda audio etc. etc.



Per realizzare un MC veramente performante sarebbe ideale utilizzare componenti nuovi come ad esempio un Pentium4 con 1GB di RAM. In realta' in questo caso voglio risparmiare denaro utilizzando vecchi componenti ricavati da PC della generazione precedente. Questo mi permette di dimostrare che il nostro vecchio hardware che magari ci sembra obsoleto puo' trovora una nuova collocazione spostandosi dall'ufficio al salotto. La configurazione che propongo qui prevede:

* Scheda Madre Microstar xxyy con audio on-board
* CPU PIII a 800MHz
* 320 MB RAM

* Disco rigido da 20GB (si', e' piccolo ma voi potete comprarne uno da 100GB se volete)
* Scheda Video Matrox Millenium G400 Dual Head
* DVD/CD Combo Pionieer
* Scheda di rete PCI 10/100MB
* Telecomando Technisat TS35 con apposito sensore per porta seriale
* Scheda Hauppauge WinTV GO



All'interno della galassia delle distro Linux ho scelto la Fedora Core 3. Perche'? Le ragioni sono assolutamente opinabili. Ho conosciuto Linux distribuito come RedHat 4 o qualcosa del genere e non mi sono mai allontanato troppo.

A meno che non vogliate comprare uno schermo VGA LCD da 26'' sarete costretti ad utilizzare il vostro televisore come 'terminale' per il media center. Questo puo' essere fonte di problemi dato che avrete bisogno di una scheda video con il TV-out (facilmente reperibile) e avrete bisogno di attivare da Linux la funzione TV-out (cosa non banale).

Dopo qualche indagine in rete ho scoperto che fra le vecchie schede supportate da Linux una delle piu' quotate e' la Matrox Millenium G400 Dual Head. A questo scopo me ne sono procurata una usata. Il fatto che ci sia una certa documentazione su questa scheda non significa che sia facile ottenere il TV-out, anzi.

La documentazione di riferimento per l'uso di freevo con questa scheda la trovate qui. Fondamentalmente, avete bisogno di 3 strumenti:

* i sorgenti del kernel da ricompilare
* il tool fbset
* il tool matroxset

Dovete ricompilare il kernel in modo da usare il device framebuffer. Non sto qui a spiegare come ricompilare il kernel perche' e' un argomento abbastanza complesso. Inoltre, sappiate che in caso di errori potreste causare il blocco del vostro sistema al reboot. Quindi questo passo e' solo per gli esperti o per chi se la sente di rischiare. Il blocco eventuale non e' irrimediabile, e' sempre possibile fare il boot con un vecchio kernel e ripartire da li, ma la cosa richiede una minima esperienza. Nel caso di Fedora potete trovare utili indicazioni riguardo la compilazione del kernel su questo sito. Come settaggi per il make del kernel avete bisogno di:

Code maturity level options > Prompt for development...
Processor type and features > MTRR support
Character Devices > I2C support > I2C support
Character Devices > I2C support > I2C bit-banging interfaces
Character Devices > I2C support > I2C device interface
Character Devices > Matrox g200/g400
Console drivers > Frame-buffer support > Support for frame buffer devices
Console drivers > Frame-buffer support > Matrox acceleration
Console drivers > Frame-buffer support > G100/G200/G400/G450 support
Console drivers > Frame-buffer support > Matrox I2C support
Console drivers > Frame-buffer support > G400 second head support

In realtà alcuni di questi settaggi per il kernel 2.6 sono in posizioni diverse rispetto a quelle riportate qui che sono valide per il kernel 2.4. Comunque con la funzione 'search' di menuconfig dovreste localizzarli tutti. Personalmente ho compilato in modo 'statico' ogni cosa riguardante la matrox e funziona. Probabilmente anche l'opzione 'modulo' funziona ma non ho provato.

Dopo il reboot con il nuovo kernel

matroxset -f /dev/fb1 -m 0 # this disconnects fb1 from outputs
matroxset -f /dev/fb0 -m 3 # this connects fb0 to both outputs
matroxset -f /dev/fb0 -o 1 1 # this sets fb0 to PAL output

A questo punto la dual head manda il segnale al TV. Con fbset aggiustate la risoluzione:

fbset -fb /dev/fb0 -xres 800 -yres 600






La privacy sul nostro disco (prima parte)

Usate un portatile aziendale e non volete che i vostri colleghi possano accedere ai vostri dati? Volete navigare senza lasciare tracce sul disco di quello che avete visto? Siete paranoici e non volete che qualcuno possa recuperare file che voi avevate cancellato? Non dovete vergognarvi, state solo prendendo coscienza di quanto sia difficile tenere per voi ciò che volete tenere per voi, e badate bene che tenere i propri dati segreti è un diritto. Non trattiamo qui di come tutelare la privacy rispetto ai possibili spioni remoti, di chi usa i cookie per tracciare le vostre sessioni di navigazione, di chi registra i risultati dei motori di ricerca che voi cliccate, per non parlare poi di quanto tecnicamente facile sapere tutto quello che visitiamo sul web. No, qui parliamo solo di come tenere nel nostro disco una parte 'segreta' nella quale mantenere ciò che vogliamo, come ad esempio la cache del nostro browser web.
Cominciamo a dire che ci serve un browser altamente configurabile, come Mozilla Seamonkey 1.0, il cui requisito fondamentale è che consenta di impostare in quale directory i dati utente, come la cache, la history ecc. vengono salvati. Ho trovato che il più blasonato cugino Firefox non permette questa scelta, e sebbene permetta di cancellare tutte le informazioni di cache e navigazione in un colpo solo, non ci possiamo fidare della cancellazione. Niente viene veramente cancellato nel nostro disco e ci sono tool in grado di recuperare qualsiasi cosa somigni ad una struttura dati che noi credevamo di aver rimosso.

Altro tool fondamentale da installare è un disco criptato. Possiamo prendere ad esempio TrueCrypt che è un software open source, disponibile per linux e per windows, e facilmente utilizzabile, che trasforma un file locale in una unità logica o volume, che può essere montata nel sistema come un disco.
Creiamo un nuovo volume e qui abbiamo 2 scelte: un hidden volume o uno standard volume. Per i più paranoici consiglio l'hidden volume che in pratica sono due volumi uno dentro l'altro, ognuno con una sua password. Dentro il volume esterno mettete dei dati pseudo-importanti, che sembrano segreti, ma che a voi non importano veramente. In questo modo, se qualcuno vi costringe a rivelare la password scoprirà i finti dati, ma non potrà mai capire che c'è un altro volume nascosto.
Se non avete problemi con persone minacciose optate per il volume standard. Tutti potranno sapere che avete un volume criptato, ma a voi questo non importa.

Scegliete un filename che verrà usato per contenere il volume e scegliete poi quale algoritmo usare per la cifratura. Il programma ne propone molti e vi consiglio di cercare in wikipedia i vari dettagli su questi ultimi.

Scegliete poi una dimensione (ad esempio 2 GB) ed una luuuuuunga password che verrà usata volta per volta per creare la chiave con cui i dati saranno cifrati, e che non viene mai salvata nel disco. Ricordatevi che una password lunga e complessa rende impraticabili gli attacchi brute force.

Scegliete un tipo di file system (FAT o NTFS) e lanciate la creazione del volume.

A questo punto nella finestra principale di TruCrypt scegliete una lettera di unità (ad esempio F:), selezionate il file che contiene il vostro volume appena creato e montatelo con il tasto Mount.

A questo vi chiederà la password, e se corretta, il volume sarà montato nel sistema.
Il più è fatto, ora non resta che creare un profilo di Mozilla che lavora solo dentro il nostro volume criptato ... (continua)