U Classroom

Un blog collectif, orienté vers l'apprentissage et l'enseignement collaboratif et communautaire de techniques applicables aux unix libres

Sortie d'hibernation : U-classroom est de retour

Vous passez votre temps à vous plaindre sur les forums à propos de problèmes dans votre application préférée, vous avez envie d'aider, vous n'avez rien à faire en ce moment : autant de bonnes raisons d'assister au prochain cours sur #u-classroom le mardi 15 Juillet à 20 heures (heure de Paris).

Vous y apprendrez comment trier les rapports de bugs envoyés par les utilisateurs, en particulier ceux d'{U,Xu,Ku}buntu sur le Launchpad. La procédure vous sera détaillée et vous pourrez ensuite commencer à mettre tout ça en application !

Le seul prérequis pour ce cours est d'avoir une connaissance minimale de l'anglais, les rapports de bugs étant dans la langue de Chuck Norris, c'est tout de suite bloquant si on ne le comprends/parle pas un peu... Pour la deuxième partie du cours, un compte sur le Launchpad sera nécessaire et il faudra rejoindre la BugSquad pour avoir les droits nécessaires sur le Launchpad.

Ce cours sera donné par Jérôme (jeromeg), assisté par Gauvain (gpocentek) et Lionel (mr_pouit).

Edit : on me signale à l'instant que ça ne sert à rien de rejoindre la BugSquad, mais vous pouvez toujours le faire pour le prestige, et quel prestige !

Au revoir Effraie

"Ma disparition'", c'est ainsi que Mathieu, alias Effraie vient d'annoncer son retrait de la vie Linuxienne publique. Distant depuis quelques temps il officialise ainsi son départ : trop de boulot, moins de motivation; mais on ne peut lui en vouloir.

Membre actif de la communauté GNU/Linux et Ubuntu depuis plusieurs années, Effraie s'était engagé dans plusieurs domaines tels que l'association Ubuntu-fr, où il participait activement à plusieurs actions. Il est un des instigateurs de Mental PPC, un dépôt de paquets debian qui avait été fait pour les utilisateurs d'architectures PowerPC. Concernant les Macintosh libre, vous devez sans conteste connaître son blog où beaucoup d'astuces et d'aide à la configuration pour ces machines sont répertoriés. Coté classroom, Effraie était à l'initiative du blog et peu de choses auraient vu le jour sans lui. C'est également lui qui héberge ce blog et les mailing listes du projet u-classroom.

Pour tout ce qu'il a fait et pour ce qu'il fera encore (du moins on l'espère), toute l'équipe de la classroom tient à remercier Effraie et à lui souhaiter une bonne continuation dans ses projets personnels.

je ne suis plus vraiment sûr, ni d'avoir trop ma place parmi vous, ni d'avoir franchement le temps et la motivation nécessaire pour ça.

Et contrairement à ce qu'il peut dire, Effraie aura toujours sa place au sein de la communauté pour laquelle il a tant donné.

Au revoir Effraie, ou plutôt à bientôt !

La classroom

u-classroom : suite du cours vim

La suite du cours Vim donné il y a 10 jours par yannick_lm aura lieu ce vendredi 07 mars à 20H00 (heure française métropolitaine), toujours sur le canal #u-classroom du réseau irc freenode.

Si vous n'avez pas pu suivre la première session, le cours est en ligne.

A vendredi !

Prochaine session : vim

Qui n'est jamais passé par là... Démarrage de vim (généralement par un complet hasard), râleries parce que cet éditeur bizarre n'a pas l'air de marcher (jusqu'à ce qu'on tombe sur la bonne touche, mais sans comprendre ce qui s'est passé), et fermeture violente de console parce qu'impossible de trouver comment sortir de l'éditeur :)

C'est Yannick LM qui sera le professeur pour la session classroom sur vim. Elle se déroulera le vendredi 22 février à 20 heures (heure métropolitaine, 19H00 UTC), sur le canal #u-classroom du réseau irc freenode.

Aucun prérequis n'est nécessaire à ce cours, si ce n'est une installation du logiciel ('sudo apt-get install vim' pour debian et dérivés).

Une fois vim maîtrisé, vous ne verrez plus votre console du même oeil ! Et vous pourrez profiter de la seconde session (dont la date sera donnée ultérieurement).

A bientôt sur #u-classroom !

s/buntu-fr//

Les faits

La migration de la (ubuntu-fr-)classroom est maintenant pratiquement achevée. Certains d'entre vous s'en sont sans doute aperçu, la classroom, qui jusque là s'appuyait quasi-exclusivement sur les structures d'ubuntu-fr, prend son envol. Un site autonome a vu le jour, http://u-classroom.net/, sur lequel vous pouvez trouver :

  • les logs des sessions ;
  • les cours ;
  • le détail des sessions passées et à venir ;
  • le blog.

Le canal IRC, jusque là nommé #ubuntu-fr-classroom, devient #u-classroom, toujours sur le réseau freenode.

Par ailleurs, nous profitons de cette "migration" pour travailler sur l'établissement d'un cadre technique visant à faciliter la restitution des sessions live, et leur transformation simple et automatisée en cours statiques (bot irc, svn...).

C'est quoi, u-classroom ?

U-classroom c'est la volonté de partager le savoir et le savoir-faire de la communauté d'utilisateurs de logiciels libres, en proposant une formule vivante de cours sur IRC.

