分类:
2007-06-07 21:12:29
OpenBoot PROM介绍
所有Sun机器都一个用于基本硬件测试和初始化的固件,还有一个提供多种重要功能的用户程序。
基本元素
Sun系统的基本硬件元素包括:
Boot PROM芯片,它永久的固定在主板中。
非易失性随机访问内存(non-volatile random access memory (NVRAM) )芯片,包含主机的基本信息。
Boot PROM内容
boot PROM有以下功能:
加电自检(Power-on self-tests (POST))
系统重起开始执行。
检测基本CPU板
因机器型号不同而不同。
设备驱动
有一些小型设备驱动程序,使得启动的初始化过程中可以与不同的外围设备相通讯
用户操作界面
NVRAM 内容
除了永久性保存以太网地址、主机ID、时钟外,还保存着可以修改的系统的配置参数。
Basic Boot PROM Commands
ok banner
ok boot
ok help
ok printenv
ok setenv
ok set-defaults
ok probe-scsi
ok probe-scsi-all
ok probe-ide
ok reset
The Open Boot banner Command
The banner command lists several pieces of useful information about the system such as model, amount of memory, and hostid. You can also use the banner command to identify your system’s PROM version number. Three boot PROM levels are discussed in this module.
ok banner
Sun UltraSPARC 60 UPA/PCI (2 X UltraSPARC-II 296MHz), Keyboard Present
OpenBoot 3.11, 256 MB memory installed, Serial #3159808.
Ethernet address 8:0:22:1a:e7:3f, Host ID: 72303700.
ok
boot 命令和参数
您可以在boot命令后键入一个或多个参数。这些参数传递给操作系统内核,将影响整个启动过程。
命令格式
ok boot [device_name] - [options]
参数
a 交互式启动系统。提示输入根设备和交换设备以及一些重要的系统文件
r 启动时系统将重新查找所有的设备,在/devices和/dev目录下重新生成文件,更新/etc/path_to_inst文件。
s 系统启动后停留在S运行级别。可以用来系统错误排除。
v 详细地显示出系统的启动信息。有时可以用来系统的错误排除。
printenv 命令
printenv命令显示NVRAM的参数以及参数的缺省值。
查看缺省启动设备
您可以使用printenv显示缺省启动设备。
ok printenv
Parameter Name Value Default Value
tpe-link-test? True true
output-device ttya screen
input-device ttya keyboard
sbus-probe-list f0123 f0123
keyboard-click? False false
diag-file
diag-device net net
boot-file
boot-device disk disk
auto-boot? true true
More [,,q] ? q
您可以在系统的输出中查看缺省启动设备,参数是boot-device。您也可以输入printenv boot-device,这样只显示启动设备的值。
重新定义PROM Boot值
使用setenv命令可以重新定义PROM的值 。下面的例子中把auto-boot? 变为 false,然后reset命令使系统重新启动,使变化生效。
ok printenv auto-boot?
auto-boot?true true
ok
ok setenv auto-boot? false
auto-boot? = false
ok reset
重置缺省值
使用set-defaults 命令将所有的参数重新设置为缺省的值。
ok set-defaults
_________________________________________________________________
注意 -set-defaults命令只对有缺省值的参数生效。
_________________________________________________________________
影响系统启动和自检的按键有:
stop
如果在系统加电自检时按下Stop键,就取消POST(加电自检)诊断,然后停留在OK状态。
Stop+d
在系统自检时同时按下stop和d键,系统将自动转到诊断模式,诊断模式下系统将更完全地进行自检。
Stop+n
如果由于NVRAM的设置不正确而导致系统无法正确启动时,可以在系统加电自检时同时按下stop和n键。它的作用是将NVRAM的参数值设为默认值。
Stop+a
同时按下stop和a键将中断操作系统的运行,退到OK状态。
警告:尽量不要在操作系统运行时按stop+a,这将导致操作系统停止并且导致数据的丢失。在万不得以的时候,在按下stop+a后,键入sync命令用以将内存的数据同步到硬盘中。
探测系统总线
将外围设备(如光驱、硬盘)与主板连接在一起的I/O总线有SCSI(small computer system interface)总线和IDE (integrated drive electronics)总线。
在OpenBoot 3.x系统中使用probe-命令
在OpenBoot 3.x的系统中,使用probe-命令时,您会看到一个警告。如果您在操作系统运行状态下,用stop-a将系统强行暂停,或使用halt退出操作系统。这样的状态下使用probe-命令会造成机器挂起。因此,您必须先运行reset-all命令。
请先设置auto-boot?为false后再运行reset-all,系统将重新自检,停留在OK状态下,然后可以运行这个命令。
显示连接在SCSI总线上的设备
9、 init 0退到OK状态
10、 键入:setenv auto-boot? false
11、 键入:reset
12、 此时系统重新启动后停留在OK状态
13、 键入:probe-scsi-all
14、 系统将列出所能查到的所有SCSI设备,看是否和实际数量一致
15、 如果不一致,说明硬盘已损坏,需要更换
probe-scsi命令将鉴别连接在SCSI控制器上的设备。
ok probe-scsi
Target 3
Unit 0 Disk SEAGATE ST1480 SUN0424626600190016
Copyright (c)
All Rights Reserved
Target 6
Unit 0 Removable Read Only device SONY CD-ROM
ok probe-scsi-all
显示连接在PCI总线上的IDE设备
ok probe-ide
Device 0 ( Primary Master )
ATA Model : ST 34342A
Device 1 ( Primary Slave )
Not Present
Device 2 ( Secondary Master )
removable ATAPI Model : CDR-8240B
Device 3 ( Secondary Slave )
Removable ATAPI Model yyyyyyyyyyyyyyy
可以使用devalias命令查看设备别名的物理地址,这样就可以知道启动设备的物理设备了。
ok devalias
screen /SUNW,ffb@1e,0
mydisk /pci@1f,0/pci@1,1/ide@3/disk@0,0
net /pci@1f,0/pci@1,1/network@1,1
cdrom /pci@1f,0/pci@1,1/ide@3/cdrom@2,0:f
disk /pci@1f,0/pci@1,1/ide@3/disk@0,0
disk3 /pci@1f,0/pci@1,1/ide@3/disk@3,0
disk2 /pci@1f,0/pci@1,1/ide@3/disk@2,0
disk1 /pci@1f,0/pci@1,1/ide@3/disk@1,0
disk0 /pci@1f,0/pci@1,1/ide@3/disk@0,0
ide /pci@1f,0/pci@1,1/ide@3
floppy /pci@1f,0/pci@1,1/ebus@1/fdthree
ttyb /pci@1f,0/pci@1,1/ebus@1/se:a
ttya /pci@1f,0/pci@1,1/ebus@1/se:b
keyboard! /pci@1f,0/pci@1,1/ebus@1/su@14,3083f8
keyboard /pci@1f,0/pci@1,1/ebus@1/su@14,3083f8
mouse /pci@1f,0/pci@1,1/ebus@1/su@14,3062f8
设备别名在左列。设备物理地址在右列。
如果操作系统挂起了(没有响应),并且您也不能远程登录,那您没有别的选择了,只有强行中断操作系统。
中断挂起的系统
如果系统挂起了,可以尝试下列步骤:
1.用Stop-a中断操作系统。如果成功,系统会停留在PROM状态。如果是使用字符终端作为系统控制台,则按Break键。
2. 用sync命令将内存的内容同步到磁盘,减少数据的丢失。结束后系统会自动重起。
在ok提示符下键入sync命令。
ok sync
注意 - 您也可以用Stop-a强行中断操作系统,然后键入go恢复操作系统运行。不建议使用此功能。
OK printenv #eeprom
ansi-terminal? ---控制终端仿真器行为的配置变量,值false使得终端仿真器停止解释ANSI转义序列,而只是简单将其回显到输出设备中。 默认值为true。
auto-boot? ---如果为true,在打开电源或复位重启后自动引导。默认值为true。
boot-command ---当变量auto-boot?为true时所执行的命令。默认值为boot。
boot-device ---从其进行引导的设备。boot-device可以包含0或者更多的以空格分割的设备描述符。每一个设备描述符可以是PROM设备别名 ,或者是一个PROM设备路径。引导PROM试图顺序打开列表中每一个设备描述符,从第一个设备描述符开始,第一个成功的设 备描述符被用作从其进行引导的设备。默认值为disk net.
boot-file ---要引导的文件(一个空字符串使得辅助引导程序选择默认值)。默认值为一个空字符串。
boot-from ---引导设备和文件(只适用于OpenBoot PROM版本1.x)。默认值为vmunix。
boot-from-diag ---诊断引导设备和文件(只适用于OpenBoot PROM版本1.x)。默认值为le()unix。
comx-noprobe ---其中x为串行端口的编号,在串行端口x禁止设备探测。
diag-device ---诊断引导源设备。默认值为net。
diag-file ---从其以诊断模式进行的引导文件。默认值为一个空字符串。
diag-level ---诊断水平。取值包括off、min、max和menus。可能还有附件的特定于平台的值。当设备为off,POST不会被调用。如果POST被 调用,值就作为一个参数由POST适用并解释。默认值取决于使用的平台。
diag-switch? ---如果为true,以诊断模式运行,在 boot 请求后从diag-device中引导diag-file。如果设为 false,在非诊断模式下运行, 在boot请求后从boot-device中引导boot-file。默认值为false。(STOP+N)
fcode-debug? ---如果为true,将包括软插件设备Fcodes的名字参数。默认值为false。
hardware-revision ---系统版本信息。如果为true,将包括软插件设备Fcodes的名字参数。默认值为false。
input-device ---在电源打开时使用的输入设备(通常为keyboard、ttya或ttyb)。默认值为keyboard。
keyboard-click? ---如果为true,允许键盘输入。默认值为false。
keymap ---客户键盘的键盘分布图。
last-hardware-update ---系统更新信息。
load-base ---客户端程序的默认装载地址。默认值为16384。
local-mac-address? ---如果为true,网络驱动器使用它们自己的MAC地址,而不是用系统提供的地址。默认值为false。
mfg-mode ---POST制造模式参数。可能的取值包括off或chamber。默认值为off。
mfg-switch? ---如果为true,重新进行系统的自检测,直到使用stop+a组合键中断。默认值为false。
nvramrc ---NVRAMRC的内容,默认值为empty。
oem-banner ---客户oem标题(通过将oem-banner?设置true而启动这一功能)。默认值为一空字符串。
oem-banner? ---如果为true,使用客户oem标题。默认值为false。
output-device ---在电源打开时使用的输出设备(通常为screen、ttya或ttyb)。默认值为screen。
sbus-probe-list ---以什么顺序探测哪些sbus插槽。默认值为0 1 2 3。
screen-#columns ---屏幕上可以显示的列数(字符/行)。默认值为80。
screen-#rows ---屏幕上可以显示的行数(行)。默认值为34。
scsi-initator-id ---主机适配器的scsi总线地址,范围是0~7。默认值为7。
sd-targets ---映射scsi硬盘单元(只适用于OpenBoot版本1.x)。默认值为31204567。
security-#badlogins ---不正确的安全密码尝试次数。这一属性对基于IA结构的系统没有特别的含义或行为要求。
security-mode ---固件安全水平(选项none、command或full),如果设置为command或full,系统提示要求输入PROM安全密码,在设置次项参 数之前必须先设置security-password。默认值为none。这一属性对于基于IA结果的系统没有特殊的含义或行为要求。
security-password ---固件安全密码(从不显示)。只当安全模式被设为command或full时设置。
selftest-#megs ---要检测的RAM的兆字节数,如果diag-switch?为true则被忽略。默认值为1。
skip-vme-loopback? ---如果为true,POST并不进行VMEbus反馈检测。默认值为false。
st-targets ---映射SCSI磁带单元(只适用于OpenBoot PROM版本1.x)。默认值为45670123。
sunmon-compat? ---如果为true,显示受限监视程序提示符(>)。默认值为false。
testarea ---一字节的测试自段,用于读/写检测。默认值为true。
tpe-link-test? ---支持内置双绞线以太网的10 baseT 链路检测。默认值为true。
ttya-mode ---TTYA(波特率、数据位、奇偶校验、停止位、握手)。默认值为9600,8,n,1,-。
字段如下所示从左到右的顺序显示:
波特率:110,300,1200,4800,9600...
数据位: 5,6,7,8
奇偶校验: n(不校验),e(偶校验),o(奇校验),m(标记),s(空格)
停止位: 1,1.5,2
握手: -(不握手),h(硬件:rts/cts),s(软件:xon/xoff)
ttyb-mode ---TTYB(同上)
ttya-ignore-cd ---如果为true,操作系统忽略对TTYA的载波检测。默认值为true。
ttya-rts-dtr-off ---如果为true,操作系统并不对TTYA进行DTR和RTS进行决断。默认值为false。
usr-nvramrc? ---如果为true,在系统启动期间执行NVRAMRC中的命令。默认值为false。
version2? ---如果为true,在版本2.x中会出现混合(1.x/2.x)PROM。默认值为true。
watchdog-reboot? ---如果为true,在监督程序复位时重新引导。默认值为false。
pcia-probe-list ---指示检测 PCI 插槽的数量和顺序。
error-reset-recovery ----认值为boot,错误导致系统重置之后要执行的命令。