Archives de catégorie : linux

Installation Debian/Woody sur un Cobalt RaqX via réseau

Objectif:
Installer un serveur Cobalt Raq 3/3i/4/550 sans avoir besoin de démonter le disque dur, et donc via le réseau.

Moyens:
Les RaqX sont équipés de carte réseau PXE.
C’est à dire que le serveur peut booter à travers le réseau, et charger un mini système en mémoire.
A partir de là il est possible de préparer le disque du Raq en y installant un système de base.
Pour cet exercice nous allons utiliser une Debian.

NB:
Ce document reprend une partie des informations citées par Zone38 ici.
Pour les raq3/3i/4 il sera nécessaire de flasher la ROM du Raq, PAS LES 550.

Etapes:
Dans un premier temps nous allons configurer notre serveur debootstrap : bootp, dhcp, tftp.
Puis nous configurons un environement minimal sur ce serveur.
Enfin nous ferons booter le Raq à travers le réseau sur ce système minimal, ce qui nous permettra de le préparer pour un boot autonome.

1. Préparation du serveur debootstrap

Installation des packages nécessaires :


# apt-get install dhcp3-server syslinux tftpd-hpa

dhcp3-server :
Ce service nous permettra d’attribuer une IP à notre Raq, et d’indiquer le serveur bootp.

syslinux :
Ceci est un boot loader permettant l’installation de Linux sur des systèmes distants ayant des partitions MS-DOS/Windows FAT.
Il est concu pour simplifier l’instalalation de Linux, et la création de disquette de rescue, ou d’autre disque de boot.
Il peut notament être utilisé comme bootloader PXE pour des boot à travers le réseau.

tftpd-hpa :
Service TFTP dérivé de OpenBSD. Très utile dans le cas d’installation via PXE.
Ce service sera pris en charge par inetd.

1.1. Configuration du tftp et du PXE.

Copier /usr/lib/syslinux/pxelinux.0 dans /var/lib/tftpboot :


# cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/

Ensuite créer le dossier pxelinux.cfg dans /var/lib/tftpboot :


cd /var/lib/tftpboot
mkdir pxelinux.cfg

Puis créer le fichier /var/lib/tftpboot/pxelinux.cfg/default qui va contenir :


vim pxelinux.cfg/default

avec les lignes suivantes :

PROMPT 0
DEFAULT pxe
LABEL pxe
KERNEL vmlinuz
APPEND initrd=initrd.img root=/dev/nfs nfsroot=192.168.107.77:/nfsroot-x86
IPAPPEND 1

Explications :
On défini en fait le kernel, et les parametres à passer au noyau :

– KERNEL vmlinuz : donc il va chager le kernel nommé vmlinuz dans /var/lib/tftpboot.
– APPEND : listes des paramètres à passer au kernel :
. initrd=initrd.img : chargera initrd.img à partir de /var/lib/tftpboot
. root=/dev/nfs : le root sera sur un disque NFS
. nfsroot=192.168.107.77:/nfsroot-x86 : chemin d’accès au partage.

A noter qu’ici l’IP 192.168.107.77 correspond à celle de votre serveur debootstrap.

1.2. Installation et configuration du NFS.

Une fois que notre Raq aura booté, il cherchera à monter une partition NFS à travers le réseau.
Il faut donc installer un serveur NFS, et le configurer de manière à ce que le Raq y trouve un système complet.

1.2.1 Installation du serveur NFS.

Pour plus de simplicité on choisirat la version userland du NFS de la debian.


# aptitude install nfs-user-server

1.2.2. Configuration du NFS.


# mkdir /nfsroot-x86

Edition du fichier /etc/exports :


# vim /etc/exports

Ajouter la ligne suivante :

/nfsroot-x86 192.168.107.78 (rw,no_root_squash)

