Cette semaine, je me suis amusé avec un gros jouet que j’ai récupéré de mon papa : une station HP Visualize B132L+.

Elle était un peu sale et sur le dessus, il y avait pire qu’un autocollant : un autocollant à moitié arraché.
Beurk, il était temps de lui rendre une petite jeunesse.

Voilà qui est beaucoup mieux.
À noter que sous l’emplacement de l’autocollant, on peut découvrir la couleur d’origine 
Vu son âge, le jaunissement est modéré je trouve.
Bon ok, mais qu’est-ce que c’est que ce machin ?
J’y viens !
Alors, cette machine fait partie de la série des HP 9000, et elle prenait place dans l’entrée de gamme des stations de travail HP, à sa sortie en 1997.
Ce qui fait sa particularité (car somme toute, un ordinateur de 1997 ça n’a rien de si excitant en soi), c’est son architecture plutôt exotique.
En effet, ça n’est pas un PC, ça n’est pas du x86, mais ça repose sur l’architecture maison de HP (Hewlett-Packard à l’époque) : le PA-RISC (ou HP/PA).
C’est une architecture CPU à part entière, incompatible avec les autres, qui a connu trois versions majeures : 1.0, 1.1 puis 2.0 (cette dernière version étant 64-bits mais rétrocompatible 32-bits)

Pour l’OS, point de DOS ni de Windows, ces machines sont conçues pour tourner sur un OS particulier, également propre à HP : HP-UX.
C’est un UNIX propriétaire avec l’interface graphique CDE, qui a justement été crée pour PA-RISC, et a ensuite été porté sur Itanium après l’abandon de l’architecture. (mais les versions récentes de HP-UX sont toujours également compilées pour PA-RISC)
HP-UX est encore développé et assez utilisé, mais chez les pros il ne semble pas vraiment populaire par rapport à une concurrence assez agressive (Solaris, AIX, Linux, BSD), et a entamé un long déclin depuis quelques années. (allant de pair avec l’échec commercial qu’est l’Itanium).
Y’a quoi là-dedans ?
Cette série des BxxL a pour particularité de s’ouvrir comme un tiroir :

S’agissant d’un B132L+ (ou HP 9000/778), on a donc le droit à :
- Un processeur PA-7300LC (architecture PA-RISC 1.1) cadencé à 132Mhz, 128Ko de cache L1 mais pas de cache L2 sur le mien (il y a 2 ports vides à côté du CPU pour permettre de monter le cache L2 jusqu’à 8Mo)
- 128Mo de RAM SIMM ECC (upgrade possible jusqu’à 1.5Go)

- Un disque SCSI Ultra2-Wide IBM Ultrastar 9ES (DDRS-39130WS) de 9.1Go et tournant à 7200tpm
- Un lecteur de bande DDS2 en SCSI, modèle HP C1533A (un lecteur CD-ROM peut également y prendre place, ou éventuellement un second disque dur)
- Un port ethernet 10/100Mbps, chip DEC 21142/43
- Une puce graphique Visualize-EG “Graffiti” sortant sur un port EVC (ça a la même tête qu’un DVI mais ça n’en est évidemment pas un, c’est un connecteur propriétaire HP, il faut soit avoir un écran HP avec cette connectique, soit un adaptateur vers BNC ou VGA – c’est cette dernière solution que j’ai utilisé)
- Des ports relativement classiques, PS2, RS232, SCSI externe, …

- 2 slots PCI/GSC : 32-bits/33Mhz sous 5V pour les PCI. Je n’ai aucune idée de ce qui existe comme carte GSC.

