Menu contextuel

Aller au menu principal - Aller au contenu

Contenu de la page

Aller au menu contextuel - Aller au menu principal

Debian GNU/Linux Woody (3.0) sur un IBM iSeries

in English

Glossaire

Partition
Machine virtuelle hébergeant un système d'exploitation
Partition primaire
Partition fonctionnant avec OS400, permettant de gérer l'AS400
Serveur réseau
Système de démarrage d'une partition

Procédure de création d'une partition Linux sur iSeries

La création d'une partition se fait par la partition primaire. Pour les manipulations décrites, se référer aux chapitres suivants.

  1. Définition de la partition : commande STRSST; sont à préciser :
    • nom de la partition,
    • CPU alloué :
      • nombre de CPU,
      • pourcentage du CPU (0.0 à 1.0),
    • quantité de RAM allouée ;
  2. Espace de stockage, à créer :
    • un nom est à définir,
    • la taille allouée (en Mo),
    • espace de stockage d'origine: *NONE,
    • format: *OPEN ;
  3. Joindre le stockage au serveur, option 10 dans le menu du stockage ;
  4. Description du serveur réseau :
    • nom,
    • référence à la partition,
    • référence au stockage,
    • indications de démarrage,
      • fichier stocké dans la partition OS400,
      • démarrage sur la première partition de l'espace, de type prepboot ;
  5. On peut aussi faire de l'attribution hardware, non traitée ici.

Accès aux services

Utilisation de la partition primaire

Pour se connecter à la partition primaire, utiliser un émulateur de terminal 1 5250 ou la console locale. L'utilisateur administrateur ("root") est QSECOFR.

[1]TN5250 par exemple

Accès aux partitions

Pour accéder aux partitions (console virtuelle), il faut accéder en telnet sur le port 2301 de la partition primaire.

Il est conseillé de créer un utilisateur spécial pour se connecter à la console virtuelle Linux.

Description des menus

System Service Tools

Work with system partitions

Ce sous-menu permet de gérer les partitions de l'AS400, notamment d'ajouter une partition Linux. Ses sous-options sont relativement explicites.

Gestion des espaces de stockage des serveurs de réseau (WRKNWSSTG)

Ce sous-menu permet de gérer les espaces de stockage, entre autres :

  • les créer ;
  • les effacer ;
  • les attacher à des partitions.

Points notables de la procédure

Création d'une partition

Les service tools sont accessibles grâce à la commande STRSST. Ensuite, le menu "Work with system partitions" permet de gérer les partitions

  • dans les service tools, choisir l'option 5: "Create a new partition" ;
  • sélectionner l'environnement 2, "Guest" ;
    • Partition identifier and name : numéro et nom de la partition ;
    • Number of partition processors : processeurs attribués à la partition ;
    • Use shared processor pool : répondre "1", Yes ;
    • Shared processor pool units : Option entre "0.00" et "1.00" ;
    • Size of partition main storage : RAM allouée.

Définition d'un serveur de réseau

Un serveur de réseau est la représentation logique d'une partition au sein du iSeries. La commande WRKNWSD permet d'entrer dans l'écran de gestion des descriptions de serveurs de réseau. Ce menu permet de créer le serveur de réseau afin de pouvoir utiliser la partition précédemment créée.

Les informations à fournir sont :

  • le nom du serveur réseau ;
  • nom de ressource : *NONE ;
  • la partition associée ;
  • le type de serveur réseau (*GUEST)

Ensuite, la configuration du nouveau serveur réseau est possible. Entre autres, les points suivants sont importants :

  • "En ligne @ l'IPL" : démarrer la partition en même temps que la machine ;
  • "Page de codes" : mettre impérativement "437" ;
  • "Source de l'IPL" : à partir de quoi "booter" :
    • *NWSSTG : démarrer sur l'espace de stockage (partition prepboot),
    • *STMF : fichier stream d'IPL = fichier stocké sur le disque AS400 ; le fichier est à spécifier ensuite dans "Fichier STREAM d'IPL".
  • "Paramètres IPL" : la ligne de commande (root=/dev/... par exemple)

Dans ce même menu, l'option 8 permet de gérer l'arrêt/redémarrage des "partitions".

Définition d'un espace de stockage

Le menu dédié aux espaces de stockage est accessible avec la commande WRKNWSSTG. Ensuite, pour créer un espace, il faut utiliser la commande "1".

