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 kollektsioonis enam-vähem sama palju tarkvara kui i386 või amd64 jaoks. Kusjuures, enne OpenBSD loomist töötas OpenBSD projekti eestvedaja 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.
Üks oluline erinevus i386 või amd64 ja sparc platvormi kasutamisel on, et olles süsteemiga üle konsooli ühenduses (nt tavaline serial konsool, XSCF haldusliidese vahendusel), saab arvuti tegevust kontrollida juba enne bootloaderi käivitamist nn firmware promptist ehk OpenPROM'ist, mis näeb välja selline
{0} ok
Nt saab firmware promptis öelda, milliselt võrgukaardilt või kõvakettalt süsteem alglaaditakse.
Eesmärk
Käesoleva 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 sellise arvuti OpenBSD osa kasutada
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)
- vähemalt kaks füüsilist kõvaketast, kusjuures ühele ja on teada millisele kõvakettale on paigaldatud Solaris operatsioonisüsteem ning riistvarale spetsiifilised nn madmin utiliidid XSCF seadistamisks
- vähemalt üks operatsioonisüsteemi jaoks kasutada olev etherneti võrgukaart ning on teada selle MAC aadress
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 arvutisse operatsioonisüsteemi üle võrgu paigaldada.
Operatsioonisüsteemi paigalduskeskkonna ettevalmistamine
Üldiselt toimub operatsioonisüsteemi paigaldamine sellise järgnevusena
- arvuti lahendab rarpd 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)
- kopeeritakse nfs serverilt installerit sisaldav tuum, 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
Niisiis, seoses võrgust paigaldamise eripäradega tuleb ettevalmistada viie teenuse kasutamise võimalused, mis vastavad eelmises punktis esitatud tegevuste järgnevusele
- rarpd server - arvuti saab teada oma ip aadressi
- tftpd server - kopeeritakse bootloader ofwboot.net
- rpc.bootparamd server - arvuti saab teada nfs serveri andmed
- nfsd server - kopeeritakse installerit sisaldav tuum bsd.rd
- ftpd server - kopeeritakse operatsioonisüsteemi tarkvara failikomplektide kujul (ingl. k. install sets)
rarpd serveri ettevalmistamine
rarpd ülesandeks kuulata võrgus broadcast aadressile saadetud RARP protokolli pakette ning vastata oma /etc/ethers failis asuva andmebaasi alusel mac aadressile vastava ip aadressiga. Kuna rarpd töötab suheliselt madalas kihis, siis ei kuula ta konkreetsel tcp ega udp pordil.
rarpd seadistusfailis /etc/ethers peab sisalduma paigaldatava arvuti MAC aadressi ja nime vaheline seos
# cat /etc/ethers 0:e0:0:c4:e1:36 fuji
ning failis /etc/hosts selle nime ja ip aadressi vaheline seos
# cat /etc/hosts ... 10.0.6.170 fuji
rarpd käivitamiseks sobib öelda
# rarpd -d em0
kus
- -d - deemon jääb tööle esiplaanis
- em0 - deemon kuulab pöördumisi seadmel em0
tftpd serveri ettevalmistamine
TFTP serveri ülesandeks on võimaldada kliendil lihtsa protokolli abil kopeerida andmeid üle võrgu, kusjuures autentimist ei toimu. TFTP server asub ise pordil 69/udp, kuid andmevahetuse pidamiseks lepivad osalised kokku ja kasutavad mingit muud juhuslikult valitud vaba porti tftp serveris üle udp andmevahetuseks.
TFTP serveri juurkataloog asub tavaliselt kataloogis /tftpboot, sinna tuleb antud juhul kopeerida bootloader ofwboot.net
# mkdir /tftpboot # cd /tftpboot # ftp http://ftp.aso.ee/pub/OpenBSD/4.5/sparc64/ofwboot.net
Bootloaderit aga küsib paigaldatav arvuti tftp serverilt oma ip aadressist tuletatud nime järgi. Selle nime saab tuletada ip aadressist nt käsuga
# echo 10.0.6.170 | awk -F . '{ printf "%02X%02X%02X%02X\n", $1, $2, $3 ,$4}' 0A0006AA
kusjuures, mõnel juhul tuleb lisada sellele nimele veel järele nö laiendiks arhitektuuri nimi, nt 0A0006AA.SUN4
Alternatiiviks on bootloaderi nime kuulata võrgust peale käsu 'boot net1' andmist, antud juhul on näha, et see on tõepoolest 0A0006AA
# tcpdump -nttti em0 host 10.0.6.170 ... 000081 00:e0:00:c4:e1:36 > 00:04:23:09:14:30, ethertype IPv4 (0x0800), \ length 60: 10.0.6.170.39011 > 10.0.6.1.69: 17 RRQ "0A0006AA" octet
ning TFTP saab seadistada käima nt Inet superserverist, eemaldades kommentaari faili /etc/inetd.conf sellise rea eest
tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpboot
ning käivitada inetd öeldes
# inetd
rpc.bootparamd serveri ettevalmistamine
rpc.bootparamd ülesandeks on küsijale vastata tema bootimist puudutavate andmetega, teenus tundub töötavat juhuslikul udp pordil, mille suudab klient kindlaks teha ja seda seejärel andmevahetuseks kasutada.
rpc.bootparamd seadistusfailis /etc/bootparams peab sisalduma nt selline rida
fuji root=10.0.6.1:/var/nfs/root
kus
- fuji - arvuti nimi, mille kohta järgnevad sissekanded käivad
- 10.0.6.1 - nfs serveri aadress
- /var/nfs/root - kataloog, kus asub installeriga tuum bsd.rd
rpc.bootparamd käivitamiseks tuleb öelda, -d jätab serveri tööle esiplaanil
# rpc.bootparamd -d
nfsd serveri ettevalmistamine
NFS serveri tööd juhib seadistusfail /etc/exports, mille sisu võiks olla nt selline
# cat /etc/exports /var/nfs/root -maproot=root -alldirs fuji
kus
- /var/nfs/root - milline kataloog välja jagatakse
- fuji - millisele arvutile on kõnealune kataloog kasutada
Esmalt tuleb moodustada kataloog /var/nfs/root ning seejärel kopeerida sinna bsd.rd tuum ning moodustada link nimega bsd
# mkdir /var/nfs/root # ftp http://ftp.aso.ee/pub/OpenBSD/4.5/sparc64/bsd.rd # cd /var/nfs/root # ln -s bsd.rd bsd
Käivitamiseks sobib öelda
# /usr/sbin/portmap # echo -n >/var/db/mountdtab # /sbin/mountd # /sbin/nfsd -tun 4
Selleks, et NFS server käivituks arvuti alglaadimise käigus tuleb kasutada /etc/rc.conf.local failis direktiive
portmap=YES nfs_server=YES
ftpd serveri ettevalmistamine
Sobib ka ise ettevalmistada lokaalne ftp server või kui paigaldamise ajal on kasutada rahuldava kiirusega võrguühendus, siis kasutada mõnda avalikku OpenBSD tarkvara peeglit. Paigaldamise etapis küll reeglina kõneldakse ftp serverist, kuid tehniliselt st installeri seisukohalt võib see samahästi olla ka http server.
Operatsioonisüsteemi paigaldamine võrgust
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
kus
- -y - vastata küsimustele automaatselt jaatavalt
- -g 0 - shutdown protseduuriga alustatakse kohe
- -i 0 - arvuti viiakse nn firmware prompti
Seejärel tuleb arvuti bootida võrgust üle selle võrgukaardi, millest on ligipääsetavad ettevalmistatud rarpd, tftpd, rpc.bootparamd ja nfsd teenused, nt
{0} ok boot net1 Resetting ... Sep 20 13:52:31 EEST 2009 XSCF:I::[02030100] Start reset sequence Sep 20 13:52:32 EEST 2009 XSCF:I::[02030200] Reset released... Sep 20 10:52:35 GMT 2009 PowerOn SelfTest start POST:Testing Flash/SRAM POST:Testing SC POST:Testing XSCF POST:Banner POST:FATAL check POST:Testing Timer1 POST:Testing Tick POST:Testing MMU POST:Testing CPU Type POST:Testing DTAG POST:Memory Probe POST:Testing Memory POST:Testing Softint POST:Testing U2P POST:Testing Slave Device POST:Testing Master Device POST:System Configure POST:OBP Start Fujitsu Siemens PRIMEPOWER450 4x SPARC64 V, Keyboard Present OpenBoot 3.17.1-1, 16384 MB memory installed Ethernet address 0:e0:0:c4:e1:36, Host ID: 80f3e136. XSCF Version: 4.8.1
Esmalt teeb arvuti kindlaks RARP protokolli kasutades oma ip aadressi, võrgus toimub selline liiklus
510694 00:e0:00:c4:e1:36 > ff:ff:ff:ff:ff:ff, ethertype Reverse ARP (0x8035), \ length 60: rarp who-is 00:e0:00:c4:e1:36 tell 00:e0:00:c4:e1:36 000144 00:04:23:09:14:30 > 00:e0:00:c4:e1:36, ethertype Reverse ARP (0x8035), \ length 42: rarp reply 00:e0:00:c4:e1:36 at 10.0.6.170
kust on näha, et 00:e0:00:c4:e1:36 mac aadressil asuv sparc64 esitab RARP päringu ja saab vastuseks teada, et tema ip aadress on 10.0.6.170.
Edasi, arusaamatul põhjusel teab paigaldatav arvuti seejärel, millisel aadressil asuva tftpd serveri poole pöörduda, saates paketi
000081 00:e0:00:c4:e1:36 > 00:04:23:09:14:30, ethertype IPv4 (0x0800), \ length 60: 10.0.6.170.39011 > 10.0.6.1.69: 17 RRQ "0A0006AA" octet
Kui bootloader õnnestub võrgust leida ja üle tftp ära kopeerida ning kasutada, siis annab sellest tunnistust selline väljund konsoolil
Executing last command: boot net1 Boot device: /pci@83,2000/FJSV,pwga@1 File and args: 10400 >> OpenBSD BOOT 1.3
Seejärel saab arvuti rcp.bootparamd serverilt teada millise aadressiga nfs serverilt ja millisest kataloogist sellel serveril kopeerida tuum
Trying bsd... Using BOOTPARAMS protocol: ip address: 10.0.6.170, hostname: fuji root addr=10.0.6.1 path=/var/nfs/root
Kui tuuma kopeerimine õnnestub, siis alglaaditakse bsd.rd tuumaga arvuti ja käivitub OpenBSD installer
Booting /pci@83,2000/FJSV,pwga@1/bsd 3313048@0x1000000+4712@0x1328d98+3252440@0x1800000+941864@0x1b1a0d8 symbols @ 0xfea98240 65 start=0x1000000 console is /pci@83,4000/isa@7/su@0,3f8 Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. Copyright (c) 1995-2009 OpenBSD. All rights reserved. http://www.OpenBSD.org OpenBSD 4.5 (RAMDISK) #564: Sat Feb 28 18:22:09 MST 2009 deraadt@sparc64.openbsd.org:/usr/src/sys/arch/sparc64/compile/RAMDISK real mem = 17179869184 (16384MB) avail mem = 16817946624 (16038MB) mainbus0 at root: Fujitsu Siemens PRIMEPOWER450 4x SPARC64 V cpu0 at mainbus0: FJSV,SPARC64-V (rev 5.0) @ 1869 MHz cpu0: physical 128K instruction (64 b/l), 128K data (64 b/l), 3072K external (64 b/l) .. bootpath: /pci@83,2000/FJSV,pwga@1,0 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?
Tulemuseks on mälukettalt rd0a iseseisvalt töötav arvuti, millel ei ole enam sidet tftp, nfs ega muude alglaadimist abistanud teenustega võrgust, edasi järgneb OpenBSD paigaldus suhteliselt tavapärasel moel; ainult tuleb jälgida, et kuna on tegemist dual-boot keskkonnaga, siis OpenBSD failisüsteemid moodustada sobivale kõvakettale.
Kui mingil põhjusel on tarvis installerit katkestada, siis saab seda teha valides Ctrl-C ning seejärel prmoptist öeldes
# install
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 firmware prompti
# halt ... {0} ok
ja konsoolilt saab firmware promptis seejärel edasi toimetada, nt operatsioonisüsteemi uuesti alglaadida.
Sparc64 riistvara kirjeldus
Top pilt illustreerib, et süsteemi protsessorid on bsd.mp tuumaga kasutusele võetud ning erinevalt i386 ja amd64 arhitektuurist ei ole sparc64 all probleeme mõneteistkümne GB mälu kasutuselevõtmisega
Süsteemi /var/run/dmesg.boot asub aadressil Fail:Dmesg.boot-PRIMEPOWER450-4.5.log.
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
Võrguseadmed
Reeglina on Sparc arvutitel vähemalt üks hme (Sun Happy Meal 10/100 Ethernet device) võrguseade
# ifconfig hme hme0: flags=8822<BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:e0:00:c4:e1:36 priority: 0 media: Ethernet autoselect
Kettaseadmed
Konkreetse kõvaketta omadusi saab küsida OpenBSD käsurealt bioctl utiliidiga
# bioctl sd2 sd2: <FUJITSU, MAP3147NC, 3701>, serial UP58PxxxxD4K
Üldiselt on huvitav võrrelda kuidas esitavad samade plokkseadmete ja vastavate kontrollerite riistavara kohta andmeid OpenBSD ja Solaris
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
OpenBSD
openbsd # dd if=/dev/sd0c of=/tmp/sd0c.512 bs=512 count=1 openbsd # md5 /tmp/sd0c.512 47f32ec024a01981a7d4405c1d3627f2
Solaris
solaris # dd if=/dev/dsk/c0t0d0s2 of=/tmp/c0t0d0s2.512 bs=512 count=1 solaris # digest -a md5 /tmp/c0t0d0s2.512 47f32ec024a01981a7d4405c1d3627f2
OpenPROM seadistamine
OpenPROMi saab OpenBSD operatsioonisüsteemi keskkonnast ümber seadistada utiliidiga eeprom. Nt saab arvutilt küsida seadmepuud, sarnaselt kui Solaris operatsioonisüsteemi puhul
# 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õimaluseks valida erinevatele kõvaketastele paigaldatud operatsioonisüsteemide vahel on käivitada firmware promptis operatsioonisüsteem sobivalt kõvakettalt (disk1, disk2, disk3 jne) öeldes nt
{0} ok boot disk2
Kõige seadmete, sh kõvaketaste nimekirja näeb küsides
{0} ok devalias
Märkused
- OpenBSD võrgust paigaldamise protseduuri esimeste sammudega kaasnevast andmevahetusest saab parema ülevaate nt salvestades kogu andmevahetuse ja seda seejärel nö offline'is uurides, nt Wireshark programmi abil.
- Kasutaja peab ise otsustama, kas peale süsteemi käivitamist on turvakaalutlustel otstarbeks nt füüsiliselt kaughaldusliidesele vastav etheneti kaabel arvutilt eemaldada või ei ole see vajalik.
- Tõenäoliselt saab edukalt kasutada XSCF haldusliidese asemel ka tavalist serial konsooli.
- Vaikimisi on kõigil sama Sparc arvuti füüsilistel võrguseadmetel üks ja sama MAC aadress.
Kasulikud lisamaterjalid
- Fujitsu Siemens PRIMEPOWER450
- Populaarsete teenuste pidamine OpenBSD abil
- Diskless OpenBSD
- http://www.openbsd.org/sparc64.html
- man diskless, man bootparams, man 5 ethers
- OpenBSD paigaldamine