domenica 23 novembre 2008

Linux Media Center: le funzionalità

Sono convinto che la tecnologia di oggi possa fare molte più cose di quanto ci offra il mercato dei media box. Un mini-pc da pochi soldi con porta ethernet e uscita tv può fornire una soluzione completa di intrattenimento domestico, se è fornito poi anche l'ingresso tv per la registrazione siamo a cavallo. Il problema è che configurazioni di questo tipo se ne trovano poche in giro di e si fa prima ad assemblarsene uno a mano.

Un media center come si deve dovrebbe avere le seguenti caratteristiche (in ordine di importanza):
  • uscita TV: elemento fondamentale per la connessione con la tv da salotto, non voglio nemmeno prendere in considerazione la visione dei film sul monitor del PC o sul portatile (anche se sdraiati sul letto con il portatile in panza è abbastanza sfizioso).
  • telecomando: senza il quale dovremmo accedere con una tastiera/mouse bluetooth (funzionerebbe sicuramente, ma sarebbe piuttosto ingombrante!)
  • porta ethernet: con doppio funzionamento: può andare su internet a scaricare i contenuti (audio, video, meteo, guida TV), ma utile anche nella intranet per connettersi al mediabox e accedere ai suoi contenuti, per cancellare, rinominare, configurare, recuperare, ecc.
  • ingresso TV: fondamentale se si vogliono registrare video da fonti esterne, come decoder satellitare/terrestre, input da un lettore DVD, videocamera, ecc.
  • porte USB: possibilità di collegare memorie esterne (dischi, penne) per visualizzarne i contenuti (e magari scriverceli pure)
  • server stampante/fax/fotocopiatrice/macchinetta del caffé...ma sto divagando...
Altre funzioni più in dettaglio, potrebbero essere le seguenti:
  • Visualizzazione di stream video, come le partite sui canali tv internet, o da youtube (chi ha detto youporn? :), o ancora meglio, le demo da demoscene.tv!
  • Ascolto di stazioni radio, sia italiane che internazionali
  • decoder digitale satellitare o terrestre
  • Videogiochi
  • client peer-to-peer sempre acceso
  • server NAS

domenica 14 settembre 2008

Quest for best audio player

Nella mia infinita ricerca per il player definitivo per linux, sto accumulando esperienze ed impressioni dei vari player.

Rhythmbox: il player di default mi è piaciuto subito, ma poi mi sono scontrato con un paio di imperfezioni (UI non molto precisa, se non suona non sai perchè) ed un grave bug che affliggeva una versione di gstreamer.

Songbird: lo sto per abbandonare: il fatto che non si riescano a cancellare dei file dalla UI mi irrita alquanto.

Audacious: lo sto per provare adesso...ha anche il supporto per last.fm che giudico fondamentale.

Configurazione di mldonkey



Dopo aver installato mldonley, bisogna notare che viene installato un file nella directory /etc/init.d dal nome mldonkey-server, il quale lancia il servizio mlnet come utente mldonkey creato appositamente durante l'installazione.

I file di mldonkey si trovano quindi nella cartella /var/lib/mldonkey, inclusi i file scaricati che si trovano in incoming/ e i file temporanei in temp/. Questo è piuttosto scomodo, per cui si consiglia di creare dei link simbolici in posizioni più comode come ad esempio Documenti/scaricati.

Da evitare quindi il lancio del servizio mlnet da utente normale/root, poichè si avrebbero 2 istanze attive contemporaneamente, oltretutto con file di configurazione e file in scaricamento differenti.

La configurazione procede manualmente effettuando i seguenti passaggi:

Modifica della password di amministrazione

Entrare in modalità configurazione con il comando
telnet 127.0.0.1 4000
(se questo comando non funziona, è perché è stato appena installato, bisogna riavviare la macchina attendere un minuto che torni su il servizio)
accedere come amministratore con il comando
auth admin ""
cambiare password con il comando:
passwd "nuova password"
si consiglia di inserire la stessa password con cui si accede alla propria rete wifi: non è facilissimo resettare la password di mldonkey per cui è necessario non dimenticarsela.

Attivare l'accesso a mldonkey dalla lan locale
set allowed_ips "127.0.0.1 192.168.0.255"
Per bloccare mldonkey eseguire il seguente comando (da verificare):
sudo -u mldonkey /etc/init.d/mldonkey-server stop

Utili consigli per ricompilare mldonkey e importare i download da a/emule, qui.

Configurazione del router

Per sapere quali porte aprire, consultare nel log di mldonkey, le voci che riportano "using port...", oppure, ancora più comodo, usare il comando "portinfo" da telnet.

I comandi possono anche essere invocati direttamente da sancho, nella tab Console.

Il comando portinfo ad esempio fornisce la seguente lista:

    --Portinfo--