Les premiers cours donnés sur #ubuntu-fr-classroom concernaient le packaging ubuntu (et donc debian par la même occasion). Rapidement, le champ des connaissances transmises s'est élargi, et des sessions ont eu lieu concernant des sujets aussi variés que apache, python, le shell...

Dans cette "u-classroom", chacun peut tour à tour être enseigné et enseignant, et aucun niveau minimal n'est en général requis (si ce n'est avoir suivi ou lu les logs des sessions précédentes sur le même sujet).

Pourquoi cette migration ?

Loin de nous l'idée de nous éloigner d'ubuntu-fr. Cependant, la classroom existe depuis désormais plus d'un an et demi, et nous avons le recul nécessaire pour nous apercevoir que nos centres d'intérets ne sont pas (pour la plupart) directement liés à ubuntu, et que les sessions s'adressent généralement à tous les utilisateurs d'UNIX ou technologies libres ; la proximité avec Ubuntu-fr traduit plus notre histoire qu'un réel lien organique. Ce constat fait, il nous a semblé logique de nous émanciper du wiki d'ubuntu-fr, pour trouver une audience plus vaste dans la communauté francophone des logiciels libres.

Nous sommes toujours à la recherche de nouveaux thèmes et de nouveaux professeurs pour assurer les sessions. Si un sujet vous tient à coeur (depuis l'utilisation de OOo jusqu'à l'utilisation fine des flags GCC sur LFS), nous serions ravis de vous accueuillir, pour une ou plusieurs sessions. Prenez directement contact avec nous sur #u-classroom@irc.freenode.net.

N'oubliez pas aussi de vous abonner à notre mailing list classroom-annonces qui vous permettra d'être informé des dates et sujets des sessions futures.

Introduction à PyGTK

On continue avec python pour la prochaine session de la classroom, en abordant l'utilisation du framework GTK.

L'introduction à PyGTK se passera le lundi 04 février à 20h00 (heure métropolitaine, 19H00 UTC), sur le canal #u-classroom de Freenode.

Mieux vaut avoir fréquenté python pour suivre cette session. Si vous n'étiez pas là aux cours précédents, vous pouvez vous rattraper en jetant un oeil aux cours 'papier'. N'hésitez pas à venir nous rendre visite sur le chan avant la session si vous avez des questions.

Pour éviter d'oublier la session, inscrivez-vous à la mailing liste u-classroom annonces, un message de rappel sera envoyé ;)

A lundi !

Le retour du Python

C'est parti pour une nouvelle session classroom sur Python ! On abordera cette fois ci la programmation orientée objet, ce qui nous permettra de découvrir pygtk lors de la session suivante.

Ca se passera le 21 Janvier à 20H00 (heure métropolitaine, 19H00 UTC) sur le canal irc #ubuntu-fr-classroom (réseau freenode).

Session éclair sur Subversion le 01/01/08

Pour fêter la nouvelle année (ou alors cela n'a aucun rapport), une session éclair est organisée sur subversion le premier janvier 2008, à 17h (heure en France métropolitaine); comme d'habitude sur le channel irc #ubuntu-fr-classroom du serveur Freenode.


Au programme, une petite partie installation et intégration à apache avant de passer à son utilisation basique : checkout, update, commits...


EDIT : La session éclair n'était pas si éclair que ca :) Les logs sont dispos sur http://gauvain.pocentek.net/2008-01-01-svn.log pour le moment.

Squelette de documentation des fonctions C/C++ avec vim

Bon, j'avoue, le titre ne veut rien dire, mais faut m'excuser, il est tard, skateinmars a pas arrêté de m'embêter, etc, etc ...

Le but de ce petit topic est de vous montrer comment générer un début de docmentation des fonctions C sous vim.

D'abord, le code. Prenez une chaise, des aspirines, un grand verre, de l'eau . Vous êtes prêt :

map T :copy.<ESC>k<ESC>:.!sed -r 's@(.[^ ]*) (.[^\(]*)\((.*)\).*@/**\n* \@name \2 :\n* \@Param \3 :\n* \@Return \1 :\n*/@; s/,/ :\n* \@Param /g; s/ [ ]+/ /g;' <CR><CR>

J'avais prévenu :)

Alors ça fait quoi ça ? Ca va générer à l'aide d'une simple touche de raccourci un squelette de documentation compatible doxygen & autres. Vous mettez cette petite ligne à la fin de votre ~/.vimrc, vous enregistrez tout ça et vous ouvrez votre code source C préféré.

Placez vous sur la ligne de déclaration d'une fonction par exemple :

 int main (int argc, const char ** argv) { 

et, en mode commande, appuyez sur T (shift + t).

Et là magie, vous voyez apparaître ceci au dessus de la déclaration :

/**
* @name main :
* @Param int argc :
* @Param const char ** argv :
* @Return int :
*/

Si ça ne marche pas c'est que :

  • Vous avez mal fait
  • J'ai mal fait

Dans le premier cas, reprenez vous, que diable ! Dans le second, tant pis pour vous je vais me coucher :)

PS : un GRAND GRAND merci au petit petit gapz qui du fond de sa cave m'a grandement aidé à faire ça (pour ne pas dire qu'il a fait de loin le plus dur) :)

Création d'un Média Center avec Freevo

Introduction

Je viens de finir la réalisation d'une centrale multimédia complète à l'aide du HTPC Freevo. Voici donc un (petit) tutorial pour détailler la réalisation d'une telle centrale.

Capacités du Media Center

