Dans l’article. décrivant l’installation de freevo, j’avais pour pouvoir rapidement lancer freevo indiqué la méthode pour générer les fichiers de configuration au plus vite.
Mais si on veut que freevo fonctionne parfaitement il faut revenir sur ces fichiers et les paramétrer finement, et il faut bien avouer que c’est une des partie les plus pénible de l’installation de freevo.
La configuration se fait dans 2 fichiers
- freevo.conf : liste les programmes éventuellement utilisés par freevo et leur chemin + 2-3 autre configurations générales
- local_conf.py : tout le reste
Ces fichiers peuvent être dans un répertoire .freevo du /home de l’utilisateur lançant freevo ou dnas /etc/freevo.
freevo.conf
Ce fichier est généré de façon automatique en lançant la commande :
sudo freevo setup
Ce qui chez moi (Jaunty) génére le fichier /home/mon_user/.freevo/freevo.conf contenant :
chanlist = us-cable display = x11 geometry = 800x600 jpegtran = /usr/bin/jpegtran lsdvd = /usr/bin/lsdvd mplayer = /usr/bin/mplayer renice = /usr/bin/renice setterm = /usr/bin/setterm tv = ntsc version = 2.2 xine = /usr/bin/xine
On déplacera se fichier vers /etc/freevo et on l’éditera pour changer les données suivantes ainsi :
chanlist = france geometry = 768x576 tv = pal
La valeur du paramètre geometry correspond à la résolution d’une télé cathodique PAL 4/3, à adapter en fonction de votre télé /moniteur.
local_conf.py
Le gros de la configuration se fait ici et on peut dire que le fichier est fournis et les possibilité de configuration nombreuses.
Pour commencer on peut se servir du fichier du fichier local_conf.py.example présent dans le répertoire src de l’archive freevo.
Le copier dans /etc/freevo l’éditer et le paramétrer.
Pour info ci-dessous mon fichier local_conf.py fonctionnant sur mon freevo 1.8.3 sous Gutsy.
(Ce même fichier fonctionne aussi sur mon freevo 1.9.0 Jaunty, mais il aurait besoin d’adaptation pour prendre en compte les changements effectué dans la release 1.9.0).
CONFIG_VERSION = 5.26 # Valeur des parametres : 1 = oui / 0 = non # ====================================================================== # General freevo settings: # ====================================================================== # Freevo doit il completement controler le son MIXER_CONTROL_ALL = 1 # Valeur maximale du son dans freevo (0-100) MIXER_VOLUME_MAX = 100 # Valeur par defaut du son dans freevo (0-100) MIXER_VOLUME_DEFAULT = 90 # Demarrage en mode plein ecran si utilise avec x11 ou xv START_FULLSCREEN_X = 1 # Demande une confirmation avant l'arret SYS_SHUTDOWN_CONFIRM = 1 # Lecteur CD / DVD # Format [ ('point de montage 1', 'nom du device 1', 'nom affiche 1'), # ('point de montage 2', 'nom du device 2', 'nom affiche 2'), ...] # Mettre None pour detecter le lecteur de facon automatique (via fstab) durant le demarrage # Mettre [] pour desactiver le supprot du lecteur ROM_DRIVES = [('/media/cdrom0', '/dev/hdd', 'DVD')] # Cacher les disques non utilisable (?) HIDE_UNUSABLE_DISCS = 1 # Vitesse maximal du lecteur de CD/DVD (pour eviter d'avoir trop de bruit) ROM_SPEED = 8 # Lors de l'arret de freevo via le menu arreter doit on arreter le systeme SYS_SHUTDOWN_ENABLE = 1 # Commande a executer pour arreter / redemmarer le systeme # Rque : penser a ajouter ces commandes dans le sudoer, pour ne pas avoir a saisir de mot de passe SYS_SHUTDOWN_CMD = "sudo shutdown -h now" SYS_RESTART_CMD = "sudo shutdown -r now" # ====================================================================== # AUTOSHUTDOWN CONFIGURATION # ====================================================================== # Desactivation du plugin shutdown active par defaut # afin de le remplacer par le plugin autoshutdown plugin.remove('shutdown') plugin.activate('autoshutdown', level=90) plugin.activate('autoshutdown.autoshutdowntimer') # Heure a laquelle le systeme demarre de facon automatique AUTOSHUTDOWN_DEFAULT_WAKEUP_TIME = "01:00" # Set to True to always wakeup at the default wakeup time. AUTOSHUTDOWN_FORCE_DEFAULT_WAKEUP = True # The number of minutes that may be spent idle until the next scheduled recording or default wakeup. AUTOSHUTDOWN_ALLOWED_IDLE_TIME = 60 # Methode de demarrage automatique AUTOSHUTDOWN_METHOD = 'acpi' # Script associe AUTOSHUTDOWN_WAKEUP_CMD = "sudo /etc/freevo/set_acpi.sh" # Liste des process qui si il sont presents doivent empecher l'arret automatique AUTOSHUTDOWN_PROCESS_LIST = [ 'emerge', 'tvgids', 'transcode', 'cdrecord', 'mplayer', 'top'] # ====================================================================== # Events # ====================================================================== # Mappage d'evenements supplementaires # Evenements globaux # Mappage des touche special presente sur la Nova-T 500 permettant d'acceder # aux differentes fonctions de freevo EVENTS['global']['TV'] = Event(MENU_GOTO_TV) EVENTS['global']['VIDEOS'] = Event(MENU_GOTO_VIDEOS) EVENTS['global']['PICTURES'] = Event(MENU_GOTO_IMAGES) EVENTS['global']['GUIDE'] = Event(MENU_GOTO_TVGUIDE) EVENTS['global']['MUSIC'] = Event(MENU_GOTO_MUSIC) EVENTS['global']['RADIO'] = Event(MENU_GOTO_RADIO) EVENTS['global']['BACK'] = Event(MENU_BACK_ONE_MENU) # Evenement leves que dans les menus # Lors de l'appuie sur le bouton power on leve l'evenement freevo SHUTDOWN EVENTS['menu']['POWER'] = Event(MENU_GOTO_SHUTDOWN) # Evenement leve que lors de lecture audio # ajout des evenement piste suivante, precedente EVENTS['audio']['CH+'] = Event(PLAYLIST_NEXT) EVENTS['audio']['CH-'] = Event(PLAYLIST_PREV) EVENTS['audio']['UP'] = Event(PLAYLIST_NEXT) EVENTS['audio']['DOWN'] = Event(PLAYLIST_PREV) EVENTS['audio']['SKIPFWD'] = Event(PLAYLIST_NEXT) EVENTS['audio']['SKIPBACK'] = Event(PLAYLIST_PREV) # List of /dev/input/event# devices to monitor. EVENT_DEVS = [] # Autoriser l'utilisation de ressources Internet (CDDB, amazon, etc.) USE_NETWORK = 1 # Umask setting for all files. 777-022=755 / 777-002=775 UMASK = 002 # Extension des playlists PLAYLIST_SUFFIX = [ 'm3u' ] # Mettre les images en cache CACHE_IMAGES = 1 # ====================================================================== # Plugins # ====================================================================== #-- Suppression de plugin actifs par defaut plugin.remove('headlines') plugin.remove('audio.xine') plugin.remove('audio.fbxine') #-- Ajout de plugin # Plugin moviecover, permttant de rechercher les affiches des films sur la site francais moviecover plugin.activate('video.moviecovers') # Accpter automatiquement si il y a un seul resultat pour la recherche MOVIECOVERS_AUTOACCEPT_SINGLE_HIT = False # les paramètres ci dessous sont nommes ALLOCINE-* mais utilisé par il sont utilise par moviecover # list of regexp to be ignored on a disc label ALLOCINE_REMOVE_FROM_LABEL = ('saison[\._ -][0-9]+', 'cd[0-9]+(-[0-9]+)?') # Liste des mots a ignorer dans la recherche ALLOCINE_REMOVE_FROM_SEARCHSTRING = ('l', 'le', 'la', 'les', 'd', 'the') # Plugin permettant de creer des playlists plugin.activate('audio.playlists', args=( '/multimedia/Musique/_playlists', 'Playlist_%m%d' ) ) # Plugin ajoutant une fonction de panier pour copier, deplacer des fichiers plugin.activate('shoppingcart') # ====================================================================== # Freevo directory settings: # ====================================================================== # Afficher les fichiers avec un nom plus simple (smart name) DIRECTORY_SMART_NAMES = 0 # Demarrer automatiquement la lecture lorsque le dossir ne contient qu'un fichier DIRECTORY_AUTOPLAY_SINGLE_ITEM = 0 # Formt du nom des fichiers audio pour affichage. # default = %(t)s # a=artist, n=tracknumber, t=title, y=year, f=filename DIRECTORY_AUDIO_FORMAT_STRING = '%(f)s' # Utilisation des tags (ID3 et co) pour l'affichage du nom des fichiers DIRECTORY_USE_MEDIAID_TAG_NAMES = 1 # Chainer la lecture des fichiers pour audio / image / video DIRECTORY_CREATE_PLAYLIST = [ 'audio', 'image' ] # Ajouter les fichier playlist ('m3u') au répertoire pour audio / image / video DIRECTORY_ADD_PLAYLIST_FILES = [ 'audio', 'image' ] # Ajouter l'option "lire aleatoirement" pour les dossiers audio / image / video DIRECTORY_ADD_RANDOM_PLAYLIST = [ 'audio' ] # ====================================================================== # Freevo movie settings: # ====================================================================== # Repertoire ou sont les fichiers video [('nom a afficher', 'repertoire'), ..] VIDEO_ITEMS = [ ('Films', '/multimedia/Films'), ('Dessins Animes', '/multimedia/Animes'), ('Series', '/multimedia/Series'), ('Non tries', '/multimedia/NonTries')] # Extension des fichiers video lus avec mplayer VIDEO_MPLAYER_SUFFIX = [ 'avi', 'mpg', 'mpeg', 'wmv', 'bin', 'rm', 'divx', 'ogm', 'asf', 'm2v', 'm2p', 'mp4', 'viv', 'nuv', 'mov', 'iso', 'nsv', 'mkv', 'flv' ] # Extension des fichiers video lus avec xine VIDEO_XINE_SUFFIX = [ 'vob', 'avi', 'mpg', 'mpeg', 'rm', 'divx', 'ogm', 'asf', 'm2v', 'm2p', 'mp4', 'mov', 'cue' ] # Lecteur video prefere VIDEO_PREFERED_PLAYER = 'mplayer' # Chainer la lecture des fichiers video en plusieur parties (ex : toto-cd1 et toto-cd2) VIDEO_AUTOJOIN = 0 # ====================================================================== # Freevo audio settings: # ====================================================================== # Repertoire ou sont les fichiers audio [('nom a afficher', 'repertoire'), ..] AUDIO_ITEMS = [ ('Musique', '/multimedia/Musique') , '/usr/share/freevo/fxd/webradio.fxd'] # Extension des fichiers audio AUDIO_SUFFIX = [ 'mp3', 'ogg', 'wav','m4a', 'wma', 'aac', 'flac', 'mka' ] # Lecteur audio prefere AUDIO_PREFERED_PLAYER = 'mplayer' # ====================================================================== # Freevo image viewer settings: # ====================================================================== # Repertoire ou sont les fichiers image [('nom a afficher', 'repertoire'), ..] IMAGE_ITEMS = [ ('Photos', '/multimedia/Photos') ] # Extension des fichiers audio IMAGE_SUFFIX = [ 'jpg','gif','png','jpeg','bmp','tiff','psd' ] # Effet entre 2 images # None: no blending ; -1 random effect ; 0 alpha blending ; 1 wipe effect IMAGEVIEWER_BLEND_MODE = 0 # Duree d'affichage de chacune des images IMAGEVIEWER_DURATION = 5 # Information EXIF affiches lors de l'appui sur la touche DISPLAY. IMAGEVIEWER_OSD = [ # First OSD info [ (_('Title')+': ', 'name'), (_('Description')+': ','description'), (_('Date')+': ', 'date') ], # Second OSD info [ (_('Title')+': ', 'name'), (_('Author')+': ' , 'author'), ('W:', 'width'), ('H:', 'height'), (_('Model')+': ', 'hardware'), (_('Software')+': ', 'software') ] ] # ====================================================================== # Freevo OSD settings: # ====================================================================== # Duree d'attente (e ns) / nb de fichiers avant d'afficher l'icone "busy" (sablier) OSD_BUSYICON_TIMER = (2, 200) # Execution d'un script au demarrage. OSD_SDL_EXEC_AFTER_STARTUP = "nvtv -t -S NTSC -r 800,600 -s LARGE" # Espacement entre les icones de la barre d'etat OSD_IDLEBAR_PADDING = 20 # ====================================================================== # Freevo remote control settings: # ====================================================================== # Enmplecement du fichier lircrc (mappage des evenement telecommande avec les evenements freevo) LIRCRC = '/etc/freevo/lircrc' # ====================================================================== # TVtime settings: # ====================================================================== # ====================================================================== # MPlayer settings: # ====================================================================== # Drivers audio MPLAYER_AO_DEV = 'alsa' # Driver video MPLAYER_VO_DEV = 'gl' # ordre de preference des langues sur un DVD DVD_LANG_PREF = 'en,se,no' # ordre de preference des sous titre sur un DVD DVD_SUBTITLE_PREF = 'fr' # Argument mplayer en fonction du type de fichier joue MPLAYER_ARGS = { 'dvd' : '-cache 8192', 'vcd' : '-cache 4096', 'cd' : '-cache 8192 -cdda speed=2', 'tv' : '-nocache', 'ivtv' : '-cache 8192', 'dvb' : '-cache 1024 -demuxer lavf -lavfdopts probesize=128', 'avi' : '-cache 16384 -ass', 'mkv' : '-cache 16384 -sid 0', 'rm' : '-cache 5000 -forceidx', 'rmvb' : '-cache 5000 -forceidx', 'webcam' : 'tv:// -tv driver=v4l:width=352:height=288:outfmt=yuy2:device=/dev/video2', 'default': '-cache 5000' } # Number of seconds before seek value times out. MPLAYER_SEEK_TIMEOUT = 3 # ====================================================================== # Xine settings: # ====================================================================== # Drivers audio XINE_AO_DEV = 'alsa' # ====================================================================== # Freevo TV settings: # ====================================================================== # Repertoire d'enregistrement TV_RECORD_DIR = '/multimedia/TV_records' #AVOIR # If true, this will automatically re-encode shows after they finish recording TV_REENCODE = False # If true, this will remove the original recording after automatic re-encoding is done TV_REENCODE_REMOVE_SOURCE = False # ================================================================================ # Watching TV # ================================================================================ # zone la plus difficile a parametrer, d'ailleur la TV ne fonctionne pas parfaitement surtout l'enregistrement # Chaine de configuration de la television = conatenation des elements de freevo.conf TV_SETTINGS = '%s television %s %s' % (CONF.tv, CONF.chanlist, TV_DEVICE) # Device de la carte TV (TNT) TV_DEVICE = '/dev/dvb/adapter0/frontend0' # If using the persistent recordserver TV_RECORD_SCHEDULE = FREEVO_STATICDIR + '/schedule.pickle' TV_RECORD_FAVORITES = FREEVO_STATICDIR + '/favorites.pickle' TV_RECORD_FAVORITES_LIST = FREEVO_STATICDIR + '/favorites.txt' # adresse et port du serveur d'enregistrement RECORDSERVER_IP = 'localhost' RECORDSERVER_PORT = 18001 # Ligne de commande re-encodage (inutile) VCR_CMD = ( CONF.mencoder + ' ' + 'dvb://%(channel)s' + ' -ovc copy -oac copy ' + # Direct stream copy ' -idx ' + # Fix idx '-endpos %(seconds)s ' + # only mencoder uses this so do it here. '-o %(filename)s ' ) # Filled in by Freevo # TV_VIDEO_GROUPS setting to handles multiple arbitrary groups of devices TV_VIDEO_GROUPS[0].group_type = 'dvb' # TV Channels. This list contains a mapping from the displayed channel name # to the actual channel name as used by the TV watching application. # The display name must match the names from the XMLTV guide, # and the TV channel name must be what the tuner expects (usually a number). TV_CHANNELS = [('C1.telepoche.com', 'TF1', 'TF1' ), ('C2.telepoche.com', 'Fr 2', 'France2' ), ('C3.telepoche.com', 'Fr 3', 'France3' ), ('C4.telepoche.com', 'Canal +', 'CANAL+' ), ('C7.telepoche.com', 'Fr 5', 'France5' ), ('C6.telepoche.com', 'M6', 'M6' ), ('C5.telepoche.com', 'Arte', 'ARTE' ), ('C167.telepoche.com', 'Direct 8', 'Direct8' ), ('C38.telepoche.com', 'W9', 'W9' ), ('C9.telepoche.com', 'TMC', 'TMC' ), ('C168.telepoche.com', 'NT1', 'NT1' ), ('C169.telepoche.com', 'NRJ12', 'NRJ12' ), ('C170.telepoche.com', 'LCP', 'LCP'), ('C28.telepoche.com', 'Fr 4', 'France4' ), ('C194.telepoche.com', 'BFM TV', 'BFMTV' ), ('C122.telepoche.com', 'i>TELE', 'iTELE' ), ('C193.telepoche.com', 'Virgin TV', 'Virgin17' ), ('C195.telepoche.com', 'Gulli', 'Gulli' ), ('Nantes7', 'Nantes 7', 'NANTES' )] # Ligne de commande pour recuperer les programmes tele XMLTV_GRABBER = 'tv_grab_fr --slow --config-file /etc/tv_grab/tv_grab_fr.conf' # Nombre de jour pour lesquel on recupere le prog tele (tv_grab_fr utilise le site de telepoche et 1 seul jour est disponible) XMLTV_DAYS = 1 # Emplacement du fichier XMLTV genere par tv_grab_fr XMLTV_FILE = '/multimedia/TV.xml' # ====================================================================== # Idlebar and plugins # ====================================================================== # affichage des statistiques CPU / Mem dans la barre d'etat plugin.activate('idlebar.system.procstats',level=40) # ====================================================================== # Debugging and logging settings # ====================================================================== # Niveau de debuggage # CRITICAL, ERROR, WARNING, INFO, DEBUG or NOTSET # Attention le niveau DEBUG est tres tres verbeux et peut faire ramer le PC LOGGING = logging.WARNING LOGGING_RECORDSERVER = logging.WARNING # Sous niveau pour le niveau DEBUG 0-9 DEBUG = 0 # Doit on remonter les message des application enfant (mplayer) DEBUG_CHILDAPP =0 # Dater les messages # DEBUG_TIME = 0 # Pour des besoins de debug la fonction ci-dessous permet d'imprimer toutes les caribles configures print_events = False if print_events: for(k, v) in EVENTS.items(): print '===========' print '%s' % (k) print '-----------' for (k2, v2) in v.items(): if v2.handler != None: print ' "%s" %s "%s" %s:%s' % (k2, v2.name, v2.arg, v2.context, v2.handler) elif v2.context != None: print ' "%s" %s "%s" %s' % (k2, v2.name, v2.arg, v2.context) elif v2.arg != None: print ' "%s" %s "%s"' % (k2, v2.name, v2.arg) else: print ' "%s" %s' % (k2, v2.name)
Le plugin Autoshutdown permet d’éteindre le PC au bout de x minutes d’inactivité sauf si au moins un des process paramétrés tourne.
Il permet aussi de démarrer de façon automatique le PC à une heure paramétré (pratique pour générer le cache freevo, lancer des scripts de sauvegarde et de maintenance la nuit) ou juste avant un enregistrement programmé.
Pour réaliser le démarrage automtique via acpi il faut créer un script comme suit :
/etc/freevo/set_acpi.sh
#! /bin/bash echo "wakeup date : " "$1" >> /var/log/freevo/acpi.log echo "$1" > /proc/acpi/alarm
Enfin le paramétrage suivant est spécifique au vieille carte NVIDIA GeForce2.
En effet ce dernière ne gèrent pas l’overscan on se retrouve donc avec une image réduite au milieu de l’écran et des grosse bandes noires.
NVTV est un programme qui permet de configurer plus finement la sortie télé de ces cartes, en jouant avec le différents paramètres on peut arriver a remplir compltement l’écran
OSD_SDL_EXEC_AFTER_STARTUP = "nvtv -t -S NTSC -r 800,600 -s LARGE"
A suivre avec le local_conf.py actualisé pour freevo 1.9.0
De plus en regardant le .example, je me rends qu’il existe pas mal de pramétrage différent pas forcement lié à la 1.9.0 (le gros de mon local_conf.py date de la version 1.7.x)