Les informations à fournir sont :

  • le nom de l'espace de stockage ;
  • la taille à allouer à cet espace (en Mo) ;
  • l'espace d'origine (mettre à *NONE) ;
  • le format (mettre à *OPEN).

Il faut ensuite associer l'espace à la partition créée, grâce à la commande 10 : "Ajouter lien".

Installation de Debian

L'installeur Debian n'existe pas sur une architecture PowerPC 64.

La première étape est donc de créer un système d'installation, donc de préparer un noyau Linux pour cette installation.

Compiler un noyau

Chaîne de compilation croisée

Sur le site de Linux sur PPC64, menu "Toolchain", télécharger "crosstool". Le décompresser et exécuter la procédure

wget http://kegel.com/crosstool/crosstool-0.28-rc25.tar.gz
tar zxf crosstool-0.28-rc25.tar.gz
cd crosstool-0.28-rc25
su root -c mkdir /opt/crosstool
su root -c chown xxx /opt/crosstool
(export ftp_proxy="http://x.x.x.x:3128")
sh demo-ppc970.sh 

Ou

wget http://kegel.com/crosstool/crosstool-0.28-rc25.tar.gz
tar zxf crosstool-0.28-rc25.tar.gz
cd crosstool-0.28-rc25
# Editer demo-ppc970.sh, y modifier ``RESULT_TOP``, et éventuellement
# ``TARBALLS_DIR``
(export ftp_proxy="http://x.x.x.x:3128")
sh demo-ppc970.sh 

Ces commandes créent les outils nécessaires pour compiler le noyau pour l'architecture cible.

Linux 2.6

Les étapes suivantes sont nécessaire pour la compilation du noyau en version 2.6

cd ~/downloads
tar jxf linux-2.6.6.tar.bz2
cd linux-2.6.6
vi Makefile
## Modifier les lignes suivantes :
# ARCH=ppc64
# CROSS_COMPILE=powerpc64-unknown-linux-gnu-
make menuconfig
# Sélectionner les options qui vont bien,
# particulièrement dans un sous-menu spécial iSeries
# Tout mettre "en dur"
PATH=$PATH:/opt/crosstool/powerpc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/bin/
make vmlinux

Linux 2.4

Un noyau Linux 2.4 est également utilisable. Pour l'utiliser, il faut premièrement télécharger une archive vanilla du noyau. Ensuite

tar jxf linux-2.4.xx.tar.bz2
cd linux-2.4.xx
vi Makefile
## Modifier les lignes suivantes :
# ARCH=ppc64
# CROSS_COMPILE=powerpc64-unknown-linux-gnu-
make menuconfig
# Sélectionner les options qui vont bien,
# particulièrement dans un sous-menu spécial iSeries
PATH=$PATH:/opt/crosstool/powerpc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/bin/
make vmlinux modules

Préparer un système d'installation

La documentation était prévue pour créer l'image d'installation à partir d'une machine x86, en compilation croisée. La création de l'image ne fonctionne pas sur cette machine, c'est pourquoi elle est reprise, à la fin, sur une partition Linux iSeries déjà installée.

Noyau

On crée une image de boot du noyau, en lui accolant son System.map, pour démarrer dessus

#cd arch/ppc64/boot
#gcc -o addRamDisk addRamdisk.c
#gcc -o addSystemMap addSystemMap.c

mkdir /tmp/boottarget
#cp addRamDisk addSystemMap /tmp/boottarget
#cd ../../..
cp System.map /tmp/boottarget
cp vmlinux /tmp/boottarget

Modules

Les modules de ce noyau sont installés dans un emplacement temporaire

mkdir /tmp/boottarget/modules
make INSTALL_MOD_PATH=/tmp/boottarget/modules/ modules_install

cd /tmp/boottarget
#./addSystemMap System.map vmlinux vmlinux.sysmap

Fichier de démarrage

Un fichier est créé, image de démarrage, comme une disquette...

Tout d'abord, les fichiers nécessaires sont téléchargés

wget http://ftp.fr.debian.org/debian/dists/woody/main/disks-powerpc/base-images-current/basedebs.tar
wget http://ftp.fr.debian.org/debian/dists/woody/main/disks-powerpc/3.0.23-2002-05-21/prep/images-1.44/root.bin
mv root.bin root.bin.gz
gunzip root.bin.gz