Une fois l'installation terminée, le Media Center sera capable de :

   * Lire la musique (mp3, ogg, etc)
   * Lire les WebRadios
   * Lire des vidéos (divx, etc ...)
   * Lire la télévision (TNT) et afficher les programmes
   * Enregistrer les émissions télé
   * Lire les flux RSS
   * Afficher des photos
   * Contrôler les périphériques X10
   * Démarrer automatiquement au lancement de l'ordinateur et arrêter l'ordinateur en quittant
   * Etre contrôlé par une télécommande

Ce tutorial est disponible au format PDF (généré à partir de source LaTeX) ici .

Prérequis

   * L'ordinateur sur lequel le Média Center a été installé est un PIII 900Mhz, et cela suffit amplement.
   * Côté logiciel, j'ai utilisé une Ubuntu minimale avec serveur X.
   * Votre télécommande doit être fonctionnelle (l'utilisation détaillée ici se sert de lirc)

Installation de Freevo

Freevo n'existe pas dans les dépots officiels d'Ubuntu, il faut donc utiliser des dépôts tierce partie. Vous êtes donc prévenu qu'il ne sont pas supportés par Canonical / Ubuntu et vous ne pourrez vous en prendre qu'à vous seul si cela pourrit votre système.

Donc, maintenant que vous êtes prévenus, il va vous falloir ajouter cette ligne à votre fichier /etc/apt/sources.list :

deb http://ubuntu.geole.info/ gutsy universe multiverse

Une fois cette ligne ajoutée à votre fichier et le fichier sauvegardé, on installe freevo :

sudo apt-get update

apt-get install geole-keyring

sudo apt-get install freevo freevo-common python-freevo freevo-lirc

L'installation du paquet va vous proposer quelques options, choisissez dans l'ordre :

   * x11
   * 768*576 (format PAL)
   * PAL
   * france
   * rien
   * rien
   * rien
   * rien
   * rien
   * rien
   * rien
   * rien

Cela va vous définir le fichier de configuration général de freevo (/etc/freevo/freevo.conf) . Tous les champs que vous n'avez pas saisi seront défini manuellement plus tard dans le fichier /etc/freevo/local_conf.py

Freevo utilise le concept de modules. Par conséquent vous pouvez charger seulement ce dont vous avez besoin.

La totalité de la configuration de Freevo se fait via le fichier /etc/freevo/local_conf.py . Il vous est possible de personnaliser ce fichier de configuration pour chaque utilisateur en le copiant dans /.freevo/ . Cependant, le but du tutorial étant de faire un media center, un seul utilisateur est utilisé. Nous travaillerons donc sur le fichier /etc/freevo/local_conf.py .

Lirc

Freevo utilise son propre mapping LIRC (ie son propre fichier lircrc). Si vous n'avez pas de fichier /etc/freevo/lircrc, vous pouvez en générer un de base avec la commande

freevo makelircrc -w

qui créera une config par défaut. Ensuite, on va rapidement tester que lirc/freevo reconnaissent bien la télécommande. Pour cela, lircd doit être lancé, et on exécute:

ircat -config=/etc/freevo/lircrc freevo

Ensuite appuyez sur les touches de votre télécommande, cela devrait afficher la correspondance freevo (le nom utilisé par freevo). Vérifiez ainsi que toutes les touches fonctionnent, si ce n'est pas le cas, 2 possibilités sont à envisager :

   * La touche est bien reconnue par lirc (elle s'affiche lors de l'utilisation de irw par exemple). Il est à ce moment là fort probable qu'elle soit manquante dans /etc/freevo/lircrc . Il suffit d'éditer ce fichier et de rajouter une section sur le format suivant :
begin
    prog = freevo
    button = nomquisaffichedansirw
    config = correspondancefreevo
end
   * La touche ne fonctionne pas avec irw. Il faut alors regarder dans le fichier de configuration de Lirc.

Bon, maintenant que la télécommande fonctionne on va pouvoir s'attaquer à la configuration en elle-même.

Configuration

Donc on ouvre le fichier /etc/freevo/local_conf.py (avec sudo).

Comme vous pouvez le voir, ce fichier est plutôt bien documenté ce qui vous aidera pour le modifier vous même.

Je vais prendre dans l'ordre les options à modifier. Presque toutes les options sont existantes dans le fichier, mais sont le plus souvent commentées (avec un # en début de ligne), donc une petite recherche sur le nom de l'option, décommentage et modification.

Audio

La première section va permettre la gestion du son, voici ce que j'ai défini, à éventuellement adapter selon vos préférences :

   * AUDIO_DEVICE = '/dev/dsp'
   * AUDIO_INPUT_DEVICE = '/dev/dsp1'
   * MAJOR_AUDIO_CTRL = 'VOL'
   * MAJOR_AUDIO_CTRL_MUTE = 'VOL'
   * CONTROL_ALL_AUDIO = 1
   * MAX_VOLUME = 95
   * DEFAULT_VOLUME = 40
   * TV_IN_VOLUME = 60
   * RADIO_IN_VOLUME = 80
   * DEV_MIXER = '/dev/mixer'

La fonction des options est détaillée dans le fichier et les noms sont suffisamment explicites. Il est possible d'avoir à modifier les 2 premières options ainsi que la dernière, suivant votre carte son.

Les autres options sont plus des préférences. Les nombres correspondent à des pourcentages.

Généralités

   * START_FULLSCREEN_X = 1
   * CONFIRM_SHUTDOWN = 1

Idem, suffisamment explicite :)

