まこと の ブログ

MaKoTo no burogu — Journal de bord…

Aller au contenu | Aller au menu | Aller à la recherche

Recycler un vieil ordi en MediaCenter -4-

Suite du troisième épisode :

xbmc sur Ubuntu 10.04 minimal


I - Installation du système de base Ubuntu minimal :

Télécharger l'image iso d'ubuntu alternate, graver le cd et booter l'ordi dessus, au menu :

  1. Choisir la langue.
  2. Appuyer sur F4 et sélectionner installer un système en ligne de commande, Valider.
  3. Valider sur installer Ubuntu.


II - Installation :

En Annexe de ce billet, un script téléchargeable automatise toutes ces commandes !

  • Mise à jours du système :
sudo apt-get update
sudo apt-get upgrade
  • Installation du serveur graphique :
sudo apt-get install xserver-xorg-video-all xfonts-base xinit x11-xserver-utils
  • Installation de python-software-properties nécessaire à la commande add-apt-repository :
sudo apt-get install python-software-properties
  • Ajout du dépôt PPA xbmc (ajoute automatiquement dans le ficher : /etc/apt/sources.list.d/team-xbmc-ppa-lucid.list l'url à jour du dépôt, ici et jusqu'à nouvel ordre : «deb http://ppa.lauchpad.net/team-xbmc/ppa/ubuntu lucid main») :
sudo add-apt-repository ppa:team-xbmc
  • Installation d' XBMC :
sudo apt-get update
sudo apt-get install xbmc
  • Installation du son :
sudo apt-get install alsa-utils
  • Installation des pilotes NVIDIA propriétaires (pour bénéficier de la sortie TV et des effets 3D) :
sudo apt-get install nvidia-common nvidia-current nvidia-current-modaliases
  • Installation de sshfs, pour le partage de fichiers en réseau :
sudo apt-get install sshfs
  • Ajouter l'utilisateur au groupe fuse :
sudo usermod -a -G fuse MONLOGIN
  • Installation d'autofs, pour le montage automatique des usb et dvd :
sudo apt-get install autofs
  • Installation de mingetty pour l'automatisation de l'identification :
sudo apt-get install mingetty
  • Nettoyage des paquets téléchargés :
sudo apt-get clean

ou

sudo rm /var/cache/apt/archives/*.deb


Premier Test :

  • Démarrer le serveur graphique X :
startx
  • Puis dans la console de X :
xbmc

Il se peut qu'une alerte s'affiche indiquant qu'il est nécessaire de disposer d'une carte graphique 3D

  • Sortir et quitter X :
exit


III - Configuration :

1- Carte graphique, activation de la sortie TV :

  • Créer le fichier /etc/X11/xorg.conf, avec dedans :
sudo nano /etc/X11/xorg.conf
Section "Screen"
    Identifier    "Default Screen"
    DefaultDepth    24
EndSection

Section "Module"
    Load    "glx"
EndSection

Section "Device"
    Identifier    "Default Device"
    Driver    "nvidia"
    Option    "NoLogo"    "True"
    Option    "TwinView"	"True"
	Option	"TwinViewOrientation"	"Clone"
	Option	"MetaModes"	"1024x768,1024x768"
	Option	"TVOverscan"	"0.6"
	Option	"TVStandard"	"PAL-B"
	Option	"ConnectedMonitor"	"CRT,TV"
EndSection


Tests avec branchement sur la TV :

  • Démarrer le serveur graphique X :
startx
  • Puis dans la console de X :
xbmc

Çà marche !!!

  • Sortir et quitter X :
exit


2 - Carte son :

  • Modification des niveaux sonores, dé-muter les entrée/sorties :
sudo alsamixer

La touche «m» pour dé-muter, les flèches pour se déplacer et augmenter/baisser les niveaux.

  • Sauvegarder ces réglages :
sudo alsactl store 0
  • Ajouter son utilisateur au groupe «audio» à.
sudo gpasswd -a MONLOGIN audio
  • Vérifier…
grep 'audio' /etc/group


3 - Placer les fichiers temporaires en mémoire vive dans fstab :

sudo nano /etc/fstab
tmpfs      /tmp		tmpfs	defaults,size=256M	0    0
tmpfs      /var/tmp	tmpfs	defaults,size=256M	0    0
tmpfs      /var/lock	tmpfs	defaults,size=256M	0    0


IV - Automatisation :

1 - Montage automatique des périphériques USB et DVD :

  • À la fin du fichier /etc/auto.master, ajouter :
sudo nano /etc/auto.master
/home/MONLOGIN/usb		/etc/auto.usb 	--ghost,--timeout=30
/home/MONLOGIN/dvd		/etc/auto.misc	--ghost,--timeout=30
  • Créer /etc/auto.usb avec dedans :
sudo nano /etc/auto.usb
cle1	-fstype=vfat,rw	:/dev/sdb1
cle2	-fstype=vfat,rw	:/dev/sdc1
cle3	-fstype=vfat,rw	:/dev/sdd1
cle4	-fstype=vfat,rw	:/dev/sde1
cle5	-fstype=vfat,rw	:/dev/sdf1
  • Vérifier que la partie cdrom est dé-commentée dans le fichier /etc/auto.misc.
  • Redémarrer le service autofs.
sudo /etc/init.d/autofs restart
  • Connecter une clé, insérer un DVD, et aller voir si leurs contenu sont disponibles dans /home/MONLOGIN/usb et /home/MONLOGIN/dvd.

Si çà ne marche pas, re-taper tout ça dans des nouveaux fichiers.

2 - Montage automatique du partage réseau ssh :

  • Créer une paire de clés publiques/privées pour l'utilisateur sur le client :
ssh-keygen -t rsa
  • Laisser le chemin par défaut (/home/MONLOGIN/.ssh/id_rsa) et laisser la demande de passphrase vide.
  • Copier la clé publique sur le serveur :
sudo ssh-copy-id -i /home/MONLOGIN/.ssh/id_rsa.pub "-p N°-de-port MONLOGIN@IP-du-serveur"
  • Écrire le script videoONsvr.sh
nano ~/videoONsvr.sh
#!/bin/sh
sshfs -p N°-de-port MONLOGIN@IP-du-serveur:/home/MONLOGIN/video /home/MONLOGIN/video
  • Créer le dossier ~/video
  • Rendre le script exécutable :
sudo chmod 755 ~/videoONsvr.sh


Tester l'accès au partage :

  • Lancer le script :
./videoONsvr.sh

La première fois il est demandé de confirmer : "yes"

Jusqu'ici vous on n'aura pas eu besoin de redémarrer l'ordinateur pour que tout cela puisse fonctionner… c'est beau quand même hein ?!! :)
Haaa quand je pense aux pauvres petits Ouinedoziens…

3 - Login automatique au démarrage d'Ubuntu :

  • Dans le fichier /etc/init/tty1.conf, commenter la ligne :
sudo nano /etc/init/tty1.conf
#exec /sbin/getty -n 38400 tty1

Et ajouter celle-ci :

exec /sbin/mingetty tty1 --autologin MONLOGIN


4 - Lancement automatique du serveur graphique X :

  • Éditer le fichier ~/.profile et ajouter les lignes suivantes :
nano ~/.profile
tty=`tty`
# Start X only if login in tty1
if [ $tty = '/dev/tty1' ]; then
        startx
fi


5 - Lancement automatique d'XBMC :

  • Pour lancer des commandes automatiquement après le lancement du serveur X, créer le fichier ~/.xinitrc :
nano ~/.xinitrc
sleep 5s
./videoONsvr.sh
xbmc

On peut lancer d'autres applications en les ajoutant dans cette liste; elles se lanceront les unes après les autres, à la fermeture de la précédente… (une fois le fichier ~/.xinitrc en place, X refusera de se lancer sans une commande présente dans .xinitrc)

6 - Arrêter l'ordi quand on quitte xbmc :

sudo visudo
  • Ajouter la ligne suivante :
MONLOGIN	ALL = NOPASSWD: /sbin/halt, /sbin/reboot

La commande halt est maintenant autorisée à se lancer sans le mot de passe de l'utilisateur.

  • Dans .xinitrc ajouter la commande : sudo halt
nano ~/.xinitrc
sleep 5s
./videoONsvr.sh
xbmc
sudo halt


Test : Redémarrer l'ordinateur : (enfin!)

  • XBMC devrait se lancer en 30 secondes (pour moi du moins, depuis ma carte SD), reste à personnaliser le bouzin…


V - Pour aller plus loin :

Cette installation fait 800Mio.
Pour diverses raisons, il pourrait-être utile de fabriquer son propre LiveCD :
- Pour le Fun et le prestige !
- Pour réinstaller facilement le médiacenter.
- Pour le lancer depuis une cléf USB de 512Mo. (transfert de l'iso avec «unetbootin», ou le «créateur de disque de démarrage» d'Ubuntu)
- Pour lancer le médiacenter depuis un CD-Rom… pour les ordi trop vieux ne démarrant pas sur les ports USB.
- etc.

Une fois installé, lancer la commande :

sudo remastersys backup StationPlay.iso

Une image ISO du médiacenter sera alors crée… elle devrait faire aux alentour de 430Mio.

Attention remastersys installe un gnome de base, rendant votre médiacenter plus lourd d'1Gio!
Mieux vaut utiliser partimage avant pour sauvegarder sa belle installation de 800Mio, afin de pouvoir la restaurer après.

Billet inspiré de ces tutos :

  1. http://passion-xbmc.org/tutoriels-linux/ubuntu-minimale-avec-xbmc/?PHPSESSID=7p94vlmrg3ldvb4ca8jeegpltve7ctoi
  2. http://wiki.xbmc.org/index.php?title=XBMCbuntu
  3. http://wiki.tuxgasy.fr/doku.php?id=xbmc_sous_debian_light


À suivre…

Commentaires

1. Le lundi, 15 novembre 2010, 19:56 par Maethor

long, looooong article :D
Du coup, je ne peux m'empêcher de relever quelques détails pour te donner trois conseils ;)

Le premier, c'est pour ajouter un utilisateur dans un groupe : sudo adduser USER GROUP, c'est quand même plus mnémotechnique que gpasswd -a :)
Bon d'accord... ça change pas grand chose :D

Le deuxième, c'est que tu devrais éviter de mettre /var/tmp en RAM. Tu n'es pas censé savoir ce que les daemons et autres applications placent dans ce dossier, et certaines données sont succeptibles d'être réutilisées au redémarrage (je pense notamment à GDM). Si tu mets ce répertoire en RAM, il sera formaté à chaque redémarrage... Bon en pratique ça pose pas de problème, les applis qui mettent des fichiers là dedans savent qu'elles peuvent les perdre... mais par exemple, pour GDM, il doit tout recréer à chaque démarrage, ce qui peut considérablement ralentir le démarrage de la machine. Je perdais jusqu'à 20 secondes au démarrage de KDE avec une configuration similaire...

Pour finir, et non des moindres, utilise l'algorithme RSA plutôt que DSA pour générer ta paire de clés SSH. Bon, dans ton réseau local on est pas à un détail près au niveau de la sécurité, puisqu'on peut bien estimer que si un type accède au réseau, il accède probablement physiquement à l'ordi... MAIS... c'est toujours bon d'avoir de bonnes habitudes :). Donc préfère RSA à DSA, il est plus récent et plus puissant. Pareil si un jour tu dois créer des clés GPG.

En tout cas, bonne série d'article, encore une fois. J'adore ton blog ;)

2. Le lundi, 15 novembre 2010, 21:26 par MaKoTo

^^; content que ça te plaise !

Je suis d'accord avec toi pour /var/tmp en RAM, sauf qu'ici, il n'y a pas de gnome, ni aucun superflu, juste X et xbmc, qui n'a pas le même comportement… d'ailleurs il n'utilise quasi pas ce dossier temporaire… mais j'ai voulu faire ça carré, dans un idéal ^^
Donc le boot n'est nullement ralenti, avant ou après ce custom, chrono à l'appuie.
Le but est d'empêcher un maximum d'écritures sur le disque, en l'occurrence une carte SD qui n'a pas une durée de vie illimitée (nombre d'écriture/effacement), ce serais valable pour une clé USB également, voire un disque SSD, quoique je suis plus septique pour ce dernier, mais sans recul sur la techno, soyons prudent… Bon, je précise tout ça pour les noob qui passeraient par ici ^^

Pour RSA plutôt que DSA, bah je suis passé à côté… merci pour l'info !

Petit teaser, un 5ième billet arrive bientôt, pour piloter le Médiacenter à la télécommande :D

3. Le lundi, 15 novembre 2010, 23:18 par maethor

Ah oui non mais c'est sûr que si le système est sur une clé USB, il vaut mieux mettre tout le temporaire en RAM. Et du coup tu as raison oui, dans le cas présent :)

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet