Gentoo - Installare VDR con Gentoo partendo da zero

Da VDR-Italia.

Installare VDR con Gentoo partendo da zeromodifica


Una vdrbox non è altro che un PC con sistema operativo Linux, addibito esclusivamente per l’ uso multimediale, collegato alla televisione, senza l’ obbligo di usare tastiere, mouse e monitor, ma solo un semplice telecomando.


Indice

Introduzione

Per l’ operazione usiamo una distribuzione Gentoo, che permette una flessibilità e comodità che altre non permettono, oltre all’ ottima disponibilità di plugins nel suo portage. L’ installazione verrà spiegata passo passo partendo da un PC pulito, senza sistema operativo così da evitare fraintendimenti.

Hardware richiesto:

  • Un Personal Computer (ovviamente)
  • Un disco fisso il più capiente possibile
  • Per l’ installazione una tastiera ed un monitor (per poi… metterli in ripostiglio)
  • Una scheda DVB-S FF (Full Features), in pratica con decoder MPeg integrato
  • Un cavo per collegare la scheda DVB-S alla televisione
  • Un ricevitore infrarosso + telecomando (altrimenti serve la tastiera)


Inizio

Andate sul sito di Gentoo e scaricare il cd di installazione, va bene pure il minimal che si scarica in pochi minuti e non ha l’ installazione grafica, che attualmente crea solo problemi e danni. Se avete tempo e scaricate il CD completo, potete fare l’ installazione utilizzando l’ interfaccia di Gnome, cosa molto utile se dovete seguire una guida, visto ha pure un browser.

Inserite il CD, avviate il sistema attivando nel bios, se serve, il boot da CD e… partiamo con l’ installazione. Al prompt, premete invio, aspettate che parta il processo init e quando richiede il codice tastiera digitare 21 e invio, che corrisponde a quella italiana. Finito di caricare i moduli ed il kernel si passa al prompt dei comandi e da quì inizia l’ installazione vera e propria. Nel caso non foste stati abbastanza veloci nel digitare il vostro codice tastiera, basta usare questo comando per impostarla da console:

   # loadkeys it


Configurazione della rete

Per prima cosa controllate se la vostra scheda di rete è stata riconosciuta

   # ifconfig all

ne caso non sia stata riconosciuta, non rimane che caricare il modulo corrispondente

   # modprobe nome_modulo

Nel mio caso il modulo è il ’sis900′. Se non sapete che scheda avete, potete provare con il comando ‘lspci’ e poi documentarvi in rete per vedere quale modulo usare. Infine, quando abbiamo caricato il modulo giusto, possiamo connetterci ad internet con il comando:

   # dhcpcd eth0


Configurazione del disco

Partiamo dal presupposto che utiliziamo un disco fisso nuovo, non partizionato e che è stato collegato come primo disco sulla IDE 1, che in pratica in Linux si chiama hda.

Partizioniamo il disco:

   # fdisk /dev/hda

Io di solito creo 3 partizioni:

   * partizione di root (hda1)
   * partizione di swap (hda2)
   * partizione per le registrazioni (hda3)

Per la prima bastano 10Gb, che sinceramente sono abbondanti ma preferisco così piùttosto di rimanere senza spazio. Per la seconda il doppio della memoria RAM ed infine per l’ ultima, tutto lo spazio rimanente, che come potrete vedere, non è mai abbastanza.

Creiamo la partizione di root (hda1)

   n <invio>
   p <invio>
   1 <invio>
   <invio>
   +10000M
   t <invio>
   1 <invio>
   83 <invio>

Stesso lavoro per la partizione di swap (hda2)

   n <invio>
   p <invio>
   2<invio>
   <invio>
   +512M (io ho 256Mb di memoria RAM, percui mettiamo il doppio)
   t <invio>
   1 <invio>
   82 <invio>

ed infine la terza partizione che in pratica è la /video (hda3)

   n <invio>
   p <invio>
   3<invio>
   <invio>
   <invio> (utiliziamo tutto lo spazio rimanente)
   t <invio>
   1 <invio>
   83 <invio>