Network   |  Port|Type
----------+------+-------------------
BitTorrent|  6882|client_port TCP
BitTorrent|  6881|tracker_port TCP
BitTorrent|  2844|dht_port UDP
Core      |  4080|http_port
Core      |  4000|telnet_port
Core      |  4001|gui_port
Donkey    | 11215|client_port TCP
Donkey    | 11219|client_port UDP


Per verificare la correttezza della configurazione delle porte sul router, si usa il comando id e si verifica se sui server connessi siamo con Id Alto (HighID) oppure no:

For 91.200.42.119:9939 (eMule Security No3) --->   87.20.226.181 (HighID)
For 91.200.42.47:3883 (eMule Security No2) --->   87.20.226.181 (HighID)
For 195.154.109.229:4232 (!! www.Sharing-Devils.org No.1 !!) --->   87.20.226.181 (HighID)
For 212.83.184.152:7111 (PeerBooter) --->   87.20.226.181 (HighID)


Recuperare i download da una installazione all'altra

I file da tenere sono quelli che iniziano con "urn_ed2k_" nella cartella /var/lib/mldonkey/temp, il file di configurazione dei download è il files.ini, da sovrascrivere a quello originale nella cartella /var/lib/mldonkey/.

Configurazione della GUI

Scaricare ed installare sancho, installare la lingua italiana.

Tentativo di configurazione Webcam Spycam 100


Nel tentativo di configurare la webcam in questione, la prima prova da fare è andare al sito del produttore per vedere se è supportata o presente un driver linux: niente da fare (qui i driver per windows).

All'immissione della webcam usb, ubuntu riconosce qualcosa, poichè spunta la seguente schermata:

Il comando dmesg riporta le seguenti informazioni:
usb 4-1: new full speed USB device using uhci_hcd and address 2
usb 4-1: configuration #1 chosen from 1 choice
Linux video capture interface: v2.00
/build/buildd/linux-2.6.24/drivers/media/video/stv680.c: [stv680_probe:1425] STV(i): STV0680 camera found.
/build/buildd/linux-2.6.24/drivers/media/video/stv680.c: [stv680_probe:1465] STV(i): registered new video device: video0
usbcore: registered new interface driver stv680
/build/buildd/linux-2.6.24/drivers/media/video/stv680.c: [usb_stv680_init:1546] STV(i): usb camera driver version v0.25 registering
/build/buildd/linux-2.6.24/drivers/media/video/stv680.c: STV0680 USB Camera Driver v0.25
/build/buildd/linux-2.6.24/drivers/media/video/stv680.c: [stv_init:374] STV(i): CIF is supported
/build/buildd/linux-2.6.24/drivers/media/video/stv680.c: [stv_init:392] STV(i): Camera has 0 pictures.
Si nota che:

* linux sembra riconoscere correttamente la webcam;
* il chipset riconosciuto è il STV0680;
* è riconosciuto il Common Intermediate Format.

Ho provato a vedere se il programma cheese riesce a comunicare con la webcam, ma niente da fare.

Dopo un paio di riavvii si è messa a funzionare...volevo catturare con cheese la schermata che da di default quando non è attaccato nulla, quando, sorpresa!, ha funzionato!

Questa è una foto di prova...


da notare che inverte i colori: lo sfondo normale è questo qui, e l'effetto curioso che la seconda iterazione (ho fotografato l'output di cheese stesso) mostra invece i colori corretti.

Ho provato con l'applicazione camorama, che sembra meglio di cheese solo per quanto riguarda i controlli sull'immagine (anche se ho visto che funziona solo il controllo Luminosità). Sulla pagina about di camorama leggo che sfrutta video4linux. Lanciando il gestore di pacchetti synaptic e ricercando la stringa "v4l" escono fuori un paio di applicazioni interessanti:
  1. dov4l
  2. v4l-conf
che promettono ambedue di configurare le impostazioni dei dispositivi v4l.

Li installo entrambi, poi noto che non installano nessuna applicazione nel menù di gnome, quindi bisogna esplorare le proprietà del pacchetto installato di synaptic.

Del secondo pacchetto noto l'applicazione v4l-info, che lanciata fornisce il seguente output:
### video4linux device info [/dev/video0] ###
general info
VIDIOCGCAP
name : "STV0680"
type : 0x1 [CAPTURE]
channels : 1
audios : 0
maxwidth : 352
maxheight : 288
minwidth : 176
minheight : 144

channels
VIDIOCGCHAN(0)
channel : 0
name : "STV Camera"
tuners : 0
flags : 0x0 []
type : CAMERA
norm : 0

tuner
ioctl VIDIOCGTUNER: Invalid argument

audio
ioctl VIDIOCGAUDIO: Invalid argument