Disque ROM La configuration que je propose utilisant fstab, nous n'aurons pas besoin de ce paramètre, on peut donc le désactiver.

   * ROM_DRIVES = []
   * HIDE_UNUSABLE_DISCS = 1

La deuxième option permet de cacher des répertoires dans les menus s'ils ne sont pas accessibles par le logiciel. On l'active donc pour nous permettre de proprement utiliser des disques USB plus tard. Vous pouvez la mettre à 0 si vous n'avez pas de disques externes.

Arrêt

Freevo permet d'arrêter le système lorsqu'on le quitte, ce qui nous intéresse :) On active donc les options suivantes :

   * ENABLE_SHUTDOWN_SYS = 1
   * SHUTDOWN_SYS_CMD = "sudo shutdown -h now"

Il va de plus falloir modifier le fichier /etc/sudoers pour permettre à freevo d'éteindre sans avoir besoin de mot de passe.

Attention, cette manipulation peut poser certains problèmes de sécurité . Cependant, pour un PC destiné seulement à devenir un Media Center, cela ne pose pas vraiment de soucis.

Ouvrez donc un terminal et tapez :

sudo su

visudo

Il vous ouvre alors le fichier /etc/sudoers via l'éditeur VI. Le passage par le compte root est volontaire. En effet, une erreur dans le fichier /etc/sudoers peut vous faire perdre l'accès aux privilèges administrateur.

Déplacez vous avec les flèches sur la dernière ligne du fichier (%admin ALL= (ALL) ALL). Placez vous sur la parenthèse avant le ALL et tapez exactement cette séquence de touche :

   * Appuyez 5 fois sur 'x', cela effacera le mot (ALL)
   * Appuyez une fois sur 'i', cela vous permet d'entrer dans le mode édition de vi
   * Tapez 'NOPASSWD:' , sans oublier les ':'
   * Appuyez une fois sur 'Echap'
     A ce moment là votre ligne devrait être " %admin ALL= NOPASSWD: ALL ". Il ne vous reste plus qu'à quitter :
   * Appuyez sur ':wq', sans oublier les ':'

ATTENTION : il se peut que visudo utilise chez vous l'éditeur nano, auquel cas la séquence de touche ne suffira pas. Mais nano étant beaucoup plus intuitif, je suis sur que vous y arriverez seul :)

Une façon plus sécurisée serait d'autoriser seulement à l'utilisateur actuel le droit d'éteindre. Pour celà vous devez rajoutez dans le fichier les lignes suivantes :

   * Cmnd_Alias HALT=/sbin/shutdown
   * votreuser ALL=NOPASSWD:HALT

Si vous utilisez cette méthode, il n'ai pas nécessaire de modifier la première ligne comme indiqué,

Vous voilà de nouveau sur votre terminal. Laissez le ouvert et ouvrez en un autre pour vérifier que vous n'avez pas fait d'erreur. Tapez-y :

sudo -k

sudo ls

Là il devrait vous lister votre répertoire personnel. Si vous avez un message comme quoi il y a un problème dans le fichier /etc/sudoers, c'est que vous avez fait une mauvaise manipulation.

S'il ne vous mets pas d'erreur et vous affiche le contenu de votre répertoire, vous pouvez fermer les deux terminaux.

Maintenant, Freevo n'aura plus besoin du mot de passe pour éteindre le PC.

Bon, passons à la suite.

Ajout de fonctions pour la télécommande

Une (autre) des grandes puissances de Freevo est la flexibilité du mappage des touches de la télécommande. Freevo est divisé en 'scènes' et met à dispositions de l'utilisateur un certain nombre d'actions sur l'interface (appelées événements). Les scènes correspondent aux parties de Freevo : globale ( effectives partout), menu, music, video, tv, image, games, dvd, vcd (et peut-être d'autres encore) .

Freevo vous permet donc de mapper des touches à des événements particuliers pour chaque scène . Autrement dit, vos touches ne réagissent pas forcément pareil suivant la section dans laquelle vous vous trouvez.

Un grand nombre de paramétrages sont déjà effectuez, vous pourrez les trouver dans le fichier :

/usr/share/pycentral/python-freevo/site-packages/freevo/event.py

J'ai cependant (re)défini quelques mapping supplémentaires. J'ai en effet des touches d'accès 'TV','Vidéos','Radio', etc ... sur ma télécommande (Hauppauge). Je souhaitais donc pourvoir accéder directement aux différentes sections de Freevo quelque soit la section dans laquelle je me trouve.

Rien de plus simple, ajoutez dans votre ficher de configuration les lignes :

   * EVENTS['global']['TV'] = Event(MENU_GOTO_TVGUIDE)
   * 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']['DISPLAY'] = Event(MENU_GOTO_MAINMENU)
   * EVENTS['global']['BACK'] = Event(MENU_BACK_ONE_MENU)

Les 2 derniers permettent de retourner directement au menu principal avec la touche DISPLAY (chez moi en haut à gauche appelée Go), et de remonter d'un niveau dans les menus avec la touche 'Back/Exit' .

Ma touche Go n'était pas configurée correctement, il m'a donc fallu éditer le fichier /etc/freevo/lircrc, puis vérifier que vous avez la section :

begin
    prog = freevo
    button = go
    config = DISPLAY
end

Sinon, changez la valeur du paramètre 'config'. Cette fonction DISPLAY est assez importante car elle sera utilisée pour la suite.