e per concludere confermiamo e diamo l’ OK per il nuovo partizionamento del disco dando il comando:

   w <invio>

e per terminare l’ opera formattiamo le partizioni:

   # mkfs.xfs /dev/hda1
   # mkfs.xfs /dev/hda3
   # mkswap /dev/hda2


Installazione

Adesso inizia l’ installazione vera e propria del sistema operativo, dove impareremo a configurarlo manualmente e ad adattarlo alle nostre necessità. Montiamo le partizioni appena create

   # mount /dev/hda1 /mnt/gentoo
   # mkdir /mnt/gentoo/video
   # mount /dev/hda3 /mnt/gentoo/video

e attiviamo lo swap della memoria

   # swapon /dev/hda2

Adesso scarichiamo lo ’stage3′ di Gentoo da un mirror, nell’ esempio quello della versione 2006.1. Si potrebbe partire dallo ’stage1′, però il guadagno di prestazioni non compensa con i tempi di compilazione che su sistemi lenti possono protrarsi anche per più d 24 ore.

   # cd /mnt/gentoo
   # wget -c http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/releases/x86/current/stages/stage3-i686-2006.1.tar.bz2

e scarichiamo pure il portage

   # wget -c http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/snapshots/portage-latest.tar.bz2

Scompattiamo questi due files ed abbiamo il filesystem di Gentoo pronto per essere configurato.

   # tar -xvjpf stage3-i686-2006.1.tar.bz2
   # tar -xvjpf portage-latest.tar.bz2 -C /mnt/gentoo/usr

Copiamo il file make.conf.example in make.conf

   # cp /mnt/gentoo/etc/make.conf.example /mnt/gentoo/etc/make.conf

e lo editiamo per fare le opportune modifiche

   # nano -w /mnt/gentoo/etc/make.conf

Ricordo di non modificare CHOST con stage3, anche perchè nella stragrande maggioranza dei casi sarà giusto. In caso contrario sarà opportuno documentarsi nel sito Gentoo per installare da stage1. CFLAGS invece è opportuno modificarlo, anche perchè è grazie a questa impostazione che il nostro sistema sarà scattante e veloce. Nel mio caso, uso un Athlon 2000+, percui l’ impostazione che uso è

   CFLAGS=”-march=athlon-xp -Os -pipe”

e decommentiamo CXXFLAGS, che di default è impostato allo stesso modo di CFLAGS. La variabile USE è una delle impostazioni più importanti, visto si usa per supportare/non supportare alcune funzioni nei programmi. Come installazione base uso queste impostazioni, inizialmente per evitare che vengano caricati programmi inutili tipo KDE, Gnome, X, ecc

   USE=”-X -kde -qt -gnome -gtk -gtk2 -alsa -os -arts -opengl -xmms -xv dvb lirc”

ed infine impostate MAKEOPTS al numero di processori presenti nel PC+1. Nel caso di un sistema HT, mettete j3, nel mio caso, un Athlon 2000+, metto j2

   MAKEOPTS=”j2″

per uscire fate

   CTRL-X
   Y <invio>

Adesso copiamo il DNS nella installazione

   # cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf

e montiamo proc

   # mount -t proc none /mnt/gentoo/proc

Finalmente possiamo provare il nuovo sistema, ma ancora… senza riavviare, entriamo con chroot

   # chroot /mnt/gentoo /bin/bash
   # env-update
   # source /etc/profile

aggiorniamo il portage

   # emerge sync

vediamo che files sono da aggiornare

   # emerge -p system

e poi aggiorniamo il sistema

   # emerge system

L’ attesa solitamente è abbastanza lunga, ma alla fine abbiamo un sistema aggiornato, stabile e ottimizzato per la macchina su cui è installato. Io solitamento vedo di trovarmi in questa situazione all’ora di andare a letto, così mentre il computer compila io dormo tranquillo. Anche un giretto al bar non è da buttare, avete tutto il tempo per ubriacarvi, ma non proseguite fino a quando non vi sarete ripresi

