Installation (manuelle) d'une Frugalware PowerPC

Frugalware

Dans ce billet, je vais relater les différentes étapes pour installer la Frugalware (l'installateur est bugué, segfault aléatoirement) sur un ordinateur dont le processeur, est de type PowerPC. Il s'agit d'un iBook G4.

olivierd@brigand:~ $ cat /proc/cpuinfo 
processor       : 0
cpu             : 7447A, altivec supported
clock           : 1333.333000MHz
revision        : 1.2 (pvr 8003 0102)
bogomips        : 73.72
timebase        : 18432000
platform        : PowerMac
model           : PowerBook6,5
machine         : PowerBook6,5
motherboard     : PowerBook6,5 MacRISC3 Power Macintosh 
detected as     : 287 (iBook G4)
pmac flags      : 0000001b
L2 cache        : 512K unified
pmac-generation : NewWorld
Memory          : 1280 MB
olivierd@brigand:~ $ 

Démarrer le « live CD »

Pour booter à partir du CD, il faut activer l'Open Firmware. On y accède en appuyant silmutanément sur les touches Pomme + Alt + O + F.

Ensuite dans le prompt on tape la commande ci-dessous

boot cd:,\\yaboot

Note : Le clavier est en QWERTY.

Les options du « live CD »

Lorsque le CD démarre, on arrive au prompt du gestionnaire de démarrage, Yaboot.

Pour connaître les différentes options possibles, il suffit d'utiliser la touche Tab.

L'installation

Après le chargement du CD, on arrive à l'installateur en ncurses. Il faut immédiatement basculer dans une autre console (tty), combinaison des touches Ctrl + Alt + F2.

1. On change le layout du clavier :

loadkeys azerty

Il faut savoir que les claviers AZERTY des Macintosh sont très mal reconnus par Linux.

2. On vérifie que la date est correcte, le cas échéant, il faut la modifier

3. Partitionnement, avec l'utilitaire mac-fdisk

Je ne fais que trois partitions (/, swap, et /home), je reviendrais plus tard, pourquoi on ne fait pas de partition /usr séparée.

On ré-initialise la table des partitions avec la touche i.

Puis la partition de bootstrap (c'est propre aux PowerPC) avec l'option b.

Les autres partitions se créent à l'aide de la touche c.

/dev/hda1— Apple_partition_map (table des partitions)
/dev/hda2 — Apple_bootstrap (crée avec l'option b)
/dev/hda3 — /
/dev/hda4 — swap
/dev/hda5 — /home

4. Création du système de fichiers, dans mon cas ext4.

mkswap -L swap /dev/hda4
swapon /dev/hda4
mkfs.ext4 -L root /dev/hda3
mkfs.ext4 -L home /dev/hda5

L'option -L détermine le label (le nom) de la partition.

L'outil tune2fs n'est pas disponible de base dans le live CD. Mais dans le chroot, on peut l'utiliser.

5. On « monte » notre futur système dans /mnt

mount -t ext4 -o rw /dev/hda3 /mnt
mkdir /mnt/proc
mount -t proc none /mnt/proc
mkdir /mnt/sys
mount -o bind /sys /mnt/sys
mkdir /mnt/dev
mount -o bind /dev /mnt/dev

La partition /home à ce stade n'est pas indispensable.

6. Établissement de la connexion réseau (DHCP)

dhcpcd eth0

7. Installation des éléments de base

Nous allons partir directement sur une Frugalware testing. La version current est incomplète sur ce type d'architecture, et la version stable est « un peu obsolète ». On opte pour la version stable, car les autres versions sont incomplètes pour ce processeur.

On va modifier légèrement le fichier /etc/pacman-g2.conf :

On ne touche pas au fichier /etc/pacman-g2.conf.

Pour mettre à jour la base de données des paquets.

pacman-g2 -Sy

Nous allons pouvoir installer quelques paquets :

pacman-g2 -Sy core base iputils wget -r /mnt

Il s'agit du strict minimum.

On va pouvoir passer à la post-installation.

8. On se « connecte » sur le nouveau système

chroot /mnt /bin/bash
cd /root

8.1. On commence par créer les fichiers .bashrc et .bash_profile. On peut copier ces fichiers dans le dossier /etc/skel pour un futur utilisateur.

8.2. Configuration de l'éditeur, elvis, il s'agit d'un clone de Vi, bien connu des utilsateurs de Slackware.

" .exrc
"

set ruler
set verbose showmode
set showmatch

set tabstop=4
set shiftwidth=4
" .elvisrc
"

:source ~/.exrc

8.3. On définit le nom de l'ordinateur, il faut créer / modifier trois fichiers :

  • /etc/hosts
# For loopbacking.
127.0.0.1               localhost
127.0.0.1   brigand.errements.net brigand
[...]
  • /etc/hostname
brigand
  • /etc/HOSTNAME
brigand.errements.net

La commande netconfig aboutie au même résultat.

8.4. Définition des locales

Nous voulons avoir un système (en console, sans interface graphique) en français.

locale -a | grep fr_FR
fr_FR
fr_FR@euro
fr_FR.iso88591
fr_FR.iso885915
fr_FR.iso885915@euro
fr_FR.utf8

Pour cet ordinateur, j'ai choisi fr_FR.utf8.

  • /etc/locale.conf
LANG=fr_FR.utf8
  • /etc/profile.d/lang.sh (il n'existe pas)
#! /bin/sh

export LANG=fr_FR.utf8
export LC_ALL=$LANG
export CHARSET=utf-8

Il ne faut pas oublier de le rendre exécutable :

chmod a+x /etc/profile.d/lang.sh
  • /etc/profile.d/less.sh (on le modifie)
#!/bin/sh

# /etc/profile.d/less.sh

# Makes less(1) display utf-8 chars correctly by default.

export LESSCHARSET="utf-8"

8.5. Création du fichier /etc/fstab

A titre indicatif voici le mien :

# /dev/hda4: LABEL="swap" UUID="0dd97fc3-0627-4552-98f0-a86f67363b46"
/dev/hda4   swap    swap    defaults    0   0
# /dev/hda3: LABEL="root" UUID="51ee4d1a-a692-4b8a-9333-72fa2be1bab3"
/dev/hda3   /   ext4    defaults    1   1
# /dev/hda5: LABEL="home" UUID="5045e22b-5485-4b28-82ae-f0e949b5f76a"
/dev/hda5   /home   ext4    defaults    1   1
tmpfs   /tmp    tmpfs   defaults,noatime,nodev,noexec,size=512M 0   0
proc    /proc   proc    defaults    0   0
usbfs   /proc/bus/usb   usbfs   devgid=23,devmode=664   0   0
devpts  /dev/pts    devpts  gid=5,mode=620  0   0
sysfs   /sys    sysfs   defaults    0   0

Pour obtenir les UUID, on doit utiliser la commande blkid.

En parcourant le fichier, on constate que le dossier /tmp sera monter en RAM.

8.6. Installation du boot loader

On lance la commande yabootconfig. Si vous comptez modifier le contenu du fichier /etc/yaboot.conf, il faudra relancer la commande ybin -v.

8.7. Conserver les paramètres de la disposition du clavier au prochain redémarrage.

  • /etc/sysconfig/keymap
keymap = azerty
  • /etc/vconsole.conf
KEYMAP=azerty
FONT=lat9w-16

8.8. Choix du fuseau horaire.

Deux cas s'offrent à nous :

  • UTC
ln -sf /usr/share/zoneinfo/UTC /etc/localtime
  • Définir une timezone (par exemple Paris)
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime

8.9. Le compte root

A ce niveau root possède comme shell par défaut /bin/sh (il s'agit d'un lien symbolique vers /bin/bash). Nous allons le changer.

chsh -s /bin/bash

Son compte ne possède pas de mot de passe, nous allons lui en attribuer un, passwd. Pour paramétrer plus finement le mot de passe, vous pouvez modifier le fichier /etc/login.defs (généralement je change la valeur du paramètre ENCRYPT_METHOD).

9. Les services

A partir de la version 1.5, Frugalware utilise comme système d'init, systemd. Il fonctionne que si la bibliothèque libdbus est accessible, or si elle est présente sur une partition séparée (physiquement, généralement /usr) le système ne peut pas démarrer (kernel panic).

Comme notre système ne possède pas encore d'interface graphique, nous allons changer la « cible » (ou run level).

rm /etc/systemd/system/default.target
ln -sf /lib/systemd/system/mult-user.target /etc/systemd/system/default.target

Nous pouvons redémarrer notre ordinateur, et continuer à ajouter d'autres paquets, tels que xorg, alsa, etc.