– /nfsroot-x86 : correspond au partage.
– 192.168.107.78 : l’ip du Raq après requète DHCP.
– rw : Read Write (c’est mieux de pouvoir ecrire)
– no_root_squash : parce que sinon toute action en root est transformé en nobody…

Relancer le service NFS :


# /etc/init.d/nfs-user-server restart

1.2.3. Installation du système minimal dans ls NFS.

Pour cela on utilise debootstrap, ce qui permet de faire une install de base Debian.


# apt-get install debootstrap
# debootstrap sarge /nfsroot-x86 http://archive.debian.org/debian/

debootstrap va alors télécharger, puis vérifier un ensemble de package, et enfin les installer.

I: Retrieving debootstrap.invalid_dists_sarge_Release
I: Validating debootstrap.invalid_dists_sarge_Release
I: Retrieving debootstrap.invalid_dists_sarge_main_binary-i386_Packages
I: Validating debootstrap.invalid_dists_sarge_main_binary-i386_Packages
I: Checking adduser...
I: Checking apt...
I: Checking apt-utils...
I: Checking aptitude...
I: Checking at...
I: Checking base-config...
I: Checking base-files...
I: Checking base-passwd...
I: Checking bash...
I: Checking bsdmainutils...
I: Checking bsdutils...
....
Setting up base-config (2.53.10) ...

I: Base system installed successfully.
umount: /nfsroot-x86/dev/pts: not mounted
umount: /nfsroot-x86/dev/shm: not mounted
umount: /nfsroot-x86/proc/bus/usb: not mounted

Puis nous modifions le /etc/fstab afin de luis rajouter une ligne pour


# vim /etc/fstab

proc            /nfsroot-x86/proc proc  defaults        0       0

Enfin nous monter /nfsroot-x86/proc :


# mount proc /nfsroot-x86/proc -t proc

Notre « boot-système » est presque prêt.
Nous allons apporter quelques mofication spécifique au Raq.

1.2.4 Quelques fichiers utiles

S’assurer que le fichier /nfsroot-x86/etc/resolv.conf existe et qu’il est semblable au votre, sinon le copier à partir de /etc/resolv.conf


# cp /etc/resolv.conf /nfsroot-x86/etc/resolv.conf

Copier votre fichier sources.list pour apt :


# cp /etc/apt/sources.list /nfsroot-x86/etc/apt/

Modifier le fichier /etc/inittab :


# vim /etc/inittab

...
# Example how to put a getty on a serial line (for a terminal)
#
T0:23:respawn:/sbin/getty -L ttyS0 115200 vt102
T1:23:respawn:/sbin/getty -L ttyS1 115200 vt102
...

Cela permettra d’accèder au Raq via un cable console, pour la suite de l’installation.

1.2.5. Installation de quelqueq paquets utiles :


{chroot}# aptitude install vim sudo
{chroot}# visudo

Si RAID soft :

{chroot}# aptitude install mdadm

Il y a la possibilité d’installer ssh, dans ce cas je vous conseille alors de modififer le fichier /etc/ssh/sshd_config pour qu’il écoute sur l’IP de votre


{chroo}# apt-get install ssh
{chroo}# vi /etc/ssh/sshd_config

- #ListenAddress 0.0.0.0
+ ListenAddress 192.168.107.78

Entrer dans /nfsroot-x86 avec chroot :


# chroot /nfsroot-x86 /bin/bash

Là vous pouvez lancer base-config pour finaliser l’installation du deboostrap.


{chroot}# base-config

1.3. Configuration du serveur DHCP

Nous allons récupérer l’adresse MAC du Raq.
Pour cela raccorder un cable série en 15200 n 8.

Puis lancer minicom avec les bons paramètres, et allumer le Raq.
Dans la séquence de boot du Raq vous devez voir ceci (exemple tiré d’un Raq550):

...
Initializing ethernet: 2 controller(s) found
  National Semiconductor DP83815 Found at port 0xfe00, MAC: 00:10:e0:05:ef:03
  National Semiconductor DP83815 Found at port 0xfd00, MAC: 00:10:e0:05:ef:c6