Installazione del kernel

Impostiamo la gestione dell’ ora

   # ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime

emergiamo alcuni programmi utili all’ avvio del sistema

   # emerge hotplug
   # emerge coldplug

e diciamo al sistema di avviarli in automatico al boot

   # rc-update add hotplug boot
   # rc-update add coldplug boot

ed infine emergiamo finalmente i sorgenti del kernel.

   # emerge gentoo-sources

e adesso le configurazioni del kernel. Quì non vi posso aiutare, visto che è quasi impossibile che abbiate il mio stesso hardware, percui.. è l’ unica parte dove dovrete arrangiarvi :-( In alternativa potete dare un'occhiata alla guida sulla compilazione del kernel Linux presente su spaghettilinux.org

   # make menuconfig
   # make
   # make modules_install
   # make install

poi ordiniamo un po le cose

   # depmod -a
   # modules-update

diciamo al sistema di caricare al boot il modulo della scheda DVB-S

   # echo “dvb-ttpci” >> /etc/modules.autoload.d/kernel-2.6

configuriamo la tastiera

   # nano -w /etc/conf.d/keymaps

e modifichiamo queste variabili come descritto

   KEYMAP=”it”
   SET_WINDOWKEYS=”yes”

e poi la gestione dell’ orologio

   # nano -w /etc/conf.d/clock

modifichiamo sempre i valori delle variabili

   CLOCK=”local”


Configurazione del sistema

Configuriamo il file /etc/fstab per dire al sistema dove montare le partizioni

   # nano -w /etc/fstab

e poi lo modifichiamo in questo modo, se avete seguito le mie indicazioni su come impostare il disco all’ inizio

   /dev/hda1 / xfs noatime 0 1
   /dev/hda2 none swap sw 0 0
   /dev/hda3 /video xfs noatime 0 1
   /dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
   /dev/fd0 /mnt/floppy auto noauto 0 0
   proc /proc proc defaults 0 0
   shm /dev/shm tmpfs nodev,nosuid,noexec 0 0

Emergiamo il gestore per il boot del disco

   # emerge grub

e creiamo il file per la sua configurazione (un esempio del file è in /boot/grub/grub.conf.sample)

   # nano -w /boot/grub/grub.conf

aggiungiamo queste linee e poi… salviamo

   default 0
   timeout 3
   title=VDRBox v2.6.18r1
   root (hd0,0)
   kernel (hd0,0)/boot/vmlinuz root=/dev/hda1 real_root=/dev/hda1

e non rimane che installare Grub nell’ MBR del disco

   # grub –no-floppy

e poi digitiamo

   root (hd0,0)
   setup (hd0)
   quit

Instaliamo qualche programma di sistema, tipo il logger, il cron e gestione disco

   # emerge metalog
   # rc-update add metalog default
   # emerge vixie-cron
   # rc-update add vixie-cron default
   # emerge slocate
   # emerge xfsprogs
   # emerge dhcpcd

e infine instaliamo SSH per potere lavorare sulla VDRBox da un altro PC, come stò facendo io in questo momento durante l’ installazione

   # emerge ssh
   # rc-update add sshd default

Se volete un IP fisso editate questo file

   # nano -w /etc/conf.d/net

e aggiungete queste righe adattandole ovviamente alla vostra rete

   config_eth0=( “192.168.1.3 netmask 255.255.255.0 brd 192.168.1.255″ )
   routes_eth0=( “default gw 192.168.1.1″ )

Impostiamo la password di root

   # passwd <password>

ed infine riavviamo il sistema sperando che tutto vada per il meglio

  1. exit
  2. cd /
  3. umount /mnt/gentoo/proc
  4. umount /mnt/gentoo/video
  5. umount /mnt/gentoo
  6. reboot


Installazione di VDR

Finalmente abbiamo tra le mani un sistema funzionante e alla buon ora mettiamo le mani su questo VDR e melle sue intricate configurazioni. VDR viene considerato un programma complesso, non dispone di un interfaccia grafica, ma solo di un OSD, e richiede diversi files di comfigurazione, compresi alcuni che se li crea autonomamente.Per VDR, come per i suoi plugins consiglio di utilizzare l’ ultima versione disponibile nel portage, percui dovremmo usare un piccolo accorgimento per ogni programma che vogliamo emergere.

   # echo “media-tv/vdrplugin-rebuild ~x86″ >> /etc/portage/package.keywords
   # echo “media-video/vdr ~x86″ >> /etc/portage/package.keywords

in questo modo diciamo a gentoo di installare l’ ultima versione, anche se ancora in fase di test. Adesso impostiamo delle USE per vdr

   echo “media-video/vdr -aio bigpatch -child-protection -cmdsubmenu -debug -dolby-record-switch -dvbplayer 
     -dxr3-audio-denoise jumpplay -lnbsharing -rotor -setup-plugin -sourcecaps submenu subtitles \
     -vanilla -yaepg” >> /etc/portage/package.use

e adesso finalmente compiliamo VDR e le sue dipendenze

   # emerge vdr

Specifichiamo in make.conf che firmware ci serve e lo scarichiamo

   # echo “DVB_CARDS=’ttpci’” >> /etc/make.conf
   # emerge -v linuxtv-dvb-firmware

Se volete usare un altro firmware, basta che lo mettete in /lib/firmware

Adesso proviamo a vedere se vdr funziona

   # vdr

se non da errori e sulla televisione vedete l’ OSD che richiede la configurazione della tastiera significa che è andato tutto bene. Allora aprofittate di questa occasione per selezionare i tasti della tastiera. Adesso però vediamo di configurare questo VDR , e non preoccupatevi per l’ interfaccia brutta che avete visto nell’ OSD, usando dei plugins la potete cambiare senza problemi. In questo file potete modificare alcune impostazioni, ma attualmente le lasciamo come sono.

   # nano -w /etc/conf.d/vdr

Finito di impostare i tasti dovremmo vedere finalmente un canale. Entrate in Setup/OSD e selezionate la lingua italiana. A questo puntoil programma è funzionante ed io ho mantenuto la promessa. Buon divertimento :)