J'ai en plus de ça rajouté quelques mapping pour l'audio (le réglage du son ne fonctionnait pas par défaut) :

   * EVENTS['global']['BACKTRACK'] = Event(PLAYLIST_PREV)
   * EVENTS['global']['FFWD'] = Event(PLAYLIST_NEXT)
   * EVENTS['global']['MIXER_VOLUP'] = Event(MIXER_VOLUP, arg=5)
   * EVENTS['global']['MIXER_VOLDOWN'] = Event(MIXER_VOLDOWN, arg=5)

La valeur du paramètre 'arg' correspond au pourcentage d'augmentation / diminution du son lorsque l'on appuie sur la touche de réglage du volume.

Vous pourrez par la suite modifier vous même les actions de votre télécommande via ces paramètres, la forme générale étant :

EVENTS['SCENE']['TOUCHE'] = Event(EVENEMENT, arg=PARAMETRE)

Les touches étant celles définies pour les paramètres config dans /etc/freevo/lircrc et les événements étant décrit dans le fichier event.py.

Clavier

Le but avoué de ce montage étant de ne plus avoir à utiliser que la télécommande, et ceci étant le cas chez moi, j'ai pu désactiver le clavier :

   * USE_SDL_KEYBOARD = 0

Cependant, laissez ce paramètre commenté / à 1 si vous comptez utiliser le clavier.

Commande des événements

Notre télécommande étant gérée par LIRC, on peut désactiver le paramètre EVENT_DEVS :

   * EVENT_DEVS = []

Réseau

Freevo peut utiliser de nombreux services via Internet pour récupérer le programme télé, écouter les webradios, rechercher des données sur un morceau / un CD, etc. Il semble donc plus qu'utile d'activer le réseau :

   * USE_NETWORK = 1

Attention, ceci ne gère pas la configuration du réseau. il vous faut donc vous assurer que votre ordinateur est connecté à internet avant le lancement de Freevo.

Gestion du cache

Freevo peut garder un certain nombre de données en cache pour accélérer l'utilisation. Le paramètre MEDIAINFO_USE_MEMORY défini l'utilisation de la mémoire vive pour le cache. Ayant peu de mémoire, j'ai défini le paramètre sur 0, ce qui permet de garder uniquement le répertoire courant en mémoire. Si vous avez plus de mémoire, vous pouvez définir le paramètre sur 1 ou sur 2.

   * MEDIAINFO_USE_MEMORY = 0

On active également le cache des images :

   * CACHE_IMAGES = 1

Fils RSS

Freevo intègre un lecteur de news plutôt simplissime, il suffit de l'activer car il ne l'est pas par défaut :

   * plugin.activate('headlines', level=45)
     Ensuite, le paramètre HEADLINES_LOCATIONS contient des tuples avec le nom du fil et l'adresse du fichier xml. Par défaut j'y ajoute 2 fils de nouvelles et le fil de notre planet préféré :
   * HEADLINES_LOCATIONS = [ ('LÉXPRESS', 'http://www.feediz.com/synd/1500.xml'), ('Echos Du Net','http://www.feediz.com/synd/1870.xml'), ('PUF','http://planet.ubuntu-fr.org/feed/rss2'),]

S'ensuit de nombreuses lignes de commentaires que vous pouvez observer (notamment le passage sur le CDROM, je ne l'ai pas activé n'ayant pas de lecteur).

Vidéo

La configuration de la lecture des vidéos est une fois encore pas très compliquée. Il suffit presque de définir les répertoires dans lesquels sont stockés les vidéos (vous vous rappelez, les 'rien' du début) :

   * VIDEO_ITEMS = [ ('Vidéos', ' votreuser/Videos'), ('USB', '/media/sda3') ]
     Pour définir des répertoires, le format est le suivant : [ ('NOM','/path/du/repertoire'), ('autrenom','autrepath') ].
     Si les répertoires n'existent pas, ils ne seront pas affichés grâce à notre HIDE_UNUSABLE_DISCS du début. Par conséquent, on peut se permettre de définir ici des points de montage n'acceuillant pas forcément quelque chose (disque externe pour moi).
     Il faut par contre, si le répertoire existe et n'est pas vide, que les permissions soient bonnes.
     Le choix par défaut pour le lecteur vidéo est mplayer, ce qui convient très bien, donc :
   * VIDEO_PREFERED_PLAYER = 'mplayer'

Audio

C'est un peu le même topo que pour le paramétrage de la partie vidéo, il suffit de définir les répertoires, le player, les formats audios :

   * AUDIO_ITEMS = [ ('Musique', '/home/votreuser/Musique'), ('USB','/media/sda2'), '/usr/share/freevo/fxd/webradio.fxd' ]
   * AUDIO_SUFFIX = [ 'mp3', 'ogg', 'wav','m4a', 'wma', 'aac', 'flac', 'mka' ]
   * AUDIO_PREFERED_PLAYER = 'mplayer'

Et voilà ... Comment ça non ? Ah oui, vous ne voyez pas ce qu'est ce paramètre bizarre : '/usr/share/freevo/fxd/webradio.fxd' .

C'est en fait le moyen qu'utilise freevo pour vous permettre d'écouter des WebRadios. Il utilise un fichier basé sur du xml contenant les descriptions des flux. Une base pour ce fichier est téléchargeable à l'adresse http://membres.lycos.fr/gouchi2k1/files/webradio-freevo.tar.bz2http://membres.lycos.fr/gouchi2k1/files/webradio-freevo.tar.bz2. Il vous suffit donc de faire :

