HOWTO Gentoo pour Xbox
Un article de Gentoo Linux Wiki.
[modifier] Introduction
- Gentoo pour Xbox est une distribution Gentoo complète adaptée à l'architecture unique de la Xbox. Gentoo pour Xbox est basé sur le code de Xbox-Linux.org. Des détails sur l'adaptation sont également disponibles sur le site Xbox-Linux.org.
- Ce HOWTO n'a pas pour objectif de récréer le manuel officiel Gentoo x86, mais plutôt les différences entre Gentoo x86 et Gentoo pour Xbox.
[modifier] Bogues Connus
- Le noyau xbox-linux 2.6 ne possède pas encore de pilotes FATX utilisable. Ne l'utilisez pas si vous souhaitez garder votre partition FATX !
- Note : sur le noyau 2.6.11, un nouveau pilote FATX a été écrit et est en cours de test, pour l'instant aucun effet indésirable n'a été reporté sauf dans le cas d'une partition ayant été manipulée par un ancien pilote bogué!
[modifier] Besoins
- Pour utiliser Gentoo pour Xbox, vous devez avoir une Xbox modifiée.
- Vous devriez aussi disposer d'un clavier et une souris usb, ou alors vous devrez administrer la Xbox directement via ssh. Votre console modifiée doit également posséder un BIOS Cromwell version 2.31 ou supérieur.
- Visitez xbox-linux.org pour trouver les derniers BIOS Cromwell ainsi que les détails pour flasher votre puce à l'aide de ce BIOS.
[modifier] Aperçu du document
- Installer Gentoo pour Xbox est aussi simple qu'une installation standard à l'aide d'un CD-ROM d'installation. Il y a peu de modifications par rapport aux procédures habituelles, mais les changements n'en demeurent pas moins importants.
[modifier] Le CD-ROM d'installation
- Tout d'abord vous devez télécharger le CD-ROM d'installation de Gentoo pour Xbox qui peut être trouvé sur votre mirroir Gentoo local dans le répertoire /experimental/x86/xbox/livecd/.
- Téléchargez la dernière version de type LiveCD-Pentium3-xxxxxxxx.iso.gz, décompressez-la et gravez-la sur le média de votre choix (un DVD-R semble être le meilleur choix puisque certaines Xbox lisent très mal les CD-R / CD-RW).
[modifier] Démarrer depuis le CD-ROM d'installation avec Cromwell
- Quand vous démarrez votre Xbox modifiée, le BIOS Cromwell contrôle le processus de démarrage. Cromwell étant basé sur GRUB, une fois chargé un menu avec des options de démarrage va apparaître. Les options diffèrent en fonction des versions de Cromwell mais vous devriez voir 4 icônes. Sélectionnez l'icône du DVD pour démarrer depuis le lecteur.
- (Si le BIOS Cromwell détecte un disque dur bootable, une option sera disponible /dev/hda. Elle sera alors sélectionnée comme périphérique par défaut lors du démarrage.)
[modifier] Suivons le manuel (Handbook)
- Une fois le CD-ROM d'installation démarré vous serez dans l'environnement d'un CD-ROM d'installation classique de Gentoo. L'installation se déroule en suivant pas à pas le manuel mais avec quelques différences. Pour les mettre en évidence je vais recréer le Guide d'installation rapide, et effectuer les changements si nécéssaire.
- Cette partie est donc basée sur la version française du Guide d'installation rapide de Gentoo sur x86.
[modifier] Guide d'installation rapide
- Les ISOs d'installation sont disponibles sur les Mirroirs Gentoo comme cité précédemment. Démarrez sur le CD-ROM d'installation Xbox, vous devriez arriver sur un shell.
- Beaucoup d'utilisateurs Xbox ne possèdent pas de clavier/souris et ne prévoient pas d'en utiliser. Dans ce cas pour accéder à la console, sshd est configuré sur le CD-ROM d'installation. La Xbox va démarrer en utilisant DHCP pour obtenir automatiquement une adresse sur le réseau et démarrer sshd.
- Pour se connecter à la Xbox : utilisez le nom d'utilisateur root et le mot de passe xbox. Veillez à le changer afin de garantir une meilleure sécurité pendant le déroulement de l'installation.
[modifier] Début de la configuration
Code : Début de la configuration
(changez le mot de passe pour des raisons de sécurité à l'installation !) # passwd (Assurez-vous que la date est correcte. Sinon modifiez-la de la sorte :) ( date MMDDhhmmCCYY) # date (Optionnel - Chargez les modules nécéssaires.) # modprobe module_name (Paramétrez le réseau.) # net-setup eth0
[modifier] Préparation du disque avec le système de fichier natif
- Cette section suppose que vous allez complètement effacer la partition FATX (avec les outils Microsoft) et lancer un système avec linux uniquement ! Si vous souhaitez un dual boot, lisez la section ci-dessous concernant l'installation d'un loopback root FS sur la partition FATX. Une alternative existe permettant d'éviter l'utilisation complète du disque en utilisant un serveur de fichier NFS à travers le réseau.
Code : Partitionnement du disque dur
# fdisk /dev/hda (Pour partitionner votre disque dur)
- La configuration recommandée est 64 Mo pour une partition de démarrage ext2, une partition de mémoire virtuelle de deux fois la mémoire vive disponible et une partition racine ReiserFS qui occupe le reste du disque. Le CD-ROM d'installation que nous utilisons ne supporte pas ReiserFS, vous devrez donc vous orienter vers EXT2 ou EXT3. Le bios Cromwell est capable de démarrer sur ext2, ext3 ainsi que reiserfs.
- Si vous désirez vraiment utiliser reiserfs, il est possible d'utiliser le CD-ROM d'installation Xebian à la place. Lorsque vous configurerez alors le noyau n'oubliez pas d'ajouter le support pour reiserfs et de lancer une installation de reiserfsprogs. Le support de reiserfs dans le CD-Rom d'installation pour Xbox devrait être ajouté dans le future.
- Initialisez vos partitions avec mke2fs (Ext2), mke2fs -j (Ext3), mkreiserfs (ReiserFS), mkfs.xfs (XFS), mkfs.jfs (JFS) et mkswap (partition de mémoire virtuelle). Par exemple : mke2fs -j /dev/hda3.
[modifier] Préparation du disque (avec FATX)
Code : Préparation du disque avec FATX
# mount /dev/hda55 /mnt/fatx (Montez la partition FATX) # dd if=/dev/zero of=/mnt/fatx/linuxroot bs=1M count=1024 (Crée un gros fichier - ici 1GB) # mount -o loop /mnt/fatx/linuxroot /mnt/gentoo
- Vous pouvez maintenant exécuter la commande chroot /mnt/gentoo /bin/bash comme pour une installation classique de Gentoo.
- Afin de pouvoir démarrer en utilisant ce fichier en tant que périphérique virtuel vous allez devoir créer un INITial Ram Disk (initrd). Pour cela, installez mkinitrd et lisez le manuel ;-) (Suivez ensuite les étapes suivantes scrupuleusement!)
[modifier] Alternative, système de fichier réseau (NFS)
Ceci est détaillé dans le guide Gentoo sur des machines sans disque ou HOWTO Installation de Gentoo sans disque dur.
[modifier] Préparation de l'installation, Stages
On continue de monter les partitions et d'extraire le stage désiré. Le CD-ROM d'installation pour Xbox ne contient aucun stage. Vous devrez donc en télécharger le stage pentium3 d'un mirroir gentoo.
Code : Préparation de l'installation
(Activez la mémoire virtuelle) # swapon /dev/hdax (Montez la partition racine) # mount /dev/hdax /mnt/gentoo (Créez le point de montage boot) # mkdir /mnt/gentoo/boot (Montez la partition boot) # mount /dev/hdax /mnt/gentoo/boot (Allez au point de montage) # cd /mnt/gentoo # links http://www.gentoo.org/main/en/mirrors.xml (<strike>ou</strike> téléchargez la dernière archive stage...) # tar -xvjpf stage<your stage>.tar.bz2 (... et décompressez-la) (Choisissez un miroir) # mirrorselect -i -o >> /mnt/gentoo/etc/make.conf (Copiez la définition des serveurs DNS) # cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf (Montez le système de fichiers /proc) # mount -t proc none /mnt/gentoo/proc (« Chroot » dans le nouvel environnement) # chroot /mnt/gentoo /bin/bash (Chargez les variables d'environnement) # env-update; source /etc/profile (Uniquement avec connexion, pas pour GRP) (mise à jour de l'arbre de portage) # emerge --sync (installation de portage) # emerge portage
[modifier] Utiliser le Profile Xbox
- Maintenant que nous avons une version à jour de Portage, nous allons modifier le Profile pour utiliser celui de la Xbox au lieu de Pentium3.
Code : Profile Xbox
# cd /etc # rm make.profile # ln -s ../usr/portage/profiles/default-linux/x86/xbox make.profile
[modifier] Installation du système de base
- Procédons à l'installation de Gentoo :
Code : Installation de Gentoo
(Modifiez les options USE, CFLAGS et CXXFLAGS.) (Éventuellement CHOST avec Stage1) # nano -w /etc/make.conf (Uniquement Stage1 : « bootstrap » du système) # cd /usr/portage; scripts/bootstrap.sh (Uniquement Stage1 ou Stage2 : installation du système de base) (Limiter le nombre de ''Locales'' qui vont être utilisés par glibc) # mkdir -p /etc/portage # echo "sys-libs/glibc userlocales" >> /etc/portage/package.use (Sélectionnez les ''Locales'' que vous souhaitez compiler) # nano -w /etc/locales.build # # emerge system
[modifier] fstab et fuseau horaire
- Il faut à présent configurer quelques éléments :
Code : Création des fichiers de configuration
(Définition du fuseau horaire)
# ln -sf /usr/share/zoneinfo/<path to time zone file> /etc/localtime
# nano -w /etc/fstab (Modification du fichier fstab)
- Utilisez l'exemple suivant comme un modèle (ne pas recopier tel quel) pour /etc/fstab :
| Fichier : /etc/fstab |
# <fs> <mountpoint> <type> <opts> <dump/pass> /dev/hdax /boot ext2 noauto,noatime 1 2 /dev/hdax none swap sw 0 0 /dev/hdax / reiserfs noatime 0 1 /dev/cdroms/cdrom0 /mnt/cdrom auto noauto,user 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs nodev,nosuid,noexec 0 0 |
[modifier] Choisir et Installer un Noyau (kernel)
- Dans le cas où vous souhaitez la série 2.6.x du noyau, vous devrez ajouter une ligne dans le fichier package.use :
Code : Activer la série 2.6.x du kernel pour la Xbox
# echo "sys-kernel/xbox-sources ~x86" >> /etc/portage/package.keywords
- Procédons à l'installation du kernel :
Code : Code 1.6: Installation du noyau
(pour un noyau 2.4.x) # emerge xbox-sources (pour un noyau 2.6.x) # emerge xbox-sources-2.6.x ((1) Configurez votre noyau manuellement.) # cd /usr/src/linux (kernel.config contient la configuration adéquate pour la Xbox.) # cp kernel.config .config (précise à make d'utiliser le .config comme le choix par défaut.) # make oldconfig (faites les changements que vous souhaitez.) # make menuconfig ((2) Ajoutez le support pour VM fs, /proc fs, /dev fs, et le montage automatique de /dev fs au démarrage.) ((3) Compiler votre noyau) (pour un noyau 2.4) # make dep && make clean bzImage modules modules_install (pour un noyau 2.6) # make && make modules_install ((4) Copiez le kernel) # cp arch/i386/boot/bzImage /boot; cp System.map /boot # echo "forcedeth" >> /etc/modules.autoload.d/kernel-2.x (la carte réseau nVidia NFORCE nécéssite le module forcedeth)
[modifier] Installations des outils
- Procédons à l'installation des outils dont vous pourriez avoir besoin :
Code : Installation d'outils système importants
(Choisissez un système de journalisation :) (sysklogd, metalog, msyslog, syslog-ng) # emerge syslog-ng (Activez-le au démarrage de la machine) # rc-update add syslog-ng default (Installez un démon cron au choix : vcron, dcron, fcron) # emerge vixie-cron (Activez-le au démarrage de la machine) # rc-update add vixie-cron default (Facultatif : installer hotplug pour) (chargez automatiquement les drivers USB) # emerge hotplug (Facultatif: Activez-le au démarrage de la machine) # rc-update add hotplug default (Uniquement en plus de ext2,ext3, au choix :) (reiserfsprogs, xfsprogs, jfsutils) # emerge reiserfsprogs (Facultatif : installez un client DHCP) # emerge dhcpcd (Définition du domaine) # rc-update add domainname default # emerge defvsd (Nécéssaire pour devfs et n'étant pas installé par défaut)
- Si vous avez besoin d'ebuilds spécifiques, c'est le moment de les installer.
[modifier] Fin de la configuration
- Pour terminer la configuration de votre système Gentoo:
Code : Fin de la configuration
(Définissez le mot de passe administrateur) # passwd (Créez un utilisateur) # useradd un_utilisateur -m -G users,wheel,audio -s /bin/bash (Définissez son mot de passe) # passwd un_utilisateur (Définissez le nom de la machine) # echo mymachine > /etc/hostname (Définissez le nom de domaine) # echo mydomain.com > /etc/dnsdomainname (Créez le fichier hosts avec au moins la ligne :) « 127.0.0.1 localhost mamachine » # nano -w /etc/hosts (Définissez des paramètres divers, suivez les commentaires) # nano -w /etc/rc.conf
Code : Paramétrage du réseau
(Paramétrez votre réseau. Avec dhcp, utilisez iface_eth0="dhcp")
# nano -w /etc/conf.d/net
(Définissez les noms des modules à charger au démarrage)
# nano -w /etc/modules.autoload.d/kernel-<version>
(Si pas de PCMCIA : activez le réseau au démarrage)
# rc-update add net.eth0 default
(Si vous avez plusieurs cartes réseau :)
(1) Créez un script pour chaque carte)
# ln -s /etc/init.d/net.eth0 /etc/init.d/net.ethX
(2) Activez chaque carte non PCMCIA du démarrage)
# rc-update add net.ethX default
(Uniquement PCMCIA : vérifiez /etc/conf.d/pcmcia)
( activez PCMCIA au démarrage)
# rc-update add pcmcia boot
[modifier] Le chargeur de démarrage
- Il est temps d'installer un chargeur de démarrage.
- Cromwell fait office de chargeur de démarrage pour la Xbox.
Code : Installation de cromwell
# emerge sys-boot/cromwell (Alternative si vous souhaiter un paquet précompilé :) # emerge sys-boot/cromwell-bin
- Il doit être installé quelque part. Plusieurs choix s'offrent à vous :
- Sur la puce. Regardez la documentation de votre puce -il pourra être nécéssaire de lancer une application de mise à jour flash de la puce sous Windows.
- Sur le TSOP présent dans la Xbox. Installez raincoat. Vous aurez besoin de souder un point sur la carte mère de la console pour pouvoir écrire sur la mémoire flash.
- A l'intérieur du système de fichier FATX. Placez le fichier .xbe quelque part où vous pourrez le lancer. Tout dépend du bios et du dashboard que vous utilisez (ex. Evolution-X, Avalaunch etc.)
- Maintenant nous allons créer une configuration permettant à Cromwell de savoir sur quel noyau démarrer.
| Fichier : /boot/linuxboot.cfg |
kernel boot/bzImage append root=/dev/hda1 splash=silent kbd-reset video=xbox:640x480,nohwcursor devfs=mount acpi=hw |
- Ceci installe la configuration de Cromwell dans /dev/hda1. Si vous démarrez Cromwell depuis FATX, placez le fichier de configuration dans le même répertoire que ses binaires.
- Notez que 'root=/dev/hdaX' doit corréspondre à l'endroit où votre partition racine doit être montée. Par exemple, si vous avez placé l'image du noyau dans /dev/hda1, la partition d'échange dans /dev/hda2 et la racine dans /dev/hda3, alors 'root=/dev/hda3'.
[modifier] Le système est prêt, redémarrage
- À présent démontez toutes vos partitions et redémarrez le système :
Code : Étapes finales et installation de l'interface graphique
(Quittez le chroot)
# exit; cd /
(Démontez les partitions)
# umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
(Redémarrez et enlevez le CD)
# reboot
[modifier] Post Installation
[modifier] Installer et Configurer Xorg
- emerge xorg-x11. Avec le profile Xbox choisi vous devriez voir un message indiquant que le correctif pour la xbox à été appliqué. L'installation inclue un exemple de configuration pour la Xbox. Le paramétrage automatique avec X -configure va sans doute planter la Xbox.
[modifier] Matériel Xbox
- Une manette va apparaître tel un matériel USB HID sous linux et devrait fonctionner normalement. Elle sera disponible ici : /dev/js0.
- La télécommande fonctionne parfaitement avec Freevo et MythTV. Il suffit de faire un emerge lirc. Si vous utilisez bien le profile Xbox (cela devrait être le cas) la configuration correcte sera installée.
[modifier] Installer ALSA
- Vous pouvez soit installer ALSA en dur dans le noyau 2.6 xbox-sources, ou l'installer via emerge alsa-drivers. Les pilotes ALSA n'ont pas la capacité de détecter le matériel audio présent dans votre Xbox, vous devrez donc le forcer avec modprobe snd-intel8x0 xbox=1. Ajoutez cette ligne dans /etc/modules.autoload.d/kernel-2.x pour le charger automatiquement au lancement.
[modifier] Outils spécifiques à la Xbox
- Il y a un certain nombre d'outils disponibles dans portage:
- extract-xiso - extrait et crée des images ISO optimisés
- xbiso - extrait des images ISO
- xdvdfs-tools - outils pour manipuler les ISO
- raincoat - permet de flasher la puce de la Xbox
[modifier] Resources
[modifier] Où trouver de l'aide ?
- Liste de diffusion Gentoo-Xbox : Pour vous inscrire envoyez un mail à gentoo-xbox-subscribe@gentoo.org (en anglais).
- Liste de diffusion Gentoo-Xbox : Archives (en anglais).
- Xbox-Linux.org où tout à commencé.
- Liste de diffusions Xbox-linux.org
- Gentoo.org