Problemi

Device non creato 
localhost ~ # vdr
vdr: no primary device found - using first device!

Se lanciando vdr ricevete questo errore potrebbe essere che avete caricato il modulo dei drivers prima di mettere il firmware in /lib/firmware, Per correggere fate così

         # modprobe -r dvb-ttpci
         # modprobe dvb-ttpci

Se il problema continua controllate se ci sono errori

         # dmesg | grep dvb

che in caso di successo dovrebbe dare un output simile a questo

         localhost ~ # dmesg | grep dvb
         saa7146: register extension 'dvb'.
         dvb-ttpci: info @ card 0: firm f0240009, rtsl b0250018, vid 71010068, app 80f22623
         dvb-ttpci: firmware @ card 0 supports CI link layer interface
         dvb-ttpci: Crystal audio DAC @ card 0 detected
         dvb-ttpci: found av7110-0.
Nella configurazione del kernel non e' possibile configurare alcuni modelli di schede dvb 

Quando configuriamo il kernel (make menuconfig) per gestire i dispositivi dvb, puo' capitare che alcuni modelli di schede non appaiano nel kernel-tree.
Questo capita se determinati moduli del kernel (p.e. USB o I2C ) necessari per compilare il supporto dvb non sono attivi.
E' possibile verificare le dipendenze di compilazione digitando:

         localhost ~ # cat <directory_dei sorgenti_del _kernel/drivers/media/dvb/Kconfig

Attivando i moduli necessari tutto tornera' a posto, e sara' possibile configurare la propria scheda dvb.



Manuale scritto da Gianni Zacchia ,2007

Strumenti personali