wget http://membres.lycos.fr/gouchi2k1/files/webradio-freevo.tar.bz2

tar xvjf webradio-freevo.tar.bz2

sudo cp -a Webradio/src/img/ /usr/share/freevo/fxd/

sudo cp Webradio/src/webradio.fxd /usr/share/freevo/fxd/webradio-french.fxd

Si jamais vous trouvez un fichier plus complet, n'hésitez pas à le partager !

Ce fichier sera lu par Freevo qui y reconnaîtra une liste de Webradios qu'il vous proposera classée par thèmes dans le menu Musique.

Il va également être intéressant d'activer le plugin audio.detach :

   * plugin.activate('audio.detach')

Ce plugin permet de continuer à écouter de la musique sans rester bloqué sur le player, ce qui permet par exemple de regarder des photos ou de lire les news pendant ce temps. Une fois le morceau lancé, pour quitter l'écran, il suffit d'appuyer sur la touche ... DISPLAY (je vous avais dit qu'elle serait utile). Le player se range alors dans la barre en haut de l'écran et vous pouvez naviguer comme vous voulez dans Freevo.

Les images

Comme précédemment, configuration assez rapide et explicite :

   * IMAGE_ITEMS = [ ('Photos', ' votreuser/photos') ]
   * IMAGE_SUFFIX = [ 'jpg','gif','png','jpeg','bmp','tiff','psd' ]
     Vous pouvez définir des fichiers de slideshow permettant un défilement automatique des images.
     Il vous suffit alors de préciser l'extension de ces fichiers :
   * IMAGE_SSHOW_SUFFIX = [ 'ssr' ]
     Vous pouvez laisser ce paramètre commenté si vous ne prévoyez pas de l'utiliser.
     Freevo permet également une transition un peu plus belle qu'un bête changement d'image :
   * IMAGEVIEWER_BLEND_MODE = -1

0 fait un effet de transparence, 1 déplace la photo, et -1 fait les 2 de façon aléatoire.

Jeux

N'utilisant pas les jeux sur Freevo, je n'ai simplement rien activé dans cette partie.

Skin

Un certain nombre de thèmes sont inclus dans le paquets de Freevo, vous pouvez les voir dans le répertoire /usr/share/freevo/skins/main/, qui contient pour chaque thème le fichier fxd du thème et une image du thème 'en action'. Il vous suffit, une fois votre thème choisi, de faire :

   * SKIN_XML_FILE = 'mediaportal'
     (le nom du thème sans le .fxd pour ceux qui n'auraient pas compris). Vous pouvez également changer de skin en appuyant sur la touche display alors que vous êtes sur le menu principal.

Polices de caractères

Freevo peut utilisé des polices de caractères autres que celles inclues par défaut, il faut pour cela lui préciser où :

OSD_EXTRA_FONT_PATH = [ '/usr/X11R6/lib/X11/fonts/truetype/' ]

Vous pouvez également jouer un son lors des déplacements dans le menu grâce au paramètre OSD_SOUNDS (ce que je n'ai pas fait).

Télécommande

Pour activer lirc, rien de plus simple :

LIRCRC = '/etc/freevo/lircrc'

Oui oui, c'est tout :) (sauf bien sur qu'il est nécessaire que lircd se lance au démarrage et soit fonctionnel, ce que je ne détaillerais pas ici)

Mplayer

Comme Freevo utilise par défaut le logiciel Mplayer pour la lecture des fichiers audios et vidéos, on peut le paramétrer un peu via ce fichier de configuration :

MPLAYER_AO_DEV = 'alsa' DVD_LANG_PREF = 'fr,en'

Il faut également vérifier que les options pour mplayer contiennent bien le dvb :

MPLAYER_ARGS = { 'dvb' : '-vf pp=md -cache 1024', 'dvd' : '-cache 8192', 'vcd' : '-cache 4096', 'cd' : '-cache 1024 -cdda speed=2', 'tv' : '-nocache', 'ivtv' : '-cache 8192', 'avi' : '-cache 5000 -idx', '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' }

De nombreuses autres customisations sont possibles mais les choix par défaut sont largement assez performants pour moi :)

Il reste encore à définir les chaînes pour mplayer. Récupérez à l'adresse http://www.linuxtv.org/cgi-bin/viewcvs.cgi/dvb-apps/util/scan/dvb-t/ le fichier qui correspond au mieux à votre localisation géographique. Ensuite récupérez les chaînes par la commande :

scan fichierRecupéré > channels.conf

Le binaire scan se trouve dans le paquet dvb-utils. Une fois le fichier créé, il faut le mettre dans le répertoire de mplayer :

mv channels.conf /.mplayer/

Enregistrements

Le paramétrage de l'enregistrement se fait en précisant un répertoire de sauvegarde :

TV_RECORD_DIR = "/home/votreuser/Records"

L'enregistreur de Freevo est un service dédié séparé de freevo, et communiquant via socket réseau (cela peut par exemple permettre de l'avoir sur un autre ordinateur).

//TODO détailler la configuration de l'enregistreur que je n'ai pas encore mis en place

Paramétrage de la télé

C'est sûrement une des sections les plus complète, pour ne pas la détailler, voici ce qui peut être intéressant :

