Portál AbcLinuxu, 1. května 2025 04:47
Seznámení s OBP, chytrým "BIOSem" na počítačích s procesorem SPARC.
Snad každý, kdo pracuje s počítači, se setkal s pojmem BIOS. Počítače s procesory SPARC jsou trochu jiné než ty, které má většina lidí doma pod stolem. Pracuji s počítači od firmy SUN (procesory SPARC), kde se místo BIOSu používá OpenBoot. Na počítačích od firmy SUN je běžné, že je kompletně spravujete přes seriovou linku. Jakmile umístíte server do serverovny, vlastní hardware vás nezájímá, protože jste plně schopní pomocí znalosti OpenBoot a komunikace po seriové lince nainstalovat Solaris (Solaris instalujete třeba ze sítě (Ethernet), přes seriovou konzoli to ovládáte).
OBP je narozdíl od BIOSu plně konfigurovatelné a programovatelné
prostředí, ne jen statické menu, které dovolí změnu nějakého nastavení.
OpenBoot provádí základní otestování a inicializaci hardware po zapnutí
počítače, umožňuje natažení jádra z disku, CD-ROM nebo také ze sítě. Při
každém startu počítače generuje OpenBoot nový device-tree ze
kterého potom systém vychází při tvorbě adresářů /device
a
/dev
.
Rozhraní OpenBoot se k uživateli chová podobně jako velmi jednoduchý shell a nazývá se OpenBoot Prompt (OBP, někdy také OK prompt).
OpenBoot je otevřený standard definovaný IEEE (IEEE Standard 1275-1994 for Boot Firmware).
OBP má na základní desce počítače přidělené dva integrované obvody:
nvramrc
.OBP je napsaný v jazyku Forth. Forth je jazyk interpretovaný, pouze
nejnutnější příkazy jsou implementovány pomocí assembleru. OBP používá 2
zásobníky, jeden pro návratové adresy podprogramu a druhý pro data. Pokud
chcete přistupovat do konfigurace OBP z operačního systému pomocí vlastního
programu, můžete použít připravené rozhraní openprom
(man openprom
).
Verze PROM | Platforma |
---|---|
1.x (SPARC boot PROM) | SPARCstation 1, SPARCstation 1+, SPARCstation IPC a SPARCstation SLC |
2.x (První OBP) | SPARCstation 2, SPARCstation 5, SPARCstation 10 a SPARCstation 20 |
3.x (OBP s možností upgrade) | Ultra worksations (Ultra 5, Ultra 10, Ultra 30, Ultra 60, Ultra 80) a Sun Enterprise servery (Enterprise 250, Enterprise 450 a Enterprise 3x00-6x00) |
4.x (Rozšířené možnosti ladění) | Sun Fire a Sun Blade |
Pohyb kurzoru v OBP je možný pomocí kurzorových kláves, případně pomocí kombinace CTRL-písmeno:
^P
- nahoru^N
- dolů^F
- vlevo^B
- vpravo.version
- vytiskne verzi OBP.speed
- vytiskne frekvenci systémubanner
- příkaz vypíše základní identifikaci systému
(Verzi OBP, platformu, ID, MAC adresu)
ok banner Netra T1 200 (UltraSPARC-IIe 500MHz), No Keyboard OpenBoot 4.0, 256 MB memory installed, Serial #40120220. Ethernet address 0:3:ba:d:cc:dc, Host ID: 8c0cecdc.
boot
, go
- start UNIXudevalias
- definice aliasu na zařízení, aktivní pouze do
prvního vypnutínvalias
- vytvoří alias na zařízení a zapíše konfiguraci
do nvramrc
= alias je aktivní i po restartu počítače, protože
je uložen v NVRAMnvedit
- řádkový editor nvramrc
,
^C
ukončuje editaci, po ukončení editace je potřeba ukončit
editor.nvquit
- ukončí nvedit bez uloženínvstore
- uloží konfiguraci zadanou pomocí
nvedit
do nvramrc
nvunalias
- smaže nastavení z nvramrc
, ale
nezruší vlastní aliaspower-off
- vypnutí počítačeprintenv
- výpis všech proměnných v prostředíprobe-ide
- vypíše všechny IDE potvůrky...probe-scsi
- vypíše interní SCSI zařízeníprobe-scsi-all
- vypíše všechny (i externí) SCSI
zařízeníproperties
- výpis vlastností v device treereset
, reset-all
- restart počítače z
OBPsee
- výpis výkladu slova (z jakých dalších slov se
skládá, případně přímo kód v assembleru).
Příklad výkladu setenv
:
ok see setenv : setenv parse-word -1 parse (f0017038) ?dup 0= if 3drop (f0031218) exit then 2swap 2 pick over or 0= if 2drop 2drop (f0031218) exit then $setenv ;
set-default promenna
- nastaví výchozí hodnotu pro danou
proměnnouset-defaults
- nastavení výchozího nastavenísetenv
- nastavení proměnné
ok setenv Usage: setenv option-name value ok setenv boot-device disk boot-device = disk
show-devs
- vypíše device tree
ok show-devs /SUNW,UltraSPARC-IIe@0,0 /pci@1f,0 /virtual-memory /memory@0,0 /aliases /options /openprom /chosen /packages /pci@1f,0/pci@1 /pci@1f,0/pci@1,1 /pci@1f,0/pci@1/scsi@8,1 /pci@1f,0/pci@1/scsi@8 /pci@1f,0/pci@1/scsi@8,1/tape /pci@1f,0/pci@1/scsi@8,1/disk /pci@1f,0/pci@1/scsi@8/tape /pci@1f,0/pci@1/scsi@8/disk /pci@1f,0/pci@1,1/usb@5,3 /pci@1f,0/pci@1,1/network@5,1 /pci@1f,0/pci@1,1/ide@d /pci@1f,0/pci@1,1/usb@c,3 /pci@1f,0/pci@1,1/network@c,1 ...
show-disks
- ukáže adresy v device tree k
diskovým zařízením, volbou jednoho z nich se zkopíruje do
"schránky"
/pci@1f,0/pci@1,1/ide@3/dad@0,0[:f] \_________________/ | | | | | | | | | | | | | | +- slice | | +---- LUN nebo číslo disku | +------ ID +------------------------Sběrnice a řadič
show-post-results
- výpis výsledků POSTusifting
- vyhledá všechna slova (words
)
obsahující daný výrazsync
- zavolá jádro a provede sync (vyprázdní cache na
disk), použitelné po stisku zkratky STOP-A
test floppy
- test disketové mechanikytest net
- test síťového rozhranítest scsi
- test scsi rozhranítest-all
- test všech zařízení s vlastní testovací
rutinouwatch-clock
- ukazuje tikaní vteřin :-)watch-net
- sledování stavu sítěwords
- výpis všech nadefinovaných slov v prostředí
OBPauto-boot?
- automatický boot do UNIXu ze zařízení
definovaném v boot-device
po startu počítačeboot-device
- obsahuje seznam zařízení, z kterých se
zkouší boot (cdrom disk net
). Můžete vložit i vlastní alias na
zařízení, používá se například pro boot ze soft. RAIDu.boot-file
- soubor s jádrem.diag-device
- seznam zařízení, ze kterých se bootuje v
diagnostickém režimuscsi-initiator-id
- ID pro SCSI řadiče, mění se například
při propojování dvou počítačů prez SCSI. (výchozí pro řadič je 7, takže
druhému počítači mohu nastavit třeba id=6)local-mac-address
- Určuje, jestli se použijí MAC adresy z
karty (TRUE
), nebo jestli se použije jedna předdefinovaná
adresa pro všechny síťové karty v systému (předdefinovaná adresa je uložena
v NVRAM, zjistíme ji například příkazem banner
).use-nvramrc?
- Když nastavíme na hodnotu
TRUE
, tak se při startu použijí příkazy zapsané do proměnné
nvramrc
pci-probe-list
- Pořadí testu PCI sběrnice. Pokud
prohodíme čísla, tak změníme ID zařízení v systému => potřebné pokud
máme nastavení například SW RAIDu na jednom počítači nějaké a pak to
přestěhujeme na jiný počítač. Pokud nějaké číslo sběrnice vynecháme,
sběrnice se vůbec neinicializuje a operační systém ji prostě nevidí.sbus-probe-list
- to samé jako pro PCI, ale pro
sběrnici SBUSoem-banner
- Řetězec, který se objeví po zadání příkazu
banner
.oem-logo
- Obrázek, který se zobrazí jako logo. Potřebuje
rastrovou mapu velikosti 66x64 pixelů.security-mode
- Nastavení úrovně zabezpěčení OBP. Pokud
chcete zabezpečený režim použít, NEJDŘÍVE SI NASTAVTE HESLO a pak zapněte zabezpečený režim.
Možné jsou tyto hodnoty:none
- bez ochranycommand
- bez zadání hesla umožňuje pouze příkazy
go
a boot
bez parametrůfull
- bez hesla ani nenabootujesecurity-password
- Nastavení hesla pro
security-mode
- z OBP příkazem password
, z UNIXu
pomocí eeprom security-password
, standardně je prázdné. Heslo
se nedá systémově nijak vymazat, dokonce ani pomoci příkazu
set-defaults
. Jediný způsob, jak se zbavit hesla, je smazat ho
z NVRAM. A to se dá udělat asi jen odpojením napájení té paměti nebo se
musí koupit nová NVRAM.diag-switch?
- Pokud povolíme, bootuje z
diag-device
(výchozí je NET), logy z POSTu jsou vidět jen na
sériové konzoli.diag-level
- úroveň diagnostického režimuPři bootu počítače nebo obecně při problémech se systémem je někdy
potřeba skočit do OK promptu (OBP) -> zaslat signál break. Toho
se docílí stiskem kláves STOP-A
(pokud jste u terminálu nebo
přímo u grafické konzole daného počítače). V případě, že jste připojení z
jiného počítače se Solarisem přes program tip
, tak
STOP-A
nemůžete použít, protože si shodíte systém, u kterého
sedíte. Proto je dobré použít ~#
. Když se připojujete na
server pomocí SSH a pak až na další počítač přes tip
,
musíte pro poslání signálu break napsat ~~#
, protože tu první
vlnovku zpracuje SSH a zbytek předá dál. V Solarisu lze zkratku
STOP-A
zakázat v souboru /etc/default/kbd
.
OBP můžeme při bootu zaslat další signály, které nám pomohou řešit některé problémy.
STOP-D
- diagnostický režim startuSTOP-N
- Nastavení výchozích hodnot proměnných OBP. Na
počítačích s USB klávesnicí se místo toho musí použít tento fígl: Po té, co
stroj při bootu pípne, uděláme "dvojklik" na vypínacím
tlačítku (tohle uplatníme třeba na počítačích řady Blade).Pokud je v OBP nastavena proměnná auto-boot? na true,
nastartuje po zapnutí operační systém a v této kapitole by nebylo co řešit.
V případě, že počítač instalujete/přenastavujete, je dobré vypnout autoboot
(setenv auto-boot? false
) a bootovat ručně.
Vlastní boot se provádí příkazem boot
, příkaz má
následující parametry:
/etc/system
Postup startu počítače po zapnutí:
Zapnutí počítače ---------------- | +--------------+ | diag-switch? |-----true----+ +--------------+ | | +--------+ | | POST | false +--------+ | | |---------------------+ | +-------------+ +------------+ | auto-boot? |---false---| ok prompt | +-------------+ +------------+ | true | +----------------------------------------+ | boot device boot-file | | boot-command + + | | diag-device diag-file | +----------------------------------------+ | Start operačního systému
MiB je nejaka novota, zase se v bruselu (nebo nekde jinde) nudili tak nahodne neco vylosovali a to zmenili. Takhle funguje dnesni politika. Kdo chce at si pouziva co chce, ale pro me je megabyte porad MB.Jo novota. Z minuleho stoleti. Jen nekteri lide asi dlouho spali.
Ale pořád je ten MiB o něco lepší než lidé, kteří megabyte podle nálady píší jako Mb nebo mb...
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.