Installation d'une Debian/Woody sur un Cobalt Raq3i ATTENTION: Les étapes de la procédure suivante de sont pas supportées par Sun (http://www.sun.com) et en particulier le flashage de la ROM qui est obligatoire. La responsabilité de l'auteur ne peut pas être mise en cause si votre système est hors service suite à l'utilisation de ce document. En résumé vous exécuter les lignes suivantes à vos risques et périls. 1. Matèriel 2. Flashage de la ROM 3. Install de la Debian/Woody 4. Compilation du kernel 5. Préparation du système pour le Cobalt 6. Boot du Cobalt 1. Matèriel Cette installation n'a été testé que sur les Cobalt Raq3i, mais peut sans doute s'appliquer à d'autres produit Cobalt basés sur des processeurs i386 (Raq3, 4, ..) Vous aurez aussi besoin d'un PC i386 avec cd-rom et réseau pour la phase d'installation du système. 2. Flashage de la ROM On va brancher une console sur le port série 1 (celui avec 1 seul point). Les paramètres de votre emulateur terminal (minicom!) est 115200 8n1. En effet cette vitesse est hardcodée dans le Raq. Pour flasher la ROM il vous faut un système installé dessus. Si vous n'avez pas la main sur le Raq3i vous devez passer par l'installation du Cobalt Restore CD que vous triuverez ici : ftp://ftp.cobalt.sun.com/pub/iso/960-RAQ30101AU.iso Une fois que vous avez la main sur le Raq, passer root. 2.1 Récupération de flashtool Le flashtool testé et approuvé est ce lui de Tim hockin. Vous le trouverez là : ftp://ftp-eng.cobalt.com/pub/users/thockin/2.4/flashtool Pour la ROM je vous conseille celle du projet Cobalt-Rom sur SourceForge. http://sourceforge.net/projects/cobalt-rom/ A l'éciture de ce document télécharger la cobalt-2.10.3-ext3-1M.rom. Surtout ne pas prendre les ROM avec *flat* elles rendraient votre Raq3 inutilisable. "It is important to note that RaQ3, RaQ4, and Qube3 use a paged ROM image (provided here). RaQ550 uses a 2 MB flat ROM image. DO NOT install the flat image on a paged system, and vice versa. We also have a 1 MB flat ROM image. This is for the VERY FEW RaQ550 systems which had teh 1 MB flash (pre-release)." thockin Rendez exécutable flashtool. # chmod +x flashtool On va faire un backup de la ROM existante : # ./flashtool -v -r > backup.rom Et on y va : # ./flashtool -v -w cobalt-2.10.3-ext3-1M.rom On va vérifier que le Cobalt boot bien. # reboot Alors là ça se corse un peu. Par défaut la ROM modifie le périphérique de boot du Cobalt. Celui-ci va chercher à booter sur le réseau et monter un système en NFS. Il faut entrer dans la ROM pour modifier ça. Pour cela dans minicom, vous devez voir ça : IDE: stabilizing spinup: 100% Checking Memory: done Press spacebar to enter ROM mode Taper sur entrée pour accéder à la ROM. Cobalt:Main Menu> Vous pouvez naviguer dans le menu (taper help). Pour seter le bon device de boot : Cobalt:Main Menu> boot Cobalt:Boot Menu> set_boot_type disk Boot method is set to disk Cobalt:Boot Menu> main Cobalt:Main Menu> reboot Voilà, votre Raq va rebooter sur le disque. Si le flashage de la ROM s'est bien passer (flashtool aurait gueuler avant) vous vous retrouver avec le système Cobalt Raq3 (Redhat 6.1). Vous pouvez arréter le Raq pour la suite. Maintenant, ouvrez le Raq et prenez le disque dur. Placer ce disque dans le PC en IDE-1/Master (hda). Et procéder à l'install de la Debian 3. Install de la Debian/Woody L'installation présente une étape particulière. En effet le Raq boote sur /dev/hda1 par défaut, et cherche le fichier /boot/vmlinux.gz sur cette partition. Donc je vous conseille des partitions comme suit : Name Flags Part Type FS Type Mount Size (MB) ---------------------------------------------------- hda1 Boot Primary Linux ext2 / 3071.81 hda2 Primary Linux swap 255.99 hda3 Primary Linux ext2 /var 2047.87 hda4 Primary Linux ext2 /opt 9988.53 Au momment ou l'install vous demande si vous voulez formater /dev/hda1, passer sur une console (Alt+F2) et formater cette partition de manière compatible avec le boot d'un Raq. # mke2fs -r 0 -O none /dev/hda1 Puis revenez sur l'install (Alt+F1) et choississez "Mount a Previously-Initialized Partition" pour monter /dev/hda1 dans / Ensuite choisissez "Initialize a Linux Partition" pour /dev/hda3 dans /var et /dev/hda4 dans /opt. Le reste de l'install ce fait de manière habituelle. Perso je n'install aucun package par tasksel ou dselect. Même si le Raq n'utilise pas lilo pour booter je vous conseille de l'installer quand même. Si vous planter votre Cobalt vous serez content de pouvoir le booter sur un PC i386. 4. Compilation du kernel Nous allons compiler un kernel spécialement pour le Cobalt. Et ceci à la manière de Debian : http://www.debian.org/doc/manuals/reference/ch-kernel.fr.html 4.1 sources.list Voilà le mien : # Packages deb http://ftp.fr.debian.org/debian/ woody main non-free contrib deb http://ftp.fr.debian.org/debian-non-US woody/non-US main contrib non-free # Security deb http://security.debian.org/ woody/updates main contrib non-free # Proposed updates deb http://ftp.fr.debian.org/debian/ woody-proposed-updates main non-free contrib deb http://ftp.fr.debian.org/debian-non-US woody-proposed-updates/non-US main contrib non-free #Sources deb-src http://ftp.fr.debian.org/debian/ woody main non-free contrib deb-src http://ftp.fr.debian.org/debian-non-US woody/non-US main contrib non-free Puis lancer les commandes suivantes : # dselect update # apt-get update # apt-get -u dist-upgrade # apt-get -u dselect upgrade 4.2 Quelques packages utils # apt-get install kernel-package libncurses5-dev gcc make ncftp wget bin86 4.3 Récupération des sources Au moment où j'acris cette doc le kernel linux 2.4.31 vient de sortir. Mais nous allons appliquer quelques patchs que je n'ai trouvé que pour la version 2.4.25. Une fois ces patchs appliqués nous passerons les pacths kernel pour passer en 2.4.31. Il est tout à fait possible de ne pas appliquer ces patchs et passer tout de suite à une version 2.4.31. Mais vous perdrez pas mal de choses comme le reboot du Cobalt par la commande reboot, et l'effet K-2000 du LCD. D'ailleurs ne compter pas récupérer le fonctionnement du LCD à la mode Cobalt... $ ncftp ftp.free.fr > cd pub/linux/kernel/v2.4 > get linux-2.4.25.tar.gz > get patch-2.4.26.gz > get patch-2.4.27.gz > get patch-2.4.28.gz > get patch-2.4.29.gz > get patch-2.4.30.gz > get patch-2.4.31.gz > quit $ wget http://cobalt.iceblink.org/kernel/2.4.25/cobalt-2.4.25.patch $ wget http://cobalt.iceblink.org/kernel/2.4.25/cobalt-boot-2.4.25.patch $ wget http://cobalt.iceblink.org/kernel/2.4.25/cobalt-rom.config 4.4 Détar et Patch $ gunzip patch-2.4.26.gz $ gunzip patch-2.4.27.gz $ gunzip patch-2.4.28.gz $ gunzip patch-2.4.29.gz $ gunzip patch-2.4.30.gz $ gunzip patch-2.4.31.gz # cd /usr/src # tar xvfz ~hlepesant/linux-2.4.25.tar.gz # patch -p0 < ~hlepesant/cobalt-2.4.25.patch # patch -p0 < ~hlepesant/cobalt-boot-2.4.25.patch # patch -p0 < ~hlepesant/patch-2.4.26 # mv linux-2.4.25 linux-2.4.26 # patch -p0 < ~hlepesant/patch-2.4.27 # mv linux-2.4.26 linux-2.4.27 # patch -p0 < ~hlepesant/patch-2.4.28 # mv linux-2.4.27 linux-2.4.28 # patch -p0 < ~hlepesant/patch-2.4.29 # mv linux-2.4.28 linux-2.4.29 # patch -p0 < ~hlepesant/patch-2.4.30 # mv linux-2.4.29 linux-2.4.30 # patch -p0 < ~hlepesant/patch-2.4.31 # mv linux-2.4.30 linux-2.4.31 # ln -s linux-2.4.31 linux # cd linux # cp ~hlepesant/cobalt-rom.config .config # make menuconfig Faite les quelques modifications dans la conf du kernel siu vous le voulez. Mais cette conf devrait marcher. Sinon essayer celle là.FIXME. 4.5 Compilation du kernel # make-kpkg --revision=cobalt.1.0 kernel_image # make-kpkg modules_image Cette méthode crée un .deb ici /usr/src/kernel-image-2.4.31_cobalt.1.0_i386.deb 4.6 Préparation de l'install du kernel (selon Duncan Laurie) Nous allons créer 2 scripts qui seront appelé lors de l'install du kernel par dpkg. # mkdir /etc/cobalt # vi /etc/cobalt/kernel_cobalt_install.sh #!/bin/sh ln -sf $2 /boot/vmlinux.g # vi /etc/cobalt/kernel_cobalt_remove.sh #!/bin/sh rm -f /boot/vmlinux.gz Rendez les exécutable : # chmod u+x /etc/cobalt/kernel_cobalt*.sh Editer le fichier deconf de l'install du kernel : # vi /etc/kernel-img.conf do_symlinks = No do_boot_enable = No postinst_hook = /etc/cobalt/kernel_cobalt_install.sh prerm_hook = /etc/cobalt/kernel_cobalt_remove.sh 4.7 Installation du kernel # cd /usr/src # dpkg -i kernel-image-2.4.31_cobalt.1.0_i386.deb Vérifier que les scripts ont fait leur boulot hlepesant@cobalt:~$ ls -l /boot/ lrwxrwxrwx 1 root root 20 Aug 11 11:18 vmlinux.gz -> /boot/vmlinuz-2.4.31 -rw-r--r-- 1 root root 817136 Aug 11 11:17 vmlinuz-2.4.31 Et créer le System.map # cd /boot # ln -sf System.map-2.4.31 System.map Surtout ne lancer pas lilo. Il vous affichera des erreurs. Le Cobalt ne l'utilise pas pour booter !!!! Par contre il lui faut absolument un fichier de moins de 1024ko (1Mo) dans /boot/vmlinux.gz 5. Préparation du système pour le Cobalt On va configurer correctement les ports série pour pouvoir connecter une console (minicom?) dessus. (Toujours utile :) Par contre les paramètres de ces ports sont hardcodés dans le Cobalt à 115200 bauds. Donc éditer /etc/inittab et recherchre les 2 lignes avec T0 et T1 : # vi /etc/inittab T0:23:respawn:/sbin/getty -L ttyS0 115200 vt102 T1:23:respawn:/sbin/getty -L ttyS1 115200 vt102 # vi /etc/securetty # for people with serial port consoles ttyS0 ttyS1 Je configure les deux car vous allez avoir pas mal de garbage sur ttyS0 qui est la console par défaut. Comme vous l'aurez constaté le Raq n'a pas de prise PS2 (clavier, souris) et encore moins d'écran. Il y a donc un certain nombre de packages que nous pouvons suprrimer : # dpkg --purge base-config console-data* console-tools* console-tools-libs* Une autre modification qui sera salvatrice en cas de fsck malheureux sur le disque lors d'un reboot est de modifier le paramètre FSCKFIX dans le fichier /etc/default/rcS comme suit : # Set FSCKFIX to "yes" if you want to add "-y" to the fsck at startup. FSCKFIX=yes 6. Boot du Cobalt Bon halter le serveur, retirer le disque dur du PC et remettez le dans le Raq. Brancher une console sur le port série 1. Allumer le Raq. Et hop vous voilà avec une Debian inside... Have Fun Hug (L) 27/06/2005