...

C’est la première ligne qui nous intéresse.

Editer le fichier de configuration de votre serveur DHCP :


# vim /etc/dhcp3/dhcpd.conf

Et ajouter les lignes suivantes :

host cobalt_pxe {
        hardware ethernet 00:10:e0:05:ef:03;
        filename "/pxelinux.0";
        server-name "backup";
        next-server 192.168.107.77;
        fixed-address 192.168.107.78;
}

Retirer les « \ » c’est WordPress qui les rajoute 🙁

Et relancer votre service dhcpd


# /etc/init.d/dhcp3-server restart

2. Configuration du Cobalt

Le processus de boot du Cobalt est le suivant :

  1. booter sur la ROM et charger en RAM un mini noyau Linux
  2. Selon l’option de boot (Net,Disk,etc ..) le Raq va alos chercher un faire un deuxième boot sur un kernel vmlinuz

Il est possible de configurer le Raq pour booter sur le réseau.
Pour cela, via minicom, dans la séquence de boot du Raq vous devez voir ceci :

IDE: stabilizing spinup: 100%
Checking Memory: done

Press spacebar to enter ROM mode

Taper sur la barre d’espace, et voilà vous êtes dans la ROM.

Maintenant nous allons dire au Raq qu’au prochain reboot il devra booter sur le réseau et sur l’IP de notre serveur :

Cobalt:Main Menu> boot

Cobalt:Boot Menu> read_boot_type
From disk

Cobalt:Boot Menu> read_boot_dev
md1

Cobalt:Main Menu> lowlevel

{si pas de dhcp}
Cobalt:Lowlevel Hardware Menu> cmos

Cobalt:CMOS Menu> btoip 192 168 107 77
{/fi}

Cobalt:CMOS Menu> main

Cobalt:Main Menu> bfn

Vérifier dans les logs de votre serveur bootstrap que le NFS est bien pris en compte :


# tail -f /var/log/syslog

May 11 13:59:21 localhost mountd[10989]: NFS mount of /nfsroot-x86 attempted from 192.168.107.78
May 11 13:59:21 localhost mountd[10989]: /nfsroot-x86 has been mounted by 192.168.107.78

Voilà, dans le minicom vous devez voir apparaitre un prompt Debian.

3. Installation du Cobalt

Nous allons préparer le disque du Raq pour accueillir une Debian.

3.1 Partitionner et formater le disque


{serial}# fdisk /dev/hda

Exemple :

   Device Boot         Start         End      Blocks   Id  System
   /dev/hda1               1       19842    10000336+  83  Linux                 /
   /dev/hda2           19843       21827     1000440   82  Linux swap / Solaris  swap
   /dev/hda3           21828       41669    10000368   82  Linux                 /var
   /dev/hda4           41670       77545    18081504   82  Linux                 /opt

Dans le cas d’une configuration de raid logiciel :

# fdisk /dev/hda

Command (m for help): p

Disk /dev/hda: 40.0 GB, 40020664320 bytes
16 heads, 63 sectors/track, 77545 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1        7938     4000720+  fd  Linux raid autodetect
/dev/hda2            7939        9923     1000440   fd  Linux raid autodetect
/dev/hda3            9924       17841     3990672   fd  Linux raid autodetect
/dev/hda4           17842       77545    30090816   fd  Linux raid autodetect
# fdisk /dev/hdc

Command (m for help): p

Disk /dev/hdc: 40.0 GB, 40020664320 bytes
16 heads, 63 sectors/track, 77545 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdc1               1        7938     4000720+  fd  Linux raid autodetect
/dev/hdc2            7939        9923     1000440   fd  Linux raid autodetect
/dev/hdc3            9924       17841     3990672   fd  Linux raid autodetect
/dev/hdc4           17842       77545    30090816   fd  Linux raid autodetect

