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
- exit
- cd /
- umount /mnt/gentoo/proc
- umount /mnt/gentoo/video
- umount /mnt/gentoo
- 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

