Tym-Project

From: SUPINFO
To: Tous
Subject: IT

Ma Nouvelle Configuration Media Center Sous Linux

J’avais déjà évoqué dans un précédent article que je possède un Media center sous Linux. Suite à une petite bidouille malheureuse, il s’est retrouvé complètement planté. J’ai donc décidé de tout réinstaller à partir de zéro et de documenter (un peu) l’opération.
Je vais donc détailler les principaux composants de cette installation, sans pour autant rentrer dans les détails (utilisez les commentaires si besoin).

Qui suis-je, où vais-je, …

… dans quelle étagère ? Avant de mettre les mains dans la console, une petite explication de l’utilisation que je fais de ma machine s’impose :

  • Je passe beaucoup de temps sur Xbmc, un très bon logiciel de Media Center
  • Je regarde aussi beaucoup Nolife Online (Abonnez vous !)
  • Je n’exclue pas l’idée d’utiliser d’autres services de TV de rattrapage comme M6 Replay par exemple.

Je possède un clavier sans-fil avec Trackball intégré (celui-ci) ainsi qu’une télécommande “compatible Windows Media Center” achetée sur e-bay.

Arch’ mon ami !

Archlinux m’a semblé être le meilleur choix comme distribution pour Mediator (le nom que j’ai donné à cette machine…bien avant le scandale sur le médicament du même nom). Outre sa flexibilité, j’apprécie surtout le fait d’avoir des paquetages très récents…très utile pour les drivers vidéo par exemple. C’est aussi une distribution pour laquelle l’installation de base est très légère, sans fioritures. Oui, je pense à Ubuntu en disant cela :) J’ai donc réalisé une installation tout à fait classique, j’ai seulement eu un petit souci avec la configuration de Grub pour le kernel 3.0 qui fera l’objet d’un prochain (court) article.

Boot –> Bureau

Pour me simplifier un peu la vie j’ai décidé d’utiliser un gestionnaire de login. L’heureux élu est “bien entendu” Slim, pour sa légèreté et sa facilité de configuration. L’utilisateur principal autre que root est server, et j’ai donc configuré le login automatique de ce dernier via Slim (dans le fichier /etc/slim.conf) :

default_user server
auto_login yes

Gère moi cette fenêtre !

Mon choix pour le Window Manager s’est porté, pour les mêmes raisons que Slim, vers PekWM. La configuration générale que j’utilise pour ce dernier est assez simple, j’ai seulement désactivé les bureaux virtuels et changé le thème. En ce qui concerne les raccourcis clavier, voici un extrait de mon fichier ~/.pekwm/keys :

Global {
    KeyPress = "XF86AudioLowerVolume" { Actions = "Exec /home/server/scripts/bash_vol_manager.sh lower 5 &" }
    KeyPress = "XF86AudioRaiseVolume" { Actions = "Exec /home/server/scripts/bash_vol_manager.sh raise 5 &" }
    KeyPress = "XF86AudioMute" { Actions = "Exec /home/server/scripts/bash_vol_manager.sh toggle &" }
    KeyPress = "XF86Mail" { Actions = "Exec /home/server/scripts/xbmc.sh &" }
    KeyPress = "Alt Mod4 Alt_L" { Actions = "Exec /home/server/scripts/xbmc.sh &"}
    KeyPress = "XF86Sleep" { Action = "Exec /home/server/scripts/stop.sh &" }
...

J’ai donc la gestion du volume avec un petit script maison (que je détaillerais dans un autre post), l’ouverture de Xbmc (via les boutons multimédia “Mail” de mon clavier et le bouton “Start” de ma télécommande). Enfin la touche “Power” de ma télécommande (qui envoie le signal XF86Sleep) pour éteindre la machine.
Le dernier raccourci ne fonctionne pas…et j’ignore pourquoi (ce n’est pas lié au script associé). Je suis preneur de vos suggestions !

Le script ~/.pekwm/start contient les lignes suivantes :

#!/bin/sh
firefox &
sleep 3
/home/server/scripts/xbmc.sh &

Le temps de pause entre le lancement de Firefox et celui de Xbmc permet d’éviter que ce dernier perde le plein écran à cause du précédent.

Trop fort !

Avec mon installation précédente je devais souvent jongler avec le volume entre une vidéo sur Firefox et un média quelconque sur Xbmc. Le volume doit être poussé au maximum sur Xbmc, mais à environ 70% sur Firefox, pour entendre correctement dans mon salon.
J’ai donc réfléchi à un moyen d’automatiser ce changement de volume, et cela s’est traduit par le script xbmc.sh :

#!/bin/bash
amixer -c 0 sset Master 100%
xbmc
amixer -c 0 sset Master 68%

Simple mais efficace, il pousse le volume à fond puis lance Xbmc. Ce dernier n’étant pas lancé en arrière plan, dès qu’il est quitté le volume est placé à 68%. Ce script est utilisé à la fois dans ~/.pekwm/start et ~/.pekwm/keys.

Firefox (à la loupe, sans la loupe)

J’ai abandonné mon système de loupe pour quelque chose de plus simple : pousser à fond la taille des caractères à l’écran (Preferences>Content>Fonts & Colors>Advances>Maximum font size). C’est moche mais pratique, l’avenir me dira si c’est réellement une bonne alternative. J’ai aussi modifié le about:config pour désactiver la restauration des onglets au lancement (en cas de crash ou non) :

browser.sessionstore.resume_from_crash;false
browser.sessionstore.max_tabs_undo;0
browser.sessionstore.max_windows_undo;0

shutdown -s -t now

Si il est toujours possible d’autoriser la mise hors tension du système via des bidouilles avec sudo et halt, cela reste des bidouilles. La manière la plus simple est en fait d’utiliser consolekit, policykit et dbus… en effet : c’est prévu pour.
Avant tout il faut modifier ~/.xinitrc ainsi :

#exec pekwm
exec ck-launch-session pekwm

Pour tester si vous avez les droits pour couper le système (par exemple), utilisez cette commande qui vous renverra true ou false :

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.CanStop

La commande à utiliser pour éteindre la machine sera alors la suivante (une simple modification de la dernière directive) :

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

Si jamais vous n’avez pas les droits, ou êtes simplement curieux, la configuration se situe dans le fichier /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy. Une commande est autorisée par la directive <allow_active>yes</allow_active>, mais j’ai parfois dû utiliser <allow_any>yes</allow_any>

“Moi vivant, vous n’aurez jamais de pauses”

Par défaut le serveur X coupe l’écran au bout d’un temps donné pour économiser de l’énergie. Cela va sans dire que c’est insupportable pour un écran qui est censé être allumé en permanence avec la machine… Une petite configuration dans /etc/X11/xorg.conf et hop !

Section "ServerFlags"
    Option "BlankTime" "0"
    Option "StandbyTime" "0"
    Option "SuspendTime" "0"
    Option "OffTime" "0"
EndSection

Sources

Bonne utilisation ;-)

Comments