Puis formater les partitions :


{serial}# mke2fs -r 0 -O none /dev/hda1
{serial}# mke2fs /dev/hda3
{serial}# mke2fs /dev/hda4
{serial}# mkswap /dev/hda2
{serial}# swapon /dev/hda2

Ensuite on les monte dans /mnt :


{serial}# mount /dev/hda1 /mnt
{serial}# mkdir /mnt/var
{serial}# mount /dev/hda3 /mnt/var
{serial}# mkdir /mnt/opt
{serial}# mount /dev/hda4 /mnt/opt

Dans le cas d’un RAID 1 soft :

a. Création du raid

{serial}# mdadm --create /dev/md1 --level 1 --raid-devices=2 /dev/hda1 /dev/hdc1
{serial}# mdadm --create /dev/md2 --level 1 --raid-devices=2 /dev/hda2 /dev/hdc2
{serial}# mdadm --create /dev/md3 --level 1 --raid-devices=2 /dev/hda3 /dev/hdc3
{serial}# mdadm --create /dev/md4 --level 1 --raid-devices=2 /dev/hda4 /dev/hdc4

b. Vérification de la synchronisation

{serial}# cat /proc/mdstat

c. Configuration du RAID

{serial}# mdadm --detail --scan
{serial}# mdadm --detail --scan > /etc/mdadm.conf

d. Formatage des partitions et montage

{serial}# mke2fs -r 0 -O none /dev/md1
{serial}# mke2fs /dev/md3
{serial}# mke2fs /dev/md4
{serial}# mkswap /dev/md2
{serial}# swapon /dev/md2
{serial}# mount /dev/md1 /mnt/
{serial}# mkdir /mnt/var
{serial}# mount /dev/md3 /mnt/var
{serial}# mkdir /mnt/opt
{serial}# mount /dev/md4 /mnt/opt

3.2. Installation d’un système de base.

Maintenant nous allons lancer un debootstrap pour construire un system dans /mnt


{serial}# debootstrap sarge /mnt http://archive.debian.org/debian/

Nous allons copier quelques fichiers , i.e. les même qu’à l’étape 1.2.4.

Dans le cas d’un RAID soft, copier le fichier mdadm.conf


{serial}# cp /etc/mdadm.conf /mnt/etc/mdadm.conf

Il faut aussi penser à monter /mnt/proc :


{serial}# mount proc /mnt/proc -t proc

Puis nous entrons dans le nouveau système avec chroot :


{seria}# chroot /mnt /bin/bash

3.3. Configuration du système

Une fois dans le chroot je lance quelques commandes :


{serial-chroot}# base-config
{serial-chroot}# apt-get update
{serial-chroot}# apt-get dist-upgrade


{serial-chroot}# apt-get install vim sudo
{serial-chroot}# visudo

Si RAID soft :

{serial-chroot}# apt-get install mdadm

3.4. Compilation d’un kernel (selon la doc)

3.4.1. Récupération du kernel

{serial-chroot}# apt-get install vim libncurses5-dev kernel-package gcc make ncftp
{serial-chroot}# cd /usr/src
{serial-chroot}# ncftp ftp.free.fr

{serial-chroot}> cd pub/linux/kernel
{serial-chroot}> cd v2.4
{serial-chroot}> get linux-2.4.32.tar.gz
{serial-chroot}> quit

3.4.2. Décompression du kernel

{serial-chroot}# tar xfz linux-2.4.32.tar.gz

3.4.3. Récupération du patch et du fichier de configuration du kernel

{serial-chroot}# sync
{serial-chroot}# wget http://hugues.lepesant.com/stuff/cobalt/cobalt-2.4.32.patch
{serial-chroot}# wget http://hugues.lepesant.com/stuff/cobalt/conf_cobalt-RaqXXX_2432

XXX = 34 pour les Raq3, Raq3i, et Raq4
XXX = 550 pour le Raq550

