Contenu de la page
Aller au menu contextuel - Aller au menu principal
Debian GNU/Linux Woody (3.0) sur un IBM iSeries
in EnglishToDo
Reste à améliorer :
- retester addRamDisk et addSystemMap sur un pas-ppc64. Pb de taille d'entiers, etc ?
- amélioration du banner
- indiquer ! kernel tout en dur !
- mettre le kernel dans le ramdisk
- /dev/tty n'existe pas ! (MAKEDEV std ?)
script de boot :
- mount -o remount,rw /dev/ram0 /
- mkdir /var/lib/dhcp
- ToDo
- Glossaire
- Procédure de création d'une partition Linux sur iSeries
- Accès aux services
- Description des menus
- Points notables de la procédure
- Installation de Debian
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.
- 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 ;
- Espace de stockage, à créer :
- un nom est à définir,
- la taille allouée (en Mo),
- espace de stockage d'origine: *NONE,
- format: *OPEN ;
- Joindre le stockage au serveur, option 10 dans le menu du stockage ;
- 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 ;
- 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.
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.
- les fichiers vmlinux, System.map et ppc64.bin.gz sont copiés sur un iSeries sous Linux
- addSystemMap64 System.map vmlinux vmlinux.sysmap
- 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.