Bref une machine relativement burnée pour l’époque, et très bien construite.
Par contre je n’ai aucune idée du prix auquel ça se vendait.
Un article du HP Journal de Juin 1997 qui présente la gamme B-class.
Qu’en faire ?
LA grande question
J’ai essayé de la booter telle quelle, HP-UX commence à se lancer mais le boot s’interrompt au bout d’un moment, il me semble qu’il cherche à obtenir une réponse d’un serveur avant de continuer.
Et sans login ni password, je n’aurais rien vraiment pu en faire.
J’avais de toutes façons dans la tête de la réinstaller from scratch, c’est plus drôle.
Côté OS compatibles, le choix est plutôt restreint par rapport à d’autres architectures, mais il va quand même falloir se décider, nous avons donc :
- HP-UX : l’OS d’origine.
L’avantage c’est la compatibilité et l’exploitation parfaite du matériel, c’est sous cet OS que les performances et les fonctionnalités materielles seront maximales.
(drivers graphiques => accéleration 2D sous X, exploitation du CPU, …)
Les inconvénients sont nombreux, CDE n’est pas super sexy (mais ça n’est pas vraiment un critère), il faut un peu bricoler pour avoir des softs libres récents (il existe des dépôts), et il faut aussi trouver un média d’installation. (la licence n’étant a priori pas un problème, celle-ci étant rattachée au matériel dans le cas des workstations – ça n’est pas le cas pour les serveurs)
- Linux : il y a un port, d’ailleurs sponsorisé par HP à une époque.
Celui-ci couvre les 3 versions de l’architecture, il y a même un kernel 64-bits pour les 2.0
Il est reconnu comme étant plutôt de bonne qualité, même si le caractère exotique de l’archi fait que les bugs sont plus nombreux que sur d’autres, et pas forcément rapidement corrigés.
Plusieurs distributions le fournissent, ainsi que les paquets adéquats, mais les deux seules réellement solides et tenues à jour sont Debian et Gentoo.
- OpenBSD : un port existe, il a été développé from scratch, et en partie grâce à la doc fournie par HP pour le port Linux.
Il semble être de bonne qualité, les versions 1.1 et 2.0 de l’archi sont supportées en 32 bits, un port 64 bits est en cours de développement, mais a l’air d’être abandonné.
- NetBSD : il y a deux ports dispos, hp300 et hp700, pour respectivement PA-RISC 1.0 et 1.1, les PA-RISC 2.0 (série PA-8000) ne sont donc pas supportés.
Le port se base sur celui d’OpenBSD et ne semble plus très maintenu, ni d’une grande qualité.
Mon choix s’est finalement porté sur Debian 
Pour plusieurs raisons, par facilité parce que je connais plutôt bien la distro, et que je voulais voir comment Debian se comportait sur une archi pas commune
Je n’exclus pas d’essayer les autres, en particulier OpenBSD, voire NetBSD (sur lequel j’ai un peu bricolé ces derniers temps, et qui m’a beaucoup plu), mais pourquoi pas Gentoo (vu la puissance, l’installation risque d’être longue
).
Et évidemment HP-UX, ça serait bien que je voie un peu à quoi ça ressemble.
L’installation de Debian HPPA
Premier problème : le media d’installation
Et oui, si vous avez suivi, vous savez que sur cette machine, je n’ai comme périphérique de stockage amovible qu’un lecteur DAT.
Certes, d’après la doc HP, il est bootable (ça m’a d’ailleurs vachement étonné, je ne pensais pas possible de booter là-dessus), mais je n’ai pas de moyen de créer une DAT, je n’ai pas d’autre lecteur à ma disposition.
Je n’ai pas non plus de lecteur CD SCSI que j’aurais pu brancher temporairement sur le B132L+.
Il me reste donc une seule solution : booter l’installeur par le réseau.
C’est une fonctionnalité supportée par la console de boot.
Pour accéder à cette console, il suffit simplement d’appuyer sur Escape durant les 15 secondes de timeout avant le boot sur le périphérique par défaut.
On arrive à une invite de commande avec pas mal de possibilités.
Mais revenons à notre boot par réseau, et plus précisément la partie serveur.
Pour ce faire, je suis parti d’un PC avec une Debian minimale fraîchement installée (pas obligatoire, mais dans mon cas c’était un PC qui méritait un formatage) connecté directement en ethernet à la station HP (obligation d’utiliser un câble croisé ou une carte qui fait de l’auto-MDX).
Sur cette génération de HP/PA, le boot par réseau se fait par BOOTP et TFTP.
Sur le serveur j’ai donc utilisé dhcp3-server (qui remplit les fonctions de serveur DHCP ainsi que de serveur BOOTP, et est relativement simple à configurer) ainsi que tftpd-hpa (le “hpa” n’ayant rien à voir avec hppa, c’est simplement une version améliorée de tftpd).
Il y a moults tutoriaux sur le net pour expliquer leur configuration, je vous invite donc à suivre ce que Google vous proposera. (il n’y a rien de particulier, c’est du BOOTP/TFTP standard)
Concernant l’image de boot, j’ai utilisé celle fournie par Debian pour Lenny, disponible ici.
Lancement de l’installation
Une fois notre PC serveur configuré et en écoute, le câble branché, on peut lancer le HP.
Comme décrit précédemment, on appuie sur Escape lors du timeout concernant le périphérique de boot (le deuxième timeout), et à l’invite de commande on tape :
boot LAN
Tout simplement.
Si tout va bien, il vous indiquera qu’il a bien récupéré son IP depuis le serveur DHCP, ainsi que l’IP du serveur BOOTP.
Puis l’image se charge et on arrive à un menu comportant des choix de lancement de l’image.
Petite parenthèse : si ici il vous sort une grosse erreur avec un dump et une ligne comportant un “Status = -3″ c’est que votre serveur TFTP ou votre image n’est pas accessible, vérifiez votre configuration.
Il suffit de confirmer en entrant “b”, et on peut admirer, les yeux remplis de bonheur, le kernel Linux se charger, avec en haut à gauche, surveillant le bon déroulement des opérations, un joli Tux tatoué du logo PA-RISC.
Une fois que tout est chargé, on peut sans problème débrancher le câble ethernet du serveur et le brancher à son routeur/switch/quesaisje pour pouvoir fournir une connection internet à la netinstall.
La suite, c’est le classique et rassurant installeur Debian en ncurses, là pas de problème, on connaît 
C’est assez lent, premiers signes du manque de souffle de la machine ?
Néanmoins, l’installeur fonctionne parfaitement, tout se déroule comme une installation classique …
… en fait, pas si sûr
Deuxième écueil : le partitionnement
Et oui, car j’ai pas mal tatonné et foiré 3 installations avant de trouver le bon schéma de partitionnement
Tout d’abord, sur HPPA, pas de Grub ni de LILO, il faut utiliser un loader dédié nommé PALO.
(contraction de PA-risc LOader et faisant allusion à Palo Alto, ville dans laquelle Hewlett-Packard vit le jour)
Ce loader nécessite une partition dédiée, en tout premier. (que l’on peut choisir dans le choix du type de partition)
Ensuite, ce loader ne sait apparemment booter que sur de l’ext2, et seulement si la partition de boot est située dans les 2 premiers Go.
Puis enfin, LVM ne semble malheureusement pas fonctionner sur Debian HPPA.
Je n’ai pas vraiment creusé et suis revenu à un partitionnement classique.
En définitive voici le schéma qui a fonctionné pour moi, avec les partitions dans l’ordre :
- PALO : 100Mo
- /boot : Ext2 – 150Mo
(je laisse toujours pas mal de place, je n’en manque pas sur ce disque)
- / : Ext3 – plus de 8Go
- swap : 512Mo
(oui là aussi j’ai vu large, on ne sait jamais si il me prend l’envie de compiler des trucs)
On peut bien sûr séparer plus finement (notamment /home ou /var, suivant les besoins) mais ça n’était d’aucune utilité pour moi ici.
L’important étant de bien créer les deux premières partitions comme indiqué, le reste est à votre guise.
Finalisation
L’installation se déroulera parfaitement jusqu’à la fin, j’ai tout décoché (y compris “système de base”) dans les sets d’installation, comme j’ai l’habitude de le faire.
Un reboot final, les jeux sont faits.
Ça marche !