TIMESHIFT_BUFFER_SIZE = 512 TIMESHIFT_ENCODE_CMD = 'mp1e -m3 -c%s -p%s -r14,100' % (TV_SETTINGS.split()[3], AUDIO_INPUT_DEVICE) TIMESHIFT_BUFFER = '%s/timeshift.mpeg' % FREEVO_CACHEDIR

Cela correspond aux paramètres d'enregistrement pour le 'direct décalé'. La taille du buffer influence directement le temps de pause maximal.

Il est également possible de modifier l'affichage de la date, la description à ce sujet étant très détaillée dans le fichier de configuration.

TV_RECORDFILE_MASK = '%%m-%%d %%H:%%M %(progname)s - %(title)s'

Cette option vous permet de définir le format du nom de fichier des enregistrements.

TNT

La configuration de la TNT se détaille en 2 parties, la première au sein de ce fichier de configuration :

VIDEO_GROUPS[0].group_type = 'dvb'

TV_CHANNELS = [('C1.telepoche.com', 'TF1', 'TF1' ), ('C2.telepoche.com', 'France 2', 'France 2' ), ('C3.telepoche.com', 'France 3', 'France 3' ), ('C4.telepoche.com', 'Canal +', 'Canal +' ), ('C7.telepoche.com', 'France 5', 'France 5' ), ('C6.telepoche.com', 'M6', 'M6' ), ('C5.telepoche.com', 'Arte', 'Arte' ), ('C167.telepoche.com', 'Direct 8', 'Direct 8' ), ('C38.telepoche.com', 'W9', 'W9' ), ('C9.telepoche.com', 'TMC', 'TMC' ), ('C168.telepoche.com', 'NT 1', 'NT 1 ' ), ('C169.telepoche.com', 'NRJ 12', 'NRJ 12' ), ('C170.telepoche.com', 'LCP', 'LCP' ), ('C28.telepoche.com', 'France 4', 'France 4' ), ('C122.telepoche.com', 'I<TV', 'I<TV' ), ('C193.telepoche.com', 'Europe 2 TV', 'Europe 2 TV' ) ]

Le premier champ de chaque entrée doit correspondre au nom donné par xmltv pour pouvoir avoir les programmes (ce qui est le cas ici)

Reste à préciser à Freevo d'utiliser _tv_grab_fr pour récupérer les programmes :

XMLTV_GRABBER = 'tv_grab_fr' XMLTV_DAYS = 1

Le deuxième paramètre correspondant au nombre de jour de programme à récupérer. Il suffira pour cela de lancer la commande 'freevo tv_grab' une fois xmltv configuré.

Si votre media center est éteint tous les jours, il peut être intéressant de mettre cette commande au démarrage (on le verra plus tard). Si il reste allumer, le meilleur moyen reste encore de le mettre dans un cron.

Les lignes de configurations suivantes permettent le fonctionnement de différents daemon de Freevo, tels qu'un serveur de news RSS, un serveur Web pour le contrôle à distance, etc ... Nous ne l'utiliseront pas ici, et je ne le détaillerait donc pas !

S'ensuivent à nouveau quelques paramètres de configurations de xmlTV :

XMLTV_FILE = '/tmp/TV.xml'

Fichier dans lequel seront stockées les chaînes

TV_LOGOS = OS_CACHEDIR + '/xmltv/logos'

Cela permettra de récupérer les logos des chaînes et de les stocker dans ce répertoire (devant exister). Il faudra pour cela faire une fois la commande :

freevo makelogos

Et enfin, définition de la locale :

LOCALE='utf-8'

Bar d'état

La barre d'état, ou 'Idle bar' se situe en haut de Freevo, et peut contenir un certain nombre d'items, tels que l'état de la TV, du disque, l'heure. Un exemple de paramétrage est :

plugin.activate('idlebar')

plugin.activate('idlebar.tv', level = 20)

plugin.activate('idlebar.diskfree', level = 30)

plugin.activate('idlebar.clock', level = 50)

plugin.activate('idlebar.system.procstats',level=20)

CLOCK_FORMAT = '%a %d %H:%M'

DISKFREE_VERY_LOW = 20

DISKFREE_LOW = 50

Les DISKFREE* correspondent aux changements de couleurs de la bar de place restante (en GigaOctets).

Amazon

Le site Amazon.com peut vous permettre de télécharger les pochettes de CD. Il faut pour cela créer un compte à l'adresse http://www.amazon.com/webservices, puis récupérer sa clé de "développeur".

Il vous reste ensuite à ajouter ces lignes :

AMAZON_LOCALE = 'us' AMAZON_QUERY_ENCODING = 'utf-8' plugin.activate('audio.coversearch', args=('1234567890AZERTYUIO'))

Malheureusement, 'fr' ne fait pas parti des locales supportées.

Domotique

Si vous utilisez du X10, pour, par exemple, contrôler vos prises, un petit plugin vous permettra de le faire à partir de Freevo.

Si vous n'en avez pas, passez cette partie :)

Il fait tout simplement appel à un programme externe. J'utilise heyu car il est simple d'utilisation et fonctionne pas trop mal. il n'est pas dans les dépôts, mais est téléchargeable http://heyu.tanj.com/heyu/http://heyu.tanj.com/heyu/ et se compile tout seul.

Une fois ce logiciel installé, il vous suffit d'ajouter ceci à la fin de votre fichier de configuration :

