Ceci est une ancienne révision du document !
−Table des matières
Utiliser Xbmc en boot PXE
Maintenant que nous avons un (voir serveur de boot PXE) nous pouvons l'utiliser pour pouvoir démarrer des Xbmc sur différentes machines en passant par le réseau, ainsi ces machines n'ont pas besoin d'avoir un disque dur qui tourne et qui fait du bruit.
Cette configuration n'est pas triviale, voir ce qui suit.
Idée générale : image ISO exportée en NFS, boot réseau PXE qui se base sur cet export NFS. On utilise un autre acces NFS (en écriture aussi cette fois) permettant d'enregistrer les changements de fichiers effectués
Prérequis
Vous devez disposer d'une image ISO de Xbmc exportée en NFS, par exemple en utilisant les commandes suivantes :
# mkdir -p /mnt/iso/xbmcbuntu-12.00-live
# mount -o loop,ro /mnt/data/ISOs/xbmcbuntu-12.00.Intel-NVIDIA.iso /mnt/iso/xbmcbuntu-12.00-live
# echo "/mnt/iso/xbmcbuntu-12.00-live/ 192.168.0.0/255.255.255.0(ro,no_subtree_check)" >> /etc/exports
Vous devez disposer d'un accès lecture/écriture sur le serveur NFS. (ici on utilise l'adresse MAC du mediacenter, adaptez “01-02-03-04-0A-0B” à l'adresse MAC de votre machine en majuscule )
Les chemins sont a adapter, mais par exemple :
# mkdir -p /mnt/data/xbmc-nfs-root/01-02-03-04-0A-0B
# echo "/mnt/data/xbmc-nfs-root/01-02-03-04-0A-0B 192.168.0.40/255.255.255.255(rw,sync,nohide,no_subtree_check,no_root_squash)" >> /etc/exports
Il ne reste plus qu'a dire au serveur NFS de prendre en compte ces nouveaux changements :
# /etc/init.d/nfs-kernel-server reload
Configuration du PXE
Il faut rendre accessible en PXE le noyau et l'initrd pour permettre le démarrage :
# mkdir /tftpboot/xbmc-12.0-live
# cp /mnt/iso/xbmcbuntu-12.00-live/casper/initrd.lz /tftpboot/xbmc-12.0-live
# cp /mnt/iso/xbmcbuntu-12.00-live/casper/vmlinuz /tftpboot/xbmc-12.0-live
Ajouter ensuite a votre fichier pxelinux.cfg/default (ou celui spécifique a l'adresse mac correspondante, cf la page qui va bien (remplacer “192.168.0.1” par l'adresse IP de votre serveur NFS, et les chemins NFS correspondants au besoin) :
label xbmclivecow menu label XBMCLive NFS, NFS Copy On Write xbmcbuntu-12.00.Intel-NVIDIA kernel xbmc-12.0-live/vmlinuz append initrd=xbmc-12.0-live/initrd.lz netboot=nfs nfsroot=192.168.0.1:/mnt/iso/xbmcbuntu-12.00-live ip=dhcp root=/dev/nfs usbcore.autosuspend=-1 video=nvidia boot=casper xbmc=autostart,noredir debug quickusbmodules nopreseed showmounts nfscow=192.168.0.1:/mnt/data/xbmc-nfs-root/client_mac_address
Vous avez vraiment cru que cela serait si simple ? :p
Ca pourrait mais en fait pas du tout : l'initrd fournit ne gère absolument pas le copy-on-write (cow pour les intimes), il va donc falloir remédier a cela
Accrochez vous a vos bretelles : au menu de la suite, dépaquetage de l'initrd, patch pour supporter le cow, puis repaquetage (quelques commandes utiles ici)
Patch initrd
on va travailler dans le /tmp de la machine :
- copier et depaqueter l'initrd :
mv /tftpboot/xbmc-12.0-live/initrd.lz /tmp/ cd /tmp unlzma < initrd.lz > initrd mkdir /tmp/content cd /tmp/content cpio -id < ../initrd
- patcher ce qui doit l'etre