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)



Les commentaires sont fermés.