picture
VIDIOCGPICT
brightness : 32767
hue : 32767
colour : 32767
contrast : 32767
whiteness : 0
depth : 24
palette : RGB24

buffer
VIDIOCGFBUF
base : (nil)
height : 0
width : 0
depth : 0
bytesperline : 0

window
VIDIOCGWIN
x : 0
y : 0
width : 352
height : 288
chromakey : 0
flags : 0
Ho provato a modificare i parametri hue, color da linea di comando, ma non sembra applicarli.

Per quanto riguarda lo scattare le foto, il dispositivo prevede 5 modalità di funzionamento:
  1. Hr: High Resolution
  2. Ct: Video clip
  3. Cl: Clear all
  4. St: Self-timer
  5. Lr: Low resolution
si passa da una modalità all'altra premendo il tasto grigio, e si attiva mediante il bottone lilla.

Se l'illuminazione per una foto è scarsa, la webcam protesta con un rumore basso, altrimenti il rumore è più squillante ed il contatore delle foto rimaste decrementa di uno.

Il problema è quando si tenta di importare le foto: f-spot crasha miseramente. Inoltre, staccando e ricollegando la webcam i contatori delle foto si resettano, come se le perdesse tutte: forse con un paio di batterie dentro è meglio.

UPDATE del 11-04-2009

Non so cosa ho fatto l'altra volta per farla funzionare, ma adesso la schermata che mi da cheese è la seguente:
strano, perchè /dev/video0 viene anche creata...

sabato 19 gennaio 2008

Sessione di configurazione a vuoto...

Dal sito elart è disponibile una pagina di utili consigli per ottimizzare ubuntu. Ho provato a seguirli uno per uno, per vedere l'impatto di ciascuna singola modifica sul sitema.

Risultato finale...un vero disastro!

La premessa: ho preso i tempi di avvio della macchina come test per la velocità, così come una pagina di test per misurare la velocità di rete.

Valori iniziali:
  • dall'avvio al prompt dell'utente: 30"
  • dall'invio della password all'apertura di un file di testo posto sul desktop: 30"
  • pagina di test di rete: ~ 1000ms

Cominciamo dall'inizio:

  • Disabilitare l'IPv6:
pagina di test: ~ 900ms, guadagno di un decimo di secondo

  • Abilitare l'esecuzione concorrente dei processi di avvio:
il sistema carica, ma da problemi di HAL (rimosso)

  • Disabilitamo i caratteri orientali in Firefox
non vedo miglioramenti di sorta, ma lo lascio perchè non ho interesse a visualizzare pagine con caratteri non latini


  • Installiamo preload:
  • Velocizziamo il caricamento dei programmi tramite prelink:
non installati: non mi va di aggiungere tempi di attesa all'avvio

  • Ottimizziamo l'uso della RAM
ho 2 giga di ram e la swap non mi viene mai usata...

  • Installare un kernel a bassa latenza (serve solo a chi usa Ubuntu per comporre musica)
non provato...ne varrà la pena?

  • Modificare il file host
non effettuato: il file è leggermente diverso, è più o meno già così

  • Ottimizziamo i parametri del disco rigido di tipo ATA/IDE non serve con dischi riconosciuti come sdx
dischi riconosiuti come sdx....ho provato ad installare sdparm, ma la lista delle opzioni sembra piuttosto complicata...

  • Ottimizziamo ulteriormente l'accesso al disco su partizioni ext3
fatto: non si vedono miglioramenti nelle prestazioni (ma l'ho lasciato)

  • Ottimizzare/riottimizzare il processo di boot (avvio)
fatto: non si vedono miglioramenti nelle prestazioni (?)


ho fatto altre modifiche, tipo mettere noatime, nodiratime nel file /etc/fstab, ma niente di che:


>sudo hdparm -Tt /dev/sda6
 Timing cached reads:   1928 MB in  2.00 seconds = 964.29 MB/sec
 Timing buffered disk reads:  118 MB in  3.05 seconds =  38.70 MB/sec


>...con noatime

 Timing cached reads:   2010 MB in  2.00 seconds = 1005.74 MB/sec
 Timing buffered disk reads:  116 MB in  3.01 seconds =  38.57 MB/sec

>...con nodirtime
 Timing cached reads:   2022 MB in  2.00 seconds = 1011.18 MB/sec
 Timing buffered disk reads:  116 MB in  3.01 seconds =  38.59 MB/sec


>...attivando data=writeback

 Timing cached reads:   1940 MB in  2.00 seconds = 970.61 MB/sec
 Timing buffered disk reads:  118 MB in  3.05 seconds =  38.67 MB/sec


Conclusioni:
è stata una perdita di tempo netta, me lo scrivo qui in modo che la prossima volta che mi viene l'impulso di ottimizzare il sistema, ci penso 1000 volte!