Configurer un lecteur multimédia dédié avec Debian Etch
Auteur : Olivier BOYER - oboyer () ajoute ! org
Mots clés
Debian, clé usb, lecture seule, multimédia, lecteur, player
Introduction
Ce document présente comment configurer un système Linux Debian Etch 4.0 (stable) en lecteur multimédia (Audio, DVD, Divx, Photos) dédié. Pour une plus grande facilité d'utilisation, ce lecteur est installé sur une clé USB montée en lecture seule. Tous les processus utilisateurs sont exécutés sous l'identité d'un utilisateur dédié : player. Le répertoire d'accueil (home) de cet utilisateur doit être sur un système de fichiers accessible en écriture : sur un disque dur additionnel, un montage NFS, …
Présentation de la maquette
- Un ordinateur compatible PC, architecture i386, doté d'un port USB (version 2 fortement recommandée).
- Une clé USB (au moins 1Go).
Avec très peu de modifications, les éléments présentés ci-dessous peuvent s'appliquer à un disque dur local.
Note
Toutes les commandes présentées ici, sont à exécuter, sauf mention contraire, en tant qu'administrateur de la machine.
Pré-requis
- La configuration décrite dans le document Installer Debian Etch (4.0 - stable) sur une clé USB fonctionnelle.
- La configuration réseau du système opérationnelle.
- Un lecteur DVD pour lire des DVD-Vidéo est facultatif, mais utile.
Installer et configurer Debian Etch sur la clé USB
L'installation et la configuration du système Linux Debian sur la clé USB avec une racine en lecture seule est décrite dans le document Installer Debian Etch (4.0 - stable) sur une clé USB.
Toutes les commandes présentées dans la suite de ce document sont à exécuter sur un système dont la racine / est en écriture. Exécutez la commande suivante :
# mount -o remount,rw /
Installer les paquets nécessaires à un lecteur multimédia
Le système actuel (configuré en suivant le document Installer Debian Etch (4.0 - stable) sur une clé USB), ne contient ni environnement graphique, ni application nécessaire à un lecteur multimédia. Il faut installer ces paquets.
Les sections suivantes présentent l'installation du serveur X, de lecteurs multimédia (en gtk), et d'un environnement graphique (xfce). Adaptez ces applications à vos goûts et besoins.
Modifier le fichier /etc/apt/sources.list
Le fichier /etc/apt/sources.list contient la liste des sources d'installation des paquets pour la distribution. Par défaut, seule la source main est configurée. Exécutez les tâches décrites ci-dessous.
- Sauvez la configuration précédente :
# cd /etc/apt # cp sources.list sources.list.orig
- Modifiez le fichier
/etc/apt/sources.listcomme suit :
# /etc/apt/sources.list deb http://debian.cict.fr/debian/ etch main contrib non-free deb-src http://debian.cict.fr/debian/ etch main contrib non-free deb http://security.debian.org/ etch/updates main contrib non-free deb-src http://security.debian.org/ etch/updates main contrib non-free #EOF
- Mettez à jour la liste des paquets disponibles :
# apt-get update
Installer le paquet localepurge
Par défaut, lors de l'installation d'un paquet, un système Linux Debian installe les traductions pour une grande variété de langues. Dans notre cas, seules les langues anglaise (langue par défaut d'un système Unix), et française sont nécessaires. Pour supprimer automatiquement les langues inutiles (et ainsi gagner de l'espace disque), installez le paquet localpurge comme suit :
# apt-get -y install localepurge
Choisissez les locales suivantes :
- en
- fr
- fr_FR
- fr_FR@euro
- fr_FR.UTF-8
Installer les paquets principaux
Pour installer les paquets listés dans cette section, exécutez la commande suivante :
# apt-get -y install <nom_du_paquet1> <nom_du_paquet2> <...>
base
Ces paquets installent les composants de base de lecteur : modules son, serveur X, fontes, gestionnaire de périphériques, …
alsa-base alsa-utils xorg ttf-freefont ttf-bitstream-vera xscreensaver hal hal-device-manager pmount avahi-daemon input-utils sudo
standard
Ces paquets ne sont pas strictement nécessaires au fonctionnement du lecteur multimédia. Cependant, ils apportent des fonctionnalités intéressantes : impression, support des protocoles réseaux, outils de compression, …
gdm host cupsys cupsys-client nfs-common ssh telnet ntpdate gpm less screen bzip2 unzip unrar
Effacez les fichiers temporaires générés lors de l'installation :
# apt-get autoclean
Installer les paquets multimédia
Ces paquets permettent de gérer une collection de musique, de lire des DIVX, des DVD-vidéo, des CD audio, de visionner des photos, de naviguer sur Internet, de gaver des CD/DVD, d'encoder des CD audio, …
Pour installer les paquets listés dans cette section, exécutez la commande suivante :
# apt-get -y install <nom_du_paquet1> <nom_du_paquet2> <...>
rhythmbox gcstar gstreamer0.10-ffmpeg gstreamer0.10-pitfdll gstreamer0.10-plugins-bad xine-ui gxine libdvdnav4 firefox mozilla-firefox-locale-fr-fr gxineplugin flashplugin-nonfree gthumb gnome-media grip vorbis-tools cdparanoia gnomebaker gtk2-engines-pixbuf gnome-osd
Effacez les fichiers temporaires générés lors de l'installation :
# apt-get autoclean
Installer les paquets multimédia non libres
Certains paquets nécessaires au fonctionnement du lecteur multimédia ne sont pas distribuables par les mainteneurs de Debian pour des raisons de licence. Heureusement, le site debian-multimedia.org distribue les paquets qui manquent.
/etc/apt/sources.list
Ajoutez les lignes suivantes au fichier /etc/apt/sources.list :
# debian-multimedia : paquets non officiels deb http://www.debian-multimedia.org/ etch main
Mettez à jour la liste des paquets disponibles. Un “warning” sur la signature numérique des paquets de “debian-multimeda” va apparaître. C'est normal, la clé PGP de signature des paquets de ce fournisseur n'est pas encore installée. Elle le sera via la seconde commande.
# apt-get update # apt-get -y install debian-multimedia-keyring # apt-get update
Installer les paquets
Pour installer les paquets listés dans cette section, exécutez la commande suivante :
# apt-get -y install <nom_du_paquet1> <nom_du_paquet2> <...>
mozilla-acroread w32codecs realplayer libdvdcss2 gstreamer0.10-plugins-really-bad gstreamer0.10-lame lame
Effacez les fichiers temporaires générés lors de l'installation :
# apt-get autoclean
Installer les paquets de l'environnement graphique
L'environnement graphique XFCE, a été retenu car il répond aux critères suivants :
- libre,
- léger,
- intégré,
- activement développé,
- configurable via une interface graphique.
Cependant, la version d'XFCE, livrée dans les paquets de Debian stable, n'est pas à jour. Pour en utiliser une plus récente, il faut installer les paquets fournis par Debian Backports.
/etc/apt/sources.list
Ajoutez les lignes suivantes au fichier /etc/apt/sources.list :
# backports : paquets non officiels deb http://www.backports.org/debian etch-backports main contrib non-free
Mettez à jour la liste des paquets disponibles. Un “warning” sur la signature numérique des paquets de “backports” va apparaître. C'est normal, la clé PGP de signature des paquets de ce fournisseur n'est pas encore installée. Elle le sera via la seconde commande.
# apt-get update # apt-get -y install debian-backports-keyring # apt-get update
Installer les paquets
Pour installer les paquets listés dans cette section, exécutez la commande suivante :
# apt-get -y -t etch-backports install <nom_du_paquet1> <...>
xfwm4 xfwm4-themes xfdesktop4 gamin xfce4-session xfce4-mcs-manager xfce4-mcs-plugins xfce4-icon-theme xfce4-terminal thunar thunar-archive-plugin thunar-media-tags-plugin mousepad orage
Puis ajoutez, le paquet xfmedia à partir du dépôt officiel :
# apt-get -y install xfmedia
Effacez les fichiers temporaires générés lors de l'installation ;
# apt-get autoclean
Installer les paquets optionnels
Les paquets de cette section sont sans rapport avec la lecture multimédia, mais peuvent être utiles au quotidien.
Pour installer les paquets listés dans cette section, exécutez la commande suivante :
# apt-get -y install <nom_du_paquet1> <nom_du_paquet2> <...>
file-roller gcalctool stardict-gtk stardict-xmlittre pidgin x11vnc zenity gksu xbindkeys xvkbd
Effacez les fichiers temporaires générés lors de l'installation :
# apt-get autoclean
Spécialiser le système en lecteur multimédia
Configurer le matériel
La carte son
La configuration de la carte son est simplifiée grâce à l'outil alsaconf. Exécutez la commande suivante, et laissez-vous guider à travers les menus interactifs.
# alsaconf
La carte graphique
Lors de l'installation du meta-paquet xorg vous avez répondu à un certain nombre de questions. Vos réponses ont permis de générer le fichier /etc/X11/xorg.conf. Vous pouvez conserver ce fichier de configuration, ou en créer un nouveau soit :
- en éditant le fichier
/etc/X11/xorg.congà la main, - en utilisant les outils de la distribution Debian :
# dpkg-reconfigure xserver-xorg
Créer un utilisateur dédié
Toutes les applications du lecteur vont s'exécuter sous l'identité d'un utilisateur dédié : player (du groupe dédié player).
Attention : le répertoire d'accueil de cet utilisateur (ici /home/player) doit être sur un système de fichiers en écriture. Par exemple, une partition dédiée sur la clé USB, un disque dur local, un volume NFS, … Il est aussi possible de créer ce volume dans un système de fichiers en mémoire, mais dans ce cas, il faut mettre en place un mécanisme pour que les configurations de l'utilisateur ne soient pas perdues à chaque arrêt de la machine.
Pour créer cet utilisateur exécutez les commandes suivantes :
- Créez le groupe
player:
# groupadd player -g 1000
- Créez l'utilisateur
player:
# useradd player -m -u 1000 -g 1000 -c "Player User" -d /home/player -s /bin/bash
- Saisissez un mot de passe pour cet utilisateur :
# passwd player
- Configurez les groupes supplémentaires :
Ajoutez l'utilisateur aux groupes dialout, cdrom, floppy, audio, video, plugdev. En effet, les permissions par défaut sur un système Linux Debian imposent qu'un utilisateur fasse parti des groupes précédents pour pouvoir accéder aux ressources matérielles du même nom.
Exécutez la commande suivante :
# usermod -aG dialout,cdrom,floppy,audio,video,plugdev player
Désactiver les services inutiles
Dans le cadre d'utilisation du système certains services, automatiquement démarrés, s'avèrent inutiles. Pour “économiser” des ressources matérielles, il est préférable de les désactiver. Procédez comme suit :
# update-rc.d -f cron remove # update-rc.d -f sysklogd remove # update-rc.d -f openbsd-inetd remove # update-rc.d -f hwclock.sh remove
Démarrer automatiquement l'interface graphique
Pour exécutez une session graphique au démarrage de la machine (en tant qu'utilisateur player), plusieurs possibilités sont offertes :
- installer un gestionnaire de session (comme
gdm), ou - modifier le fichier
/etc/inittab, ou - modifier
/etc/rc.local, ou - créer un nouveau script dans le répertoire
/etc/init.d(cette solution est décrite en Annexe 1).
L'utilisation d'un gestionnaire de session graphique apparaît comme la solution la plus simple à mettre en oeuvre. Le Gnome Display Manager, gdm pour les intimes, permet d'ouvrir automatiquement une session sous l'identité d'un utilisateur donné.
Modifiez comme suit le fichier : /etc/gdm/gdm.conf.
Les paramètres les plus importants dans ce cadre d'utilisation sont ceux de la section [daemon] :
[daemon] AutomaticLoginEnable=true AutomaticLogin=player
En cours d'exécution, gdm(1) accède en écriture au répertoire : /var/lib/gdm. Le script /etc/init.d/mountprereadonly.sh créé lors de l'installation du système se charge de gérer cet accès en écriture, bien que le système soit en lecture seule.
Modifier le fichier /etc/rc.local
Le script /etc/rc.local est exécuté à la fin de la procédure de démarrage du système. Le contenu de ce script est laissé au libre arbitre de l'administrateur local. Il convient donc parfaitement aux derniers réglages du système.
Ajoutez les lignes suivantes au fichier /etc/rc.local :
PATH="/usr/bin:/usr/sbin" # Set date and time from remote host ntpdate -b fr.pool.ntp.org # Set volume at 80% amixer -q sset PCM 80% unmute exit 0 #EOF
Accélérer le démarrage
Avant le démarrage du système Debian, un menu de sélection apparaît pendant 5 secondes. Dans le cadre d'utilisation de ce système, le choix par défaut est toujours validé. Il est donc possible de réduire le temps de présentation du menu de 5 secondes à 1 (voir à 0).
Modifiez la ligne timeout du fichier /boot/grub/menu.lst :
timeout 5
par :
timeout 1
Liens
ANNEXE 1 : démarrer X sans gdm
Si vous souhaitez ouvrir automatiquement une session graphique au démarrage du système, sans utiliser de gestionnaire de session, procédez comme suit :
Désactiver le démarrage de gdm
Exécutez la commande suivante :
# update-rc.d -f gdm remove
Modifier le fichier /etc/X11/Xwrapper.config
La configuration par défaut d'un système Linux Debian interdit l'ouverture d'une session graphique à tout utilisateur non connecté à la console.
Pour autoriser l'utilisateur player à ouvrir automatiquement une session graphique, sans être à la console, modifiez, comme suit, le fichier /etc/X11/Xwrapper.config :
#allowed_users=console allowed_users=anybody
Créer le script /etc/init.d/startx
Le script /etc/init.d/startx est ajouté à ceux déjà présents dans le système Linux Debian. Ce script se charge de vérifier la présence du répertoire d'accueil de l'utilisateur, puis d'exécuter la commande startx(1) sous l'identité de l'utilisateur player.
Créez comme suit le fichier /etc/init.d/startx.
Fixer les permissions
Exécutez les commandes ci-dessous :
# chown root:root /etc/init.d/startx # chmod 755 /etc/init.d/startx
Insérer le fichier dans la procédure de démarrage
Le script /etc/init.d/startx doit être exécuté au plus tard dans la procédure de démarrage, et au plus tôt dans la procédure d'arrêt. Exécutez la commande suivante :
# update-rc.d startx start 99 2 3 4 5 . stop 01 1 6 . Adding system startup for /etc/init.d/startx ... /etc/rc1.d/K01startx -> ../init.d/startx /etc/rc6.d/K01startx -> ../init.d/startx /etc/rc2.d/S99startx -> ../init.d/startx /etc/rc3.d/S99startx -> ../init.d/startx /etc/rc4.d/S99startx -> ../init.d/startx /etc/rc5.d/S99startx -> ../init.d/startx
Pour tester l'ouverture automatique de la session, redémarrer la machine.