3.4.4. Configuration et compilation du kernel

{serial-chroot}# ln -s linux-2.4.32 linux
{serial-chroot}# patch -p 0 < cobalt-2.4.32.patch
{serial-chroot}# cp conf_cobalt-RaqXXX_2432 linux/.config
{serial-chroot}# cd linux
{serial-chroot}# make menuconfig
{serial-chroot}# vim /etc/kernel-pkg.conf

Modifier les lignes maintainer et email.

{serial-chroot}# make-kpkg clean
{serial-chroot}# make-kpkg --revision=cobalt.1.0 kernel_image
{serial-chroot}# make-kpkg modules_image

3.4.5. Préparation du Cobalt

{serial-chroot}# vi /etc/kernel-img.conf

Ce fichier doit contenir les lignes suivantes:

do_symlinks = No
do_boot_enable = No
do_initrd = No
postinst_hook = /etc/cobalt/kernel_cobalt_install.sh
prerm_hook = /etc/cobalt/kernel_cobalt_remove.sh


{serial-chroot}# mkdir /etc/cobalt
{serial-chroot}# vi /etc/cobalt/kernel_cobalt_install.sh
{serial-chroot}# vi /etc/cobalt/kernel_cobalt_remove.sh
{serial-chroot}# chmod u+x /etc/cobalt/kernel_cobalt*.sh

3.4.5.1 /etc/cobalt/kernel_cobalt_install.sh

#!/bin/sh
ln -sf $2 /boot/vmlinux.gz

3.4.5.2 /etc/cobalt/kernel_cobalt_remove.sh

#!/bin/sh
rm -f /boot/vmlinux.gz

3.4.6. Installation du kernel

{serial-chroot}# cd /usr/src
{serial-chroot}# dpkg -i kernel-image-2.4.32_cobalt.1.0_i386.deb
{serial-chroot}# cd /boot
{serial-chroot}# ln -sf System.map-2.4.32 System.map

3.4.7. Configuration du Cobalt

{serial-chroot}# vim /etc/network/interface
{serial-chroot}# vim /etc/hosts
{serial-chroot}# vim /etc/inittab
{serial-chroot}# vim /etc/default/rcS
{serial-chroot}# exit

3.4.8. Reboot

{serial}# reboot

Et voilà, vous pouvez suivre le boot de votre Cobalt via le cable console et minicom.

Installation Debian/Woody sur un Cobalt Raq3/Raq3i/Raq4

ATTENTION :
Ce document compulse différentes doc trouvées de-ci de-là sur Internet sur le mode d’install d’un autre Linux que celui de Sun/Cobalt sur un Raq3/Raq3i et Raq4.
Les étapes de la procédure suivante ne sont pas supportées par Sun et en particulier le flashage de la ROM qui est obligatoire pour supporter des kernels de la famille 2.4.
L’auteur ne pourra être tenu pour responsabe si votre système est hors service suite à l’utilisation de ce document.

En résumé vous exécutez les lignes suivantes à vos risques et périls.

Je vous conseille vivement de liens suivants:

Etapes
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 a été testée que sur les Cobalt Raq3, Raq3i et Raq4, mais peut sans doute s’appliquer à d’autres produits Cobalt basés sur des processeurs i386 (Raq550, Qube3, …). Cependant la partie flashage n’a été testée que sur les Raq3/3i/4 !!

Vous aurez aussi besoin d’un PC i386 avec cd-rom et réseau pour la phase d’installation du système. Et idéalement d’une carte réseau Intel Pro/100.

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!) sont 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 trouverez ici :
ISO Raq3 Restore CD

Et la première partie de configuration du Raq via l’interface Web.
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à :
Flashtool

Pour la ROM je vous conseille celle du projet Cobalt-Rom sur SourceForge.
Project 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

2.2 Flasher la ROM
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

Si ça plante :
# ./flashtool -v -w backup.rom

