Depuis quelques temps je possède une HP B132L Visualize qui traine dans un coin de mon bureau et qui ne demande qu'à servir à quelque chose. Possèdant déjà plusieurs machines sous différents Unix, dont la plupart sont plus puissantes que celle-ci, je me suis demandé assez longtemps ce que je pourrais en faire...
Apres quelque temps de reflexion et pas mal de discussions avec -G.-, un autre habitué des lieux ;) je me suis décidé de lui redonner vie tout en lui trouvant une utilité, la mettre dans la build farm de Samba.
Ce document est log de l'histoire de son installation.
C'est donc décidé je vais redonner vie à cette machine en la faisant rejoindre la buildfarm de Samba. La configuration matérielle est la suivante :
HP Visualize B132L
64 Mo de mémoire
Disque dur Quantum Fireball 6.2 Go
Seconde carte réseau 100MBps
Pas de lecteur de CD, on utilisera un lecteur externe le temps de l'installation
Un des prérequis est de trouver une combinaison OS/plate-forme qui ne soit pas encore présente dans la ferme. Pour cela il faut aller voir sur le site de samba quelles sont les machines à base de HP-PA déjà présentes.
La chance est de mon côté, seuls Linux et HP-UX sont présents. Il semble donc tout à fait possible de trouver des OS alternatifs à Linux et à l'Unix du constructeur. Un petit tour sur openpa.net me donne la liste des os supportés pour la machine.
Une fois que l'on a éliminé Linux et HP-UX, déjà présent dans la ferme, il reste Open BSD et NetBSD. Comme le support de ce dernier est annoncé comme étant expérimental, OpenBSD est choisi. Il ne reste plus qu'à l'installer...
Avant de commencer je reconnais avoir un petit a priori sur la complexité. Mais on va voir ce que cela donne, et finalement c'est comme cela que l'on apprend :)
L'étape suivante est d'aller sur la section HPPA du site d'openbsd pour trouver la documentation sur l'installation. On nous propose deux types d'installation, soit la version release, dont la doc est disponible, soit la version snapshot, pour laquelle la documentation est aussi disponible. Que demander de plus ?
Plusieurs modes d'installation nous sont proposés :
CD-ROM
FFS partitions (for upgrades only)
Tape
FTP
HTTP
Je décide de prendre la méthode qui me semble "à priori" la plus simple. On verra après si j'ai eu raison. Ce sera une installation depuis un CDROM. Je choisis donc un miroir proche de chez moi, en l'occurence le FTP de Club Internet, et télécharge l'ISO de la version HPPA. Il n'y a plus qu'à graver et à booter dessus.
Quelques minutes et une galette plus tard, les choses sérieuses vont commencer. Bien sur le CD est bootable comme annoncé, la gravure se passe trés simplement avec des outils tels que K3B.
------- Main Menu ------------------------------------------------------------- Command Description ------- ----------- BOot [PRI|ALT|<path>] Boot from specified path PAth [PRI|ALT|CON|KEY] [<path>] Display or modify a path SEArch [DIsplay|IPL] [<path>] Search for boot devices COnfiguration [<command>] Access Configuration menu/commands INformation [<command>] Access Information menu/commands SERvice [<command>] Access Service menu/commands DIsplay Redisplay the current menu HElp [<menu>|<command>] Display help for menu or command RESET Restart the system ------- Main Menu: Enter command > boot scsi.6.0
La commande boot scsi.6.0 permet de booter sur le periphérique d'ID SCSI 6. En l'occurrence un lecteur
de CD externe. La machine démarre et nous demande ce que l'on veut faire.
lpt0 at gsc0 offset 2000 irq 7 dino0 at phantomas0 offset ff80000 irq 25: Dino V2.1 pci0 at dino0 vdc0 at pci0 dev 2 function 0 "DEC 21142/3" rev 0x21: irq 3, address 00:60:b0:7a:4a:df nsphy0 at dc0 phy 1: DP83840 10/100 PHY, rev. 1 biomask 0x23 netmask 0x27 ttymask 0x3f boot path: 8/16/5.6 class=1 flags=0 hpa=0xffd06000 spa=0x0 io=0xc000 rd0: fixed, 5120 blocks hil0: no devices rootdev=0x300 rrootdev=0x900 rawdev=0x902 WARNING: clock lost 12802 days -- CHECK AND RESET THE DATE! erase ^?, werase ^W, kill ^U, intr ^C, status ^T (I)nstall, (U)pgrade or (S)hell?
On choisit I pour installer une nouvelle version.
(I)nstall, (U)pgrade or (S)hell? I Welcome to the OpenBSD/hppa 3.7 install program. This program will help you install OpenBSD in a simple and rational way. At any prompt except password prompts you can run a shell command by typing '!foo', or escape to a shell by typing '!'. Default answers are shown in []'s and are selected by pressing RETURN. At any time you can exit this program by pressing Control-C and then RETURN, but quitting during an install can leave your system in an inconsistent state. Terminal type? [vt100]
L'installation se fait au travers d'une liaison série, il faut donc préciser le type de terminal. vt100
est un bon choix.
IS YOUR DATA BACKED UP? As with anything that modifies disk contents, this program can cause SIGNIFICANT data loss. It is often helpful to have the installation notes handy. For complex disk configurations, relevant disk hardware manuals and a calculator are useful. Proceed with install? [no]
L'étape suivante est de choisir le disque racine.
Proceed with install? [no] yes Cool! Let's get to it... You will now initialize the disk(s) that OpenBSD will use. To enable all available security features you should configure the disk(s) to allow the creation of separate filesystems for /, /tmp, /var, /usr, and /home.
Available disks are: sd0. Which one is the root disk? (or 'done') [sd0]
Cette machine ne possède qu'un disque scsi interne, il n'y a donc pas de choix. Ce qui va suivre est peut-
être le moins facile, et surtout le moins convivial à mon gout : partitionner le disque.
Reserving the first data cylinder for boot blocks. You can use the 'b' command to change this. Initial label editor (enter '?' for help at any prompt) >
Ou la... demandons l'aide !
> ? Available commands: ? [cmnd] - this message or command specific help. a [part] - add new partition. b - set OpenBSD disk boundaries. c [part] - change partition size. D - set label to default. d [part] - delete partition. e - edit drive parameters. g [b|d|u] - use [b]ios, [d]isk or [u]ser geometry. M - show entire OpenBSD man page for disklabel. m [part] - modify existing partition. n [part] - set the mount point for a partition. p [unit] - print label. q - quit and save changes. r - recalculate free space. s [path] - save label to file. u - undo last change. w - write label to disk. X - toggle expert mode. x - exit without saving changes. z - zero out partition table. Numeric parameters may use suffixes to indicate units: 'b' for bytes, 'c' for cylinders, 'k' for kilobytes, 'm' for megabytes, 'g' for gigabytes or no suffix for sectors (usually 512 bytes). '%' for percent of total disk size, '&' for percent of free space. Non-sector units will be rounded to the nearest cylinder. Entering '?' at most prompts will give you (simple) context sensitive help.
Le disque a déjà servi une fois à faire des tests. Nous allons imprimer le partitionnement actuel (en mega
octets) pour être sûr du contenu.
> p m device: /dev/rsd0c type: SCSI disk: SCSI disk label: FIREBALL SE6.4S bytes/sector: 512 sectors/track: 276 tracks/cylinder: 6 sectors/cylinder: 1656 cylinders: 7637 total bytes: 6184.6M free bytes: 0.0M rpm: 5400 3 partitions: # size offset fstype [fsize bsize cpg] a: 5800.0M 0.8M 4.2BSD 2048 16384 384 b: 383.7M 5800.9M swap c: 6184.6M 0.0M unused 0 0
On retrouve les partitions de tests que j'ai créées un petit peu plus tôt... avant ce disque contenait
des partitions Linux ;) Je supprime tout avec la commande d, pour repartir d'un disque non
partitionné.
> d a > d b > d c You may not delete the 'c' partition. The 'c' partition must exist and should span the entire disk. By default it is of type 'unused' and so does not take up any space.
Attention on n'a pas le droit d'enlever la partition c ! Une lecture détaillée de l'aide explique pourquoi.
Dans ce document je me contenterais d'évoquer une similitude avec la partition numéro 2 de solaris,
ou overlap. Elle aussi se trouve en troisième position :)
Imprimons la table pour pour vérifier. Commande print.
3 partitions: # size offset fstype [fsize bsize cpg] c: 6184.6M 0.0M unused 0 0
Tout va bien, il n'y a plus que l'overlap pour parler le solaris :)
On va maintenant partitionner la machine.
Il s'agit d'une machine destinée à faire des compilations sur un réseau privé et qui n'aura pas de
compte utilisateur autre que le minimum nécessaire pour faire un ssh dessus (sans devoir être root).
Donc pas besoin de se compliquer la vie. Je vais créer seulement une racine et un swap.
Comme la machine a peu de mémoire, je vais mettre pas mal de swap.
> a a offset: [1656] size: [12664366] 5926m Rounding to nearest cylinder: 11878488 FS type: [4.2BSD] mount point: [none] /
a a permet de creer la partition a
L'offset est le bon par défaut étant donné que le disque est vide, la première partition commence
au début du disque. On choisit une taille de 5.8 go, ce qui laissera environ 256mo pour le swap, et on crée
une seconde partition b pour le swap dont la taille est le reste.
> a b offset: [12138480] size: [527542] FS type: [swap]
On vérifie ce que l'on a créé ...
> p m device: /dev/rsd0c type: SCSI disk: SCSI disk label: FIREBALL SE6.4S bytes/sector: 512 sectors/track: 276 tracks/cylinder: 6 sectors/cylinder: 1656 cylinders: 7637 total bytes: 6184.6M free bytes: 0.0M rpm: 5400 3 partitions: # size offset fstype [fsize bsize cpg] a: 5926.2M 0.8M 4.2BSD 2048 16384 16 # / b: 257.6M 5927.0M swap c: 6184.6M 0.0M unused 0 0
Tout va bien, il ne reste plus qu'à l'écrire sur le disque et continuer l'install.
> w > q No label changes. No more disks to initialize. OpenBSD filesystems: sd0a / The next step *DESTROYS* all existing data on these partitions! Are you really sure that you're ready to proceed? [no] yes
On confirme par un yes que l'on veut bien détruire les données du disque dur
/dev/rsd0a: 12136824 sectors in 14658 cylinders of 3 tracks, 276 sectors 5926.2MB in 39 cyl groups (384 c/g, 155.25MB/g, 19840 i/g) /dev/sd0a on /mnt type ffs (rw, asynchronous, local, ctime=Mon Mar 2 11:06:17 1970) System hostname? (short form, e.g. 'foo')
Le formatage de / a lieu, puis on nous demande le hostname. Cette machine sera dagon pour rester fidèle à mes
rêgles de nommage basées sur l'oeuvre de HPL
On passe à la configuration du réseau :
Configure the network? [yes] Available interfaces are: ie0 dc0. Which one do you wish to initialize? (or 'done') [ie0]
L'auto détection marche bien et l'installation trouve la carte interne.
Symbolic (host) name for ie0? [dagon] The media options for ie0 are currently media: Ethernet 10base2 Do you want to change the media options? [no] IPv4 address for ie0? (or 'none' or 'dhcp') dhcp
La carte interne répond au nom de dagon et utilise un serveur dhcp. Jusque là tout va bien :)
Issuing hostname-associated DHCP request for ie0. DHCPDISCOVER on ie0 to 255.255.255.255 port 67 interval 2 DHCPOFFER from 192.168.71.1 DHCPREQUEST on ie0 to 255.255.255.255 port 67 DHCPACK from 192.168.71.1 bound to 192.168.71.188 -- renewal in 1080000 seconds. Available interfaces are: dc0. Which one do you wish to initialize? (or 'done') [dc0]
La carte a recupéré son adresse IP sur le serveur, et l'installation nous pose les mêmes questions
pour la configuration de la carte suivante.
La configuration des cartes est finie on enchaine avec le service de noms.
No more interfaces to initialize. DNS domain name? (e.g. 'bar.com') [wlv]
Les options par défaut suivantes sont bonnes.
DNS nameserver? (IP address or 'none') [192.168.71.1] Use the nameserver now? [yes] Default IPv4 route? (IPv4 address, 'dhcp' or 'none') [dhcp] Edit hosts with ed? [no] Do you want to do any manual network configuration? [no] Password for root account? (will not echo) Password for root account? (again)
On saisit le mot de passe root. Evidement sans écho...
Sets can be located on a (m)ounted filesystem; a (c)drom, (d)isk or (t)ape device; or a (f)tp, (n)fs or (h)ttp server. Where are the install sets? (or 'done')
On arrive maitenant au moment où on choisit les sources pour l'install.
HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none] Display the list of known ftp servers? [yes]
Puisque la machine a booté sur l'iso, les packages sont disponibles en local, mais je vais les installer
depuis le mirroir ftp://ftp.ac-creteil.fr/OpenBSD/3.7/
Server? (IP address, hostname, list#, 'done' or '?') [ftp.ac-creteil.fr] Does the server support passive mode ftp? [yes] Server directory? [OpenBSD/3.7/hppa]
Amusant... l'installer me demande de valider ce que viens de saisir en me le proposant en choix
par défaut. Je revalide donc l'URL du ftp, et j'obtiens la liste des packages à l'écran. On va enlever à
coup de - les packages inutiles.
La FAQ OpenBSD nous rapelle à quoi servent les différents packages. L'extrait intéressant
est présent en annexe de ce document.
Les packages etc37.tgz et xetc37.tgz ne sont pas installés lors d'une mise à niveau mais uniquement
lors d'une installation complète, de ce fait, toute configuration que vous ferez sera conservée.
Vous devrez mettre à jour vos dossiers /etc, /dev et /var manuellement. [X] bsd [X] bsd.rd [X] base37.tgz [X] etc37.tgz [X] misc37.tgz [X] comp37.tgz [X] man37.tgz [X] game37.tgz [X] xbase37.tgz [ ] xetc37.tgz [ ] xshare37.tgz [ ] xfont37.tgz [ ] xserv37.tgz File name? (or 'done') [xbase37.tgz] - [X] bsd [X] bsd.rd [X] base37.tgz [X] etc37.tgz [X] misc37.tgz [X] comp37.tgz [X] man37.tgz [X] game37.tgz [ ] xbase37.tgz [ ] xetc37.tgz [ ] xshare37.tgz [ ] xfont37.tgz [ ] xserv37.tgz File name? (or 'done') [xbase37.tgz] -game37.tgz [X] bsd [X] bsd.rd [X] base37.tgz [X] etc37.tgz [X] misc37.tgz [X] comp37.tgz [X] man37.tgz [ ] game37.tgz [ ] xbase37.tgz [ ] xetc37.tgz [ ] xshare37.tgz [ ] xfont37.tgz [ ] xserv37.tgz File name? (or 'done') [xbase37.tgz] done
On remarque que xbase a bien disparu. Cela tombe bien on ne veut pas de X sur la machine.
Il reste à enlever game, et on peut garder le reste. La série de retrait se termine par un done. Ensuite
il ne reste plus qu'à regarder défiler les packages.
File name? (or 'done') [game37.tgz] done Ready to install sets? [yes] Getting bsd ... 55% |*************************** | 1871 KB 00:07 ETA Ready to install sets? [yes] Getting bsd ... 100% |**************************************************| 3396 KB 00:16 Getting bsd.rd ... 100% |**************************************************| 4640 KB 00:23 Getting base37.tgz ... 100% |**************************************************| 39570 KB 03:29 Getting etc37.tgz ... 100% |**************************************************| 1636 KB 00:09 Getting misc37.tgz ... 100% |**************************************************| 2222 KB 00:11 Getting comp37.tgz ... 100% |**************************************************| 24706 KB 02:28 Getting man37.tgz ... 100% |**************************************************| 7200 KB 00:38 Sets can be located on a (m)ounted filesystem; a (c)drom, (d)isk or (t)ape device; or a (f)tp, (n)fs or (h)ttp server. Where are the install sets? (or 'done')
et voila après un peu de patience c'est fini, on valide par done car on ne veut pas d'autres sets
Start sshd(8) by default? [yes]
L'idée semble plutot bonne
Start ntpd(8) by default? [no]
Cela me parait bien aussi, on verra plus tard pour le configurer
Saving configuration files...done. Generating initial host.random file...done. What timezone are you in? ('?' for list) [Canada/Mountain] ? Africa/ Chile/ GB-Eire Israel NZ-CHAT Turkey America/ Cuba GMT Jamaica Navajo UCT Antarctica/ EET GMT+0 Japan PRC US/ Arctic/ EST GMT-0 Kwajalein PST8PDT UTC Asia/ EST5EDT GMT0 Libya Pacific/ Universal Atlantic/ Egypt Greenwich MET Poland W-SU Australia/ Eire HST MST Portugal WET Brazil/ Etc/ Hongkong MST7MDT ROC Zulu CET Europe/ Iceland Mexico/ ROK posix/ CST6CDT Factory Indian/ Mideast/ Singapore posixrules Canada/ GB Iran NZ SystemV/ right/ What timezone are you in? ('?' for list) [Canada/Mountain] Europe/Paris Setting local timezone to 'Europe/Paris'...done.
On r&eagrave;gle le timezone de la machine. La commande suivante mouline pas mal. Il faut dire que ce n'est pas une
êête de course cette machine.
Making all device nodes... Making all device nodes...done. Installing boot block...disklabel: warning, boot overlaps partition c, marked as FS_BOOT done. nbsp; CONGRATULATIONS! Your OpenBSD install has been successfully completed! To boot the new system, enter halt at the command prompt. Once the system has halted, reset the machine and boot from the disk.
Voila c'est fini... c'est quand même plutôt simple :) Il ne reste plus qu'à tester cela
# halt syncing disks... done System halted!
On repart pour un tour !
bound to 192.168.71.188 -- renewal in 1080000 seconds. starting system logger starting rpc daemons: ntpdset local clock to Wed Oct 12 21:22:35 CEST 2005 (offset 1123918626.780452s) . savecore: no core dump checking quotas: done. building ps databases: kvm dev. clearing /tmp starting pre-securelevel daemons:. setting kernel security level: kern.securelevel: 0 -> 1 creating runtime link editor directory cache. preserving editor files ssh-keygen: generating new DSA host key... done. ssh-keygen: generating new RSA host key... done. ssh-keygen: generating new RSA1 host key... done. openssl: generating new isakmpd RSA key... done. starting network daemons: sendmail inetd sshd. starting local daemons:. standard daemons: cron. Wed Oct 12 21:23:59 CEST 2005 OpenBSD/hppa (dagon.wlv) (console) login:
Je passe sur la création des user c'est de l'unix tout ce qui de plus standard. Intéressons nous maintenant au but premier de la machine, à savoir compiler et compiler samba plus precisement. La doc est ici.
Il est nécessaire d'installer rsync pour faire les tests. J'en profite pour ajouter bash au passage.
dagon# pkg_add ftp://ftp.ac-creteil.fr/OpenBSD/3.7/packages/hppa/bash-3.0.16p0-static.tgz
bash-3.0.16p0-static: complete
dagin# pkg_add -v ftp://ftp.ac-creteil.fr/OpenBSD/3.7/packages/hppa/rsync-2.6.3.tgz
rsync-2.6.3: complete
C'est installé, on lance la commande de test issue de la doc Samba
bash-3.00$ rsync build.samba.org::
Welcome to the samba.org anonymous rsync archives.
Contact tpot@samba.org if you have problems with this service.
------
ftp whole ftp area (approx 2 GB)
sambaftp Samba ftp area (approx 500Mb)
sambaftp-mirror Samba ftp area including Binary_Packages (approx 1.4 GB)
rsyncftp rsync ftp area
sambawww Samba WWW pages (approx 100 MB)
distccwww distcc WWW pages
cvs CVS repository
tivo
gnokii gnokii ftp area
C'est bon, il n'y a plus qu'à créer le compte utilisateur build comme indiqué dans la doc samba et recopier le fichier suivant comme indiqué.
La dernière étape est d'écrire au responsable de la ferme de compilation pour lui demander de pouvoir rejoindre sa ferme et d'obtenir le mot de passe qui va bien.
C'est depuis chose faite, la machine tourne maintenant depuis plusieurs semaines, et remonte régulièrement ses résultats de compilation. Vous pouvez suivre son activité ici.
Depuis l'installation de cette machine une nouvelle version d'OpenBSD est sortie, la 3.8. La procédure d'installation est identique. Je n'ai volontairement pas mis à jour ce document, qui reflète l'installation d'une machine précise. Machine qui n'a d'ailleurs pas été mise à jour non plus.
Certains d'entre vous auront peut-être suivi dans les forums de SunWizard une discussion sur des problèmes de gel lors de l'installation de cette machine.
En effet, lors de ma première tentative d'installation j'ai voulu installé la machine non pas au travers d'une liaison série, mais avec un écran et un clavier. A chaque démarrage la machine était bloquée au niveau de la première question demandant de choisir entre l'installation et l'upgrade :
lpt0 at gsc0 offset 2000 irq 7
dino0 at phantomas0 offset ff80000 irq 25: Dino V2.1
pci0 at dino0
vdc0 at pci0 dev 2 function 0 "DEC 21142/3" rev 0x21: irq 3, address 00:60:b0:7a:4a:df
nsphy0 at dc0 phy 1: DP83840 10/100 PHY, rev. 1
biomask 0x23 netmask 0x27 ttymask 0x3f
boot path: 8/16/5.6 class=1 flags=0 hpa=0xffd06000 spa=0x0 io=0xc000
rd0: fixed, 5120 blocks
hil0: no devices
rootdev=0x300 rrootdev=0x900 rawdev=0x902
WARNING: clock lost 12802 days -- CHECK AND RESET THE DATE!
erase ^?, werase ^W, kill ^U, intr ^C, status ^T
(I)nstall, (U)pgrade or (S)hell?
Le clavier ne répondait plus... par contre le bouton reset déclanchait bien le sync des disques. La machine n'était donc pas gelée.
Le problème semble venir de l'installer d'OpenBSD. Ce cas à été reproduit sur deux machines différentes avec les versions 3.6, 3.7, et snapshot (trois semaines avant la sortie de la 3.8).
Le problème a été remontée sur une liste OpenBSD. Mais je n'ai jamais eu de suite... visiblement les HPPA sous OpenBSD ne sont pas légion :)
Le paragraphe suivant de la faq nous rapelle à quoi servent les différents packages :
4.6 - Quels sont les fichiers nécessaires à l'installation ?
L'installation complète d'OpenBSD est divisée en plusieurs packages de fichiers séparés. Toutes les utilisations ne requièrent pas tous les packages. Voici une vue d'ensemble de chacun :
* bsd - Ceci est le noyau. Requis
* bsd.mp - Noyau pour les systèmes multi-processeurs (SMP) (seulement disponible pour quelques plateformes, uniquement -current)
* bsd.rd - Kernel de disque RAM
* base37.tgz - Contient le système de base OpenBSD Requis
* etc37.tgz - Contient tous les fichiers de /etc Requis
* comp37.tgz - Contient le compilateur et ses outils, en-êêtes et librairies Recommandé
* man37.tgz - Contient les pages de manuels Recommandé
* misc37.tgz - Contient différentes informations et documentations de configuration
* game37.tgz - Contient les jeux pour OpenBSD
* xbase37.tgz - Contient l'installation de base pour X11
* xetc37.tgz - Contient les fichiers de configuration /etc/X11 et /etc/fonts (uniquement -current)
* xfont37.tgz - Contient le serveur de fontes X11 et les fontes
* xserv37.tgz - Contient les serveurs X de X11
* xshare37.tgz - Contient les pages de manuels, les options de localisations, les inclusions, etc. pour X