OpenBSD kasutamine Sparc64 platvormil
Sisukord
Sissejuhatus
Üks populaarne platvorm, kus OpenBSD tarkvara töötab on 32 ja 64 bit Sun Sparc riistvara, nt
- Enterprise E250 - vanema põlvkonna UltraSparc II protsessoreid kasutav arvuti
- Fujitsu Siemens PRIMEPOWER450 - uuema põlvkonna SPARC64 V protsessoreid kasutav arvuti
Populaarsusest annab tunnistust nt asjaolu, et Sparc platvormile on ports kolletsioonis enam-vähem sama palju programme kui i386 ning amd64 jaoks. Kusjuures, enne OpenBSD loomist töötas Theo de Raadt muu hulgas NetBSD meeskonnas Sparc arhitektuuriga.
Käesolev tekst on koostatud Fujitsu Siemens PRIMEPOWER450 arvuti kasutamise näitel, aga põhimõtteliselt toimub protseduur sarnaselt ka teistel Sparc arvutitel. Töötav Sparc64 arvuti ütleb enda arhitektuuri kohta nii
# uname -a OpenBSD fuji.avalik 4.5 GENERIC.MP#634 sparc64
Alates versioonist 4.3 (1. mai 2008) on sparc arhitektuuril olemas mitme protsessori tugi.
Eesmärk
Käesolev teksti eesmärgiks on
- paigaldada ilma lokaalset füüsilist konsooli (monitori ja klaviatuuri) kasutamata võrgust dual-boot Solaris/OpenBSD arvutile OpenBSD operatsioonisüsteemi osa
- tutvustada kuidas sellist arvutit kasutada, eriti OpenBSD osa
Eeldame, et alguspunktiks on arvuti ühel kõvakettal töötav Solaris operatsioonisüsteem juba olemas. Kuigi OpenBSD seisukohast ei ole Solarise oluline, võib olla tarvis nt sõltuvalt riistavaralise XSCF kaughaldusliidese seadistuste olekust tarvis seal teha muudatusi ning seda on tõenäoliselt kõige otsekohesem sooritada Solarisest.
Riistvara ettevalmistamine
Eeldame, et Fujitsu Siemens PRIMEPOWER450 arvutil on olemas
- XSCF kaughaldusliides - mis muu hulgas võimaldab lülitada arvuti toidet sisse ja välja veebipõhise liidese kaudu ning üle etherneti pöörduda nt telneti või ssh abil arvuti konsooli poole (sh firmware prompti)
- ühele kõvakettale on paigaldatud Solaris operatsioonisüsteem ning riistvarale spetsiifilised nn madmin utiliidid XSCF seadistamisks
- vähemalt kaks füüsilist kõvaketast
- vähemalt üks operatsioonisüsteemi jaoks kasutada olev etherneti võrgukaart
Kui XSCF kaudu ei ole võimalik nt telnet abil arvuti konsoolile jõuda peaks esmalt kasutama teksti Fujitsu Siemens PRIMEPOWER450 ja sellise võimaluse tekitama. Vastasel korral ei ole võimalik arvutit
Kasutaja jaoks silmnähtavat erinevust pole, millisel platvormil OpenBSD töötab, aga süsteemi administreerimise seisukohtast on see loomulikult oluline. Sparc platvorm kasutamisega kaasnevad mõned iseloomulikud asjaolud, nt operatsioonisüsteemi alglaadimine, serial konsooli abil saab kontrollida arvuti tegevust juba enne bootloaderi laadimist ning utiliidiga eeprom saab kontrollida nn EEPROM või OpenPROM sisu.
Operatsioonisüsteemi paigaldamine
Kuna Sparc arvutitel reeglina puudub videokaart, pehmeketta seade ning CD seade, siis on kõige otsekohesem operatsioonisüsteemi paigaldamiseks alustada tegevust arvuti konsoolilt (nt üle XSCF kaughaldusliidese telnetiga) nn OpenPROMi firmware promptist
{0} ok
Töötavast Solarisest saab sinna öeldes
# shutdown -y -g 0 -i 0
Üldiselt toimub operatsioonisüsteemi paigaldamine sellise järgnevusena
- arvuti lahendab rpard abil endale võrgust oma mac aadressi järgi ip aadressi
- kopeerib võrgust TFTP serverilt bootloaderi
- saab võrgust rpc.bootparamd serverilt teada bsd.rd installerit sisaldava tuuma asukoha (millisel NFS serveril ja kus seal serveri failisüsteemis)
- arvuti algaaditakse ja kävitub installer
- jätkub tavaline operatsioonisüsteemi paigaldamise protseduur, kus kasutatakse failikomplektide võrgust kopeerimist
- paigaldamise lõpul süsteem alglaaditakse ja saab hakata arvutit tavapäraselt kasutama
Esmalt on vajalik teha kindlaks etherneti võrguseadme MAC aadress, selleks võib nt öelda korra 'boot net' (või 'boot net1' jne, tasub uurida kaabeldust ja '{0} ok devalias' käsu väljundit)
{0} ok boot net Resetting ... Fujitsu Siemens PRIMEPOWER450 4x SPARC64 V, Keyboard Present OpenBoot 3.17.1-1, 16384 MB memory installed Ethernet address 0:e0:00:c4:e1:36, Host ID: 80f3e136.
Järgnevalt tuleb ettevalmistada rarpd, tftpd, rpc.bootparamd ning nfs serverid, sarnaselt diskless OpenBSD kasutamisjuhule. rarpd jaoks tuleb faili /etc/ethers kirjutada seos mac aadressi ja paigaldatava arvuti nime vahel
0:e0:00:c4:e1:36 fuji
Lisaks peab olema /etc/hosts failis sissekanne
192.168.10.211 fuji
Selleks, et paigaldatav arvuti saaks võrgust bootida, tuleb tftp serverisse paigutada sobiv bootloader. Sparc puhul on selleks fail ofwboot.net, mida aga küsitakse tftp serverilt oma ip aadressist tuletatud nimega. Selle nime saab tuletada ip aadressist käsuga
# echo 192.168.10.211 | awk -F . '{ printf "%02X%02X%02X%02X\n", $1, $2, $3 ,$4 }' C0A80AD3
kusjuures, mõnel juhul tuleb lisada sellele nimele veel järele nö laiendiks arhitektuuri nimi, nt C0A80AD3.SUN4
Alternatiiviks on bootloaderi nime kuulata võrgust peale käsu 'boot net' andmist, antud juhul on näha, et see on tõepoolest C0A80AD3
# tcpdump -nttti em0 host 192.168.10.211 ... May 01 17:39:35.726458 192.168.10.211.41641 > 255.255.255.255.69: 17 RRQ "C0A80AD3" May 01 17:39:35.743151 192.168.10.210.33400 > 192.168.10.211.41641: udp 19 May 01 17:39:35.752772 192.168.10.210.40320 > 192.168.10.211.41641: udp 19 May 01 17:39:35.759240 192.168.10.210.25963 > 192.168.10.211.41641: udp 19 May 01 17:39:35.764098 192.168.10.210.5770 > 192.168.10.211.41641: udp 19
Kui bootloader õnnestub võrgust leida, siis annab sellest tunnistust selline väljund serial konsoolil
Rebooting with command: boot net Boot device: /pci@1f,4000/network@1,1 File and args: Timeout waiting for ARP/RARP packet 10600 >> OpenBSD BOOT 1.2 Trying bsd...
Järgnevalt asub bootloader kopeerima nfs serverist tuuma, mille asukoha ta teeb kindlaks bootparams protokolli abil, selleks peab serveris olema sobivalt käima seadistatud rpc.bootparamd server, rpc.bootparamd jaoks tuleb kirjutada faili /etc/bootparams rida
fuji root=192.168.10.210:/data/nfs-toostus/root
kus on näidatud, et 192.168.10.210 on nfs serveri aadress ning /data/nfs-toostus/root on kliendi juurkataloog, kust otsib paigaldatav arvuti bsd.rd tuuma. Serveri kataloogi /data/nfs-toostus/root peab Sparc64 installatsioonimaterjali kataloogist olema kopeeritud fail bsd.rd ning tehtud link bsd
server:/data/nfs-toostus# find root -ls 2703751 4 drwxr-xr-x 2 root wheel 512 May 1 16:42 root 2703752 3904 -rw-r--r-- 1 root wheel 1970275 May 1 16:42 root/bsd.rd 2703753 0 lrwxr-xr-x 1 root wheel 6 May 1 16:42 root/bsd -> bsd.rd
ning failis nfs serveri seadistusfailis /etc/exports peab olema rida
/data/nfs-toostus/root -maproot=root -alldirs toostus 192.168.10.211
Kui kirjeldatud tingimused on täidetud, siis bootitakse bsd.rd tuumaga arvuti üles OpenBSD installerisse, tulemuseks on mälukettalt iseseisvalt töötav arvuti, millel ei ole enam sidet tftp, nfs ega muude alglaadimist abistanud teenustega võrgust
Using BOOTPARAMS protocol: ip address: 192.168.10.211, hostname: toostus root addr=192.168.10.210 path=/data/nfs-toostus/root Booting /pci@1f,4000/network@1,1/bsd 2590536@0x1000000+3236576@0x1800000+957728@0x1b162e0 symbols @ 0xfff561c0 36 start=0x1000000 prom_get_msgbuf: Cannot recover msgbuf on E250/450 prom_get_msgbuf: allocated new buf at 00000000 prom_get_msgbuf: claiming new buf at 00000000 console is /pci@1f,4000/ebus@1/se@14,400000:a Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. Copyright (c) 1995-2008 OpenBSD. All rights reserved. http://www.OpenBSD.org OpenBSD 4.3 (RAMDISK) #248: Wed Mar 12 11:57:24 MDT 2008 deraadt@sparc64.openbsd.org:/usr/src/sys/arch/sparc64/compile/RAMDISK real mem = 1879048192 (1792MB) avail mem = 1809752064 (1725MB) ... bootpath: /pci@1f,4000/network@1,1 root on rd0a swap on rd0b dump on rd0b erase ^?, werase ^W, kill ^U, intr ^C, status ^T (I)nstall, (U)pgrade or (S)hell?
Edasi järgneb OpenBSD paigaldus suhteliselt tavapärasel moel.
Operatsioonisüsteemi kasutamine
Pakettide paigaldamisel tuleb tarkvara kopeerida sparc64 arhitektuurile, nt
export PKG_PATH=ftp://ftp.aso.ee/pub/OpenBSD/4.5/packages/sparc64/
OpenBSD promptist halt ütlemisel jõuab arvuti nn {0} ok prompti.
Sparc64 riistvara kirjeldus
Erinevalt i386 ja amd64 arhitektuurist ei ole sparc64 all probleeme kümnete GB mälu kasutuselevõtmisega.
Platvormi üldised omadused
# sysctl hw hw.machine=sparc64 hw.model=FJSV,SPARC64-V (rev 5.0) @ 1869 MHz hw.ncpu=4 hw.byteorder=4321 hw.pagesize=8192 hw.disknames=sd0,sd1,sd2,sd3,cd0 hw.diskcount=5 hw.cpuspeed=1869 hw.vendor=Fujitsu hw.product=FJSV,GPUZC-M hw.physmem=17179869184 hw.usermem=17179852800
Kettaseadmed
# bioctl sd2 sd2: <FUJITSU, MAP3147NC, 3701>, serial UP58PxxxxD4K
OpenBSD
mpi0 at pci0 dev 2 function 1 "Symbios Logic 53c1030" rev 0x07: ivec 0xe0 scsibus0 at mpi0: 16 targets, initiator 7 sd0 at scsibus0 targ 0 lun 0: <FUJITSU, MAP3147NC, 3701> SCSI3 0/direct fixed sd0: 140201MB, 512 bytes/sec, 287132440 sec total sd1 at scsibus0 targ 1 lun 0: <FUJITSU, MAW3147NC, 3701> SCSI3 0/direct fixed sd1: 140201MB, 512 bytes/sec, 287132440 sec total mpi0: target 0 Sync at 160MHz width 16bit offset 127 QAS 1 DT 1 IU 1 mpi0: target 1 Sync at 160MHz width 16bit offset 127 QAS 1 DT 1 IU 1 mpi1 at pci0 dev 2 function 0 "Symbios Logic 53c1030" rev 0x07: ivec 0xe6 scsibus1 at mpi1: 16 targets, initiator 7 sd2 at scsibus1 targ 0 lun 0: <FUJITSU, MAP3147NC, 3701> SCSI3 0/direct fixed sd2: 140201MB, 512 bytes/sec, 287132440 sec total sd3 at scsibus1 targ 1 lun 0: <FUJITSU, MAW3147NC, 3701> SCSI3 0/direct fixed sd3: 140201MB, 512 bytes/sec, 287132440 sec total mpi1: target 0 Sync at 160MHz width 16bit offset 127 QAS 1 DT 1 IU 1 mpi1: target 1 Sync at 160MHz width 16bit offset 127 QAS 1 DT 1 IU 1
Solaris
AVAILABLE DISK SELECTIONS: 0. c0t0d0 <FUJITSU-MAP3147NC-3701 cyl 38343 alt 2 hd 8 sec 936> /pci@83,4000/FJSV,ulsa@2,1/sd@0,0 1. c0t1d0 <FUJITSU-MAW3147NC-3701 cyl 38343 alt 2 hd 8 sec 936> /pci@83,4000/FJSV,ulsa@2,1/sd@1,0 2. c1t0d0 <FUJITSU-MAP3147NC-3701 cyl 38343 alt 2 hd 8 sec 936> /pci@83,4000/FJSV,ulsa@2/sd@0,0 3. c1t1d0 <FUJITSU-MAW3147NC-3701 cyl 38343 alt 2 hd 8 sec 936> /pci@83,4000/FJSV,ulsa@2/sd@1,0
Erinevate operatsioonisüsteemide all paistvate plokkseadmete kokkuviimiseks sobib kontrollida nt seadme 512 baidi kontrollsummasid
solaris # digest -a md5 /tmp/c0t0d0s2.512 47f32ec024a01981a7d4405c1d3627f2 solaris # digest -a md5 /tmp/c0t1d0s2.512 12d28b4bca3a772fae60a4a544ec0ead solaris # digest -a md5 /tmp/c1t0d0s2.512 47f32ec024a01981a7d4405c1d3627f2 solaris # digest -a md5 /tmp/c1t1d0s2.512 66b8eff20063ca735d6d83b5cc21535e
OpenPROMiga arvutilt saab küsida seadmepuud, sarnaselt kui Solaris operatsioonisüsteemi puhul on see võimalik
# eeprom -p
Solaris/OpenBSD dual-boot
Erinevalt i386 ja amd64 platvormist ei leia Sparc platvormil kasutust GRUB alglaadur, millega erinevaid arvutisse paigaldatud operatsioonisüsteeme käivitada. Üheks võimalusest seda teha on öelda nn firmware promptis, milliselt kõvakettaseadmelt alglaadida süsteem, nt
{0} boot disk1
Kõige seadmete nimekirja näeb küsides
{0} devalias