plugin.activate('home_automation') AUTOMATION_ITEMS = [('Chambre', , ('Lampe',('Allumer','heyu on A2','Éteindre','heyu off A2')), ('Parfum',('Allumer','heyu on A3','Éteindre','heyu off A3')) )]

La syntaxe de la variable AUTOMATION_ITEMS est : [ ('LIEU',,('MODULE2',( ...))) ] .

Ici par exemple, j'ai une seule pièce, la chambre, ayant une guirlande, une lampe et un diffuseur de parfum, que je peux allumer ou éteindre, ce qui appellera la commande ' heyu (on|off) Ai' .

Cela sera représenté sur Freevo par un nouveau menu avec les éléments par pièce.

Vous pouvez maintenant contrôler vos lumières (et bien plus) via votre télécommande !

Paramétrages externes

Voilà, votre Freevo commence à être un tantinet fonctionnel, reste maintenant à l'installer bien comme il faut sur votre système

Nettoyage

Bon, vous n'avez besoin que d'un serveur X, à la poubelle les diverses Windows Manager, Freevo se gère lui même comme tel. Vous pouvez donc juste garder les xserver-xorg-* et épargner les quelques Mo occupés par vos WM. Il vous faut également les logiciels utilisés par Freevo, à savoir :

MPlayer

xmlTV

Heyu (si vous faites du X10)

Éventuellement autre chose si vous avez activé d'autres options comme l'encodage de CD audios.

Pour heyu, récupérez l'archive sur le site (cf url plus haut), décompressez là, puis ./Configure (attention au 'C'), make && sudo make install . Il faut que votre adaptateur soit branché pour le make.

XmlTV

Reste à configurer xmlTV, pour cela ouvrez un terminal, et dans le homedir de l'utilisateur, effectuez :

tv_grab_fr -configure

Qui vous demandera les chaînes à récupérer.

Freevo peut utiliser lui même xmltv avec les configurations qu'on lui a fourni. Mon MediaCenter étant arrêté tous les jours, j'ai pris le parti de mettre l'update dans le .xinitrc.

Si vous le laissez allumé plus souvent, il serait plus judicieux de le rajouter dans le crontab.

Donc éditez le votreuser/.xinitrc, puis ajoutez y:

/usr/bin/freevo tv_grab &

/usr/bin/freevo

N'oubliez pas l'esperluette sur la première ligne, car l'opération prend du temps et vous risquez donc d'attendre au démarrage si vous la mettez pas.

Serveur SSH

Il pourra être (très) intéressant de pouvoir accéder à notre media center à distance, pour cela :

sudo apt-get install openssh-server

Montage USB

N'ayant pu de daemon Gnome / KDE / smthgelse pour gérer les mounts USB, on va installer et configurer ivman :

apt-get install ivman

Puis éditez (en sudo), le fichier /etc/ivman/IvmConfigBase.xml, qui contient les paramètres principaux d'IvMan.

Nous allons modifier l'utilisateur sous lequel les partitions seront montées :

<ivm:Option name="user" value="VOTREUSER" />

Il peut également s'avérer utile de définir directement les mounts directement dans /etc/fstab, rien de bien compliqué, le format de la ligne étant :

/dev/sdaX /media/mountpoint ext3 user 0 0

Cependant, l'inconvénient des disques USB est qu'ils ne sont pas forcément toujours reconnus de la même façon, c'est à dire qu'il pourra lors d'un démarrage se trouver en /dev/sdaX, puis lors d'un autre sur /dev/sdbX .

Pour contourner ce problème, une des méthodes simple est d'utiliser les labels. Sur des disques en ext2/3, le plus simple étant d'utiliser e2label.

Branchez votre disque dur externe, regardez si il est en /deb/sda, /dev/sdb, ou autre (vous verrez des chiffres correspondant au numéro des partitions.

Une fois vos partitions identifiées, il vous suffit de faire :

sudo e2label /dev/sdaX MonLabel

Et votre partition portera désormais le nom "MonLabel".

Il suffit ensuite de modifier la première partie de la ligne du /etc/fstab :

LABEL=MonLabel /media/mountpoint ext3 user 0 0

Et voilà votre partition qui se montera quelque soit sa correspondance système.

Getty

On à presque fini tout notre petit montage (on se réveille au fond de la classe). Reste un petit détail : Activer l'auto-connexion au compte de l'utilisateur lors du démarrage.

Pour cela, éditez le fichier /etc/event.d/tty6 .

Ces fichiers servent à définir le comportement des tty (les textes bizarre sur écran noir :))

Remplacez la dernière ligne qui doit être :

exec /sbin/getty 38400 tty6

Par :

exec /sbin/mingetty -noclear -autologin tele tty6

Enregistrez et fermez le fichier, puis un petit :

sudo apt-get install mingetty

PS: On pourrait encore optimiser un peu le système en désactivant certains tty au démarrage et en en gardant pas exemple que 2 tty.

Si vous désirez le faire, éditez les fichiers /etc/event.d/tty[2345], puis enlevez les lignes commençant par 'start' .

Pour finir

Bon, bah il me semble que nous avons fait le tour de la configuration.

Un dernier petit détail pourrait être d'alléger les services au démarrage. Pour cela je conseille l'utilisation de sysv-rc-conf :

sudo apt-get install sysv-rc-conf && sudo sysv-rc-conf

Il ne vous reste plus qu'à décocher les programmes ne devant pas être lancés au démarrage.

Attention ... Reboot final, vérifiez que vous avez bien tout enregistré, puis redémarrez.

- page 1 de 2