dek@basilic:~$ uname -a
Linux basilic 2.6.26-2-parisc #1 Sun Jun 21 04:16:17 UTC 2009 parisc GNU/Linux
Et ça marche même très bien, on a bien sûr accès à l’immense base de logiciels Debian, à Aptitude, apt-get, bref c’est une Debian ni plus ni moins
Le petit cpuinfo de rigueur :
dek@basilic:~$ cat /proc/cpuinfo
processor : 0
cpu family : PA-RISC 1.1e
cpu : PA7300LC (PCX-L2)
cpu MHz : 132.000000
model : 9000/778/B132L+
model name : Merlin L2+ 132 (9000/778/B132L)
hversion : 0x00005030
sversion : 0x00000481
I-cache : 64 KB
D-cache : 64 KB (WB, 2-way associative)
ITLB entries : 96
DTLB entries : 96 - shared with ITLB
BTLB fixed : max. 16384 pages, pagesize=4096 (64MB)
BTLB fix-entr. : 0 instruction, 0 data (8 combined)
BTLB var-entr. : 0 instruction, 0 data (0 combined)
bogomips : 87.55
software id : 2015817119
La sortie de dmesg
Un lspci :
dek@basilic:~$ lspci -nn
00:13.0 SCSI storage controller [0100]: LSI Logic / Symbios Logic 53c875 [1000:000f] (rev 04)
00:14.0 Ethernet controller [0200]: Digital Equipment Corporation DECchip 21142/43 [1011:0019] (rev 30)
Les perfs disque, très correctes pour l’époque, merci le SCSI et les 7200tpm :
basilic:~# hdparm -Tt /dev/sda
/dev/sda:
Timing cached reads: 104 MB in 2.02 seconds = 51.46 MB/sec
Timing buffered disk reads: 40 MB in 3.14 seconds = 12.76 MB/sec
J’ai aussi lancé un iperf histoire de voir les performances de l’interface réseau, j’arrive à 75Mbps, ce qui est plutôt correct. (un matériel récent et de qualité fait 95Mbps en 100TX)
Au final, ça semble un peu lent à l’utilisation (genre pour aptitude, les accès à la base de données de paquets sont plutôt longuets), reste à savoir ce qui en est la cause.
Je pense plutôt à une mauvaise exploitation du matériel qu’à un manque de puissance intrinsèque (d’après des benchs CPU, en entiers c’est au niveau d’un Pentium Pro 166 et en flottant c’est supérieur à un Pentium Pro 200)
Mais sinon ça marche super bien, je suis à la recherche de benchs pour pouvoir comparer avec du x86, je vais sûrement faire tourner quelques services dessus voir ce que ça peut donner en utilisation réelle.
Sinon pourquoi pas un passage en Squeeze voire en Sid si je suis casse-cou 
(si Sid n’est pas vraiment risquée sur i386, sur hppa ça risque d’être différent, y’a quand même moins de monde sur le coup
)
Concernant une éventuelle utilisation en desktop, c’est pas gagné avec du Linux, en effet niveau graphique, le driver ne permet au maximum que du framebuffer, donc adieu l’accéleration 2D sous X.
La seule solution pour réellement en profiter en graphique est de revenir sur du HP-UX.
En tout cas cette belle machine ronronne désormais fièrement au sein de mon grand bazar et j’y accède par SSH quand je veux la gratouiller.

(notez la LED “coeur” qui informe des battements du kernel
)
Je vous tiendrai au courant de mes pérégrinations, mais vous informe aussi qu’elle ne va pas longtemps rester seule, une deuxième machine PA-RISC attend son tour d’être ranimée, et cette fois c’est du plus puissant
Complément :
D’après la mailing-list du port, l’équipe de release Debian aurait décidé d’abandonner hppa pour Squeeze 
Si j’ai bien compris, l’archi serait retirée de testing et ne pourrait donc pas devenir une nouvelle stable, mais par contre le port serait toujours présent en unstable.
Affaire à suivre, mais c’est bien dommage.
Références
Le dossier avec toutes mes photos de la machine en haute résolution