Tant que vous n’avez pas rebooter le Raq, vous pouvez faire l’opération autant de fois que c’est nécessaire. En effet la ROM n’est lue qu’au momment du boot.

2.3 Est-ce que ça boote ?
On va vérifier que le Cobalt boote bien.

# reboot

2.4 Modifier le périphérique de boot par défaut
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 la barre espace pour accéder à la ROM.

Cobalt:Main Menu>

Vous pouvez naviguer dans le menu (taper help).

Pour modifier 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 passé (flashtool aurait hurlé 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
Choisir bf24 comme kernel au promt linux: du CD.

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’installe 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 votreCobalt 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 sudo screen

4.3 Récupération des sources
Au moment où j’écris cette doc le kernel linux 2.4.27 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.27.

Il est tout à fait possible de ne pas appliquer ces patchs et passer tout de suite à une version 2.4.27.
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 pour récupérer le fonctionnement du LCD à la mode Cobalt, c’est ici.

Add On

  • La version 2.4.28 est sortie. Vous pouvez appliquer le pacth 2.4.28 sans souci
  • La version 2.4.29 est sortie. Vous pouvez appliquer le pacth 2.4.29 sans souci
  • La version 2.4.30 est sortie. Vous pouvez appliquer le pacth 2.4.30 sans souci
  • La version 2.4.31 est sortie. Vous pouvez appliquer le pacth 2.4.31 sans souci
  • La version 2.4.32 est sortie. Vous pouvez appliquer le pacth 2.4.32 sans souci


$ 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
> get patch-2.4.32.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
$ gunzip patch-2.4.32.gz

# cd /usr/src
# tar xvfz ~hug/linux-2.4.25.tar.gz
# patch -p0 < ~hug/cobalt-2.4.25.patch
# patch -p0 < ~hug/cobalt-boot-2.4.25.patch

Au tour des patchs kernel :


# patch -p0 < ~hug/patch-2.4.26
# mv linux-2.4.25 linux-2.4.26
# patch -p0 < ~hug/patch-2.4.27
# mv linux-2.4.26 linux-2.4.27
# patch -p0 < ~hug/patch-2.4.28
# mv linux-2.4.27 linux-2.4.28
# patch -p0 < ~hug/patch-2.4.29
# mv linux-2.4.28 linux-2.4.29
# patch -p0 < ~hug/patch-2.4.30
# mv linux-2.4.29 linux-2.4.30
# patch -p0 < ~hug/patch-2.4.31
# mv linux-2.4.30 linux-2.4.31
# patch -p0 < ~hug/patch-2.4.32
# mv linux-2.4.32 linux-2.4.32
# ln -s linux-2.4.32 linux
# cd linux
# cp ~hug/cobalt-rom.config .config
# make menuconfig

Faite les quelques modifications dans la conf du kernel si vous le voulez.
Mais cette conf devrait marcher. Sinon essayer celle là kernel + patch + config .
Les packages tous fait : ici.

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.32_cobalt.1.0_i386.deb

4.6 Préparation de l’install du kernel
Nous allons créer 2 scripts qui seront appelés 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.gz

# 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 de configuration 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.32_cobalt.1.0_i386.deb

Vérifier que les scripts ont fait leur boulot.

hug@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 afficherait 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 arrétez le serveur, retirez le disque dur du PC et remettez le dans le
Raq.

Branchez une console sur le port série 1 (115200 8n1).

Allumez le Raq.
Et hop vous voilà avec une Debian inside…

N.B. :
Si vous avez la chance d’avoir un serveur qui redirige la sortie VGA vers un port série,
je vous conseille d’installer la Debian en branchant un minicom sur ce port série (9600 8n1).
Au boot du CD tapez : bf24 console=ttyS0

Remerciement à Kiwi pour son aide lors de mes débuts lors du domptage des boites bleues 🙂
et aux personnes citées au début de ce doc pour leurs contributions non négligeable.