Ensuite, une nouvelle image de démarrage (de 40 Mo) est créée

su

# Répertoire temporaire...
mkdir /tmp/rootbin
mkdir /tmp/ppc64tmp


# Création du système de base
mount -o loop root.bin /tmp/rootbin
cp -a /tmp/rootbin/* /tmp/ppc64tmp/
umount /tmp/rootbin

# Création des entrées /dev spécifiques au iSeries
mkdir /tmp/ppc64tmp/dev/iseries
cd /tmp/ppc64tmp/dev/iseries
mknod vda b 112 0
mknod vda1 b 112 1
mknod vda2 b 112 2
mknod vda3 b 112 3
mknod vda4 b 112 4
mknod vda5 b 112 5
mknod vda6 b 112 6
mknod vda7 b 112 7
mknod vdb b 112 8
mknod vdb1 b 112 9
mknod vdb2 b 112 10
mknod vdb3 b 112 11
mknod vdb4 b 112 12
mknod vdb5 b 112 13
mknod vdb6 b 112 14
mknod vdb7 b 112 15
mknod vdc b 112 16
mknod vdc1 b 112 17
mknod vdc2 b 112 18
mknod vdc3 b 112 19
mknod vdc4 b 112 20
mknod vdc5 b 112 21
mknod vdc6 b 112 22
mknod vdc7 b 112 23
mknod vdd b 112 24
mknod vdd1 b 112 25
mknod vdd2 b 112 26
mknod vdd3 b 112 27
mknod vdd4 b 112 28
mknod vdd5 b 112 29
mknod vdd6 b 112 30
mknod vdd7 b 112 31
mknod vcda b 113 0
mknod vcdb b 113 1
mknod vtty0 c 229 0
mknod vtty1 c 229 1
mknod vt0 c 230 0
mknod vt1 c 230 1
cd -

# Ajout de bash, histoire de faire bien
wget http://ftp.fr.debian.org/debian/pool/main/b/base-files/base-files_3.0.2_powerpc.deb
wget http://ftp.fr.debian.org/debian/pool/main/b/bash/bash_2.05a-11_powerpc.deb
wget http://ftp.fr.debian.org/debian/pool/main/b/base-passwd/base-passwd_3.4.1_powerpc.deb
wget http://ftp.fr.debian.org/debian/pool/main/d/debianutils/debianutils_1.16.2woody1_powerpc.deb
wget http://ftp.fr.debian.org/debian/pool/main/g/gawk/gawk_3.1.0-3_powerpc.deb
wget http://security.debian.org/debian-security/pool/updates/main/g/glibc/libc6_2.2.5-11.5_powerpc.deb
(LIEN DE LIBNCURSES5 ?)
wget http://ftp.fr.debian.org/debian/pool/main/n/nvi/nvi_1.79-20_powerpc.deb
alien -t *.deb

cd /tmp/ppc64tmp
for i in /tmp/boottarget/*.tgz
do
 tar zxf $i
done

# On efface les fichiers non nécessaires (sinon l'image est trop grosse)
rm release_notes.*
rm -fr usr/share/doc/
rm unifont-reduced.bgf
rm etc/messages.*
rm -fr usr/share/zoneinfo/

# Lien correct pour "vi"
cd usr/bin
rm vi
ln -s nvi vi
cd ../..

# Joli script de démarrage
cd sbin
mv init init.old
vi init
#### Créer un shellscript contenant:
#
# #!/bin/ash
# echo "Welcome to the Adelux iSeries Debian installer"
# mount -t proc proc /proc
# /bin/bash
####
chmod a+x init
cd ..

# Copie des modules du noyau
cp -a /tmp/boottarget/modules/lib/* lib/


# Création de l'image de boot
cd /tmp/boottarget
dd if=/dev/zero of=ppc64.bin bs=10M count=2
mkfs.ext2 ppc64.bin
  y
mkdir /tmp/ppc64
mount -o loop ppc64.bin /tmp/ppc64
cp -a /tmp/ppc64tmp/* /tmp/ppc64/
umount /tmp/ppc64

gzip ppc64.bin
#./addRamDisk ppc64.bin.gz System.map vmlinux.sysmap iseries_debian_installer.img

Création de l'image sur un iSeries

La création d'image ne fonctionnant pas sur la machine de compilation (x86), elle est effectuée sur un iSeries déjà installé sous Linux.

  1. les fichiers vmlinux, System.map et ppc64.bin.gz sont copiés sur un iSeries sous Linux
  2. addSystemMap64 System.map vmlinux vmlinux.sysmap
  3. addRamDisk64 ppc64.bin.gz System.map vmlinux.sysmap iseries_deb_install.img

Préparation de l'installation

Le fichier d'installation créé est téléchargé en FTP sur la partition OS400, puis la partition Linux à installer est configurée pour démarrer en "fichier stream" sur le fichier téléchargé.

Le serveur réseau est ensuite démarré, option 8 du menu de définition des serveurs de réseau.

Installation de Debian

L'installation du système se fait entièrement à la main, car l'installeur Debian ne supporte pas l'architecture PowerPC 64.

Réseau

Premièrement, le réseau est à faire fonctionner. Pour un réseau en DHCP un dhclient-2.2.x est généralement suffisant, ou une configuration manuelle.

Disque(s) dur(s)

Partitionnement

cfdisk est utilisé pour partitionner le disque

cfdisk /dev/iseries/vda

Une partition FAT16 est déjà existante, à supprimer.

Une première partition primaire de 15 Mo est à créer, de type 41 (PPC PReP boot). Pour le reste, une installation standard est à effectuer.

Formatage et montage des partitions

Le système de fichier ext3 peut être créé avec la commande mke2fs -j`, sur les périphériques /dev/iseries/vd*. La swap peut également être créée avec la procédure standard.

Les partitions cibles de l'installation sont à monter dans le répertoire /instmnt, en commençant par la future partition /.

Par exemple

mount /dev/iseries/vda3 /instmnt
mkdir -p /instmnt/var/log
mount /dev/iseries/vda4 /instmnt/var/log

Installation du système de base

Ensuite, le fichier basedebs.tar correspondant à l'architecture (http://ftp.fr.debian.org/debian/dists/woody/main/disks-powerpc/base-images-current/basedebs.tar) est à télécharger, et à décompresser dans /instmnt, par exemple

cd /instmnt
wget ftp://xxxxx@172.16.3.178/home/yeiazel/basedebs.tar
tar xf basedebs.tar

for i in var/cache/apt/archives/*.deb
do
 ar -x $i
 tar zxf data.tar.gz
 rm data.tar.gz debian-binary control.tar.gz
done

rm basedebs.tar
cd /

Fichiers système de base

Certains fichiers sont à créer avant de pouvoir exploiter le système installé :

  • /instmnt/etc/apt/sources.list : y inclure les sources de paquets
  • /instmnt/etc/network/interfaces : configuration du réseau (ne pas oublier "lo")
  • /instmnt/etc/resolv.conf : fichier de configuration des DNS
  • /instmnt/etc/fstab : fichier de configuration des partitions
  • /instmnt/etc/hotname : le nom d'hôte du système
chroot /instmnt
hostname --file /etc/hostname

A partir de ce moment, le système est installé, mais la base de paquets dpkg n'est pas correctement configurée. C'est pourquoi il faut réinstaller tout le système avec l'utilitaire dpkg

export PATH
dpkg --force-all -i /var/cache/apt/archives/dpkg*.deb
dpkg --force-all -i /var/cache/apt/archives/libc6*.deb

for i in /var/cache/apt/archives/*.deb > do
 dpkg --force-all -i $i
done

Diverses erreurs peuvent subvenir, elles ne sont pas bloquantes.

Mise à jour du système

apt-get update
apt-get upgrade

Divers paquets sont également installés et/ou supprimés

apt-get install --purge postfix less pcmcia-cs- yaboot- quik- vim nvi- ssh

Mots de passe

/usr/sbin/shadowconfig on
passwd root

exit

Noyau, démarrage

Le iSeries ne sait pas démarrer en chargeant un noyau sur le disque de la machine (à la manière d'un bootloader). Il faut mettre le noyau dans la partion PReP

dd if=/boot/vmlinux of=/dev/iseries/vda1

Reconfiguration du iSeries

Aller dans le menu de configuration du serveur réseau, lui dire de démarrer sur la partition PReP, avec la ligne de commande root=/dev/iseries/vda3.

Aller au menu contextuel - Aller au menu principal - Aller au contenu