第八章 执行boot PROM命令

目标要求:

?了解boot PROM(programmable read-only memory)的基础知识

?使用基本的boot PROM命令

?标识系统启动设备

?创建删除定制的设备别名

?在shell中查看与更改NVRAM(novolatile random access memory)

?中止未响应的系统

boot PROM基础介绍

所有的Sun系统都有常驻的boot PROM固件,提供启动之前的基本硬件测试与初始化。boot PROM还支持从不同的设备启动。此外,还具有一个提供许多重要功能的用户接口。

Sun boot PROM可访问一个标准的普通设备驱动程序集。系统使用这些驱动程序访问并控制总线和启动设备,以正常启动。

所有版本的Openboot结构都支持第三方的板卡标识板卡自身,并装载其内建的设备驱动程序。在系统启动过程中硬件配置阶段,OpenBoot PROM请求每个设备声明自己的类型,并装载其内建的驱动程序。

OpenBoot体系结构标准的目的

IEEE OpenBoot架构标准的目的是用于提供如下功能:

?测试并初始化系统硬件

?判定系统的硬件配置

?启动操作系统环境

?为配置、测试与调试提供交互式的接口

?支持使用第三方的设备

Boot PROM

每个Sun系统都有一个boot PROM芯片。容量1M的芯片通常与CPU位于同一块板上。Boot PROM芯片在老式的系统上常位于一个可插拔的接口上。对于3.x版本的PROM,该芯片被固化在主系统板上。

Ultra工作站使用可重编程的Boot PROM,称为闪存PROM(FPROM)。FPROM支持使用软件将新的启动程序数据加载入PROM中,而不是用更换芯片的方式进行功能升级。这些升级程序以CDROM方式发行。

桌面系统中有一个写保护跳线,在写PROM之前必须更改跳线。跳线默认的位置是写保护。参考Refer to the Flash Programming Manual for Ultra Desktop Systems手册, part number 802-3233-17,查看系统的路线位置。

注意:很多系统的跳线位于安装的帧缓冲区或其它可移动的卡下方。在移除更换这些卡时要小心。

Boot PROM的主要功能是测试系统硬件,启动操作系统环境。Boot PROM固件被称为monitor程序。

运行如下命令查看系统上运行的OpenBoot PROM版本:

# /usr/platform/‘uname -m‘/sbin/prtdiag –v

#prtconf –V

系统配置信息

在SUN系统中另一个重要的元素就是系统配置信息。系统配置信息包括以下内容:

以太网mac地址,如8:0:20:5d:6f:9e

系统host ID值,如805d6f9e

用户修改的后的默认配置参数。

用户能够修改和配置的参数也叫NVRAM变量或者EEPROM参数。

NVRAM 芯片

SEEPROM

System configuration card(SCC)

NVRAM 芯片

较老的系统包含可拆除的NVRAM芯片,通常情况下它是固定在系统的主板上的。NVRAM芯片上集成了一个里电池。为保存配置信息和TOD提供电量。

SEEPROM

比较新的系统中包含一个SEEPROM芯片通常情况下它是固定在系统的主板上的。SEEPROM并不要求提供电池来保存配置信息。

SCC

一些比较新的系统包含一个可以移动的SCC它存储着系统配置信息。

POST

系统加电时,会执行一个低级的POST。低级POST的代码被存储在Boot PROM中,

它被用于检测系统硬件的最基本的功能。

成功完成低级POST阶段以后,Boot PROM固件接管控制并执行如下的初始化过程:

?探测内存,然后探测CPU

?探测总线设备,解析其驱动程序,并建立设备树

?安装终端

在Boot PROM初始化系统之后,Boot PROM与NVRAM中存储的系统检测参数决定是否和如何启动操作系统环境。

控制POST阶段

POST运行的第一个检测是检测是否有键盘连接到系统及是否按下了Stop键选项。

Stop键盘位于键盘的左侧。将Stop键与其它键一同按下,启用不同的调试模式。Stop组合键影响OpenBoot PROM,定义系统加电时POST如何运行。下面是Stop键的组合:

?Stop-D 系统加电时按下Stop键和D键,固件自动切换到诊断模式。此模式将在系统硬件上运行extensive(广泛的)POST诊断。OpenBoot PROM变量diag-switch?被设置为true。

?Stop-N组合键 系统加电时同时按下Stop键和N键,将NVRAM参数设为默认值。当键盘上的LED灯开始闪烁时,可以放开键,然后系统就继续启动。

不正确的NVRAM设置可能会让系统启动失败。例如,在闪存PROM下载时,如这时掉电,NVRAM的一些内容可能就会不可用。

如果系统不能启动,怀疑是因为NVRAM参数未正确设置,参数可以被很容易地改变为默认值。

?Stop-A组合键 按下Stop键与A键会立即中断任何当前正在运行的程序,并回到OpenBoot PROM的命令行模式下。系统显示ok提示符,表示接受输入OpenBoot PROM命令。

注意:Stop-A组合键,是到ok提示符下的方法之一,但不推荐,除非别无选择。Stop-A键可能会导致Solaris OE文件系统崩溃,这将很难修复。

禁用Abort组合键

系统管理员可能会想禁用abort组合键(即Stop-A),以防止可能的文件系统崩溃,使系统更安全(防止别人使用Stop –A 组合键进入PROM提示符)。

编辑/etc/default/kbd文件禁用abort组合键。将语句KEYBOARD_ABORT =disable取消注释。将该行前的注释符号删除,保存文件,并执行命令kbd -i。完成操作后,系统将只允许在启动过程中使用Stop-A组合键。

也可将系统配置更改,把abort组合键改为其它替代的组合。查看kbd命令的man手册,获取更多信息。

输出POST到串口

系统管理员可以使用串行线连接到系统的串口上,获取POST输出的更多信息。

当系统加电时,POST查找键盘,如果系统中没有键盘,POST会将系统输出转向串行口A。

POST在当系统的PROM参数diag-switch?设置为true时,会以诊断模式运行,执行更多的检测。

确保使用正确类型的null modem电缆连接到串口A上。

一些系统需要特殊的适配电缆。将电缆的另一头连接到ASCII终端的modem端口上。

使用基本的Boot PROM命令

Boot PROM提供用户接口,输入OpenBoot命令。

banner 显示加电banner

boot 启动系统

help 显示主要的帮助目录

printenv 显示所有参数的当前值与默认值

setenv 将指定的NVRAM参数设为指定值

reset-all 重设整个系统,类似于power cycle(加电循环?重启)

set-defaults 将所有的参数值设为出厂设置

sifting text 显示FORTH命令中包含text的命令

.registers 显示寄存器内容

probe-scsi 检测SCSI总线上的设备

probe-scsi-all 检测所有SCSI总线上的设备

probe-ide 检测IDE总线上的所有设备

probe-fcal-all 检测所有光纤通道环上的设备

showdevs 显示完整的设备树

devalias 标示系统当前启动设备的别名。

Nvalias 创建新的设备别名。

Nvunalias 删除设备别名。

Show-disks 显示和允许使用nvalias的磁盘的设备路径。

Sync 手工尝试刷新内存和同步文件系统。

Test在指定设备上运行自检

查看系统Boot PROM版本

banner命令列出很有帮助的系统信息,如模块名,Boot PROM版本号,内存量,以太网地址,及host ID。

下面是banner命令的输出例子:

ok banner

Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 360MHz), Keyboard Present

OpenBoot 3.31, 128 MB (50 ns) memory installed, Serial #11888271.

Ethernet address 8:0:20:b5:66:8f, Host ID: 80b5668f.

启动系统

使用boot命令从ok提示符下启动Solaris OE。此命令有几个可用选项,用于将系统启动到不同的状态。

boot命令的格式如下:

ok boot device_name - options

在ok提示符下输入boot命令将系统自动启动到多用户状态:

ok boot

下面的列表是boot命令的参数项:

?-s 将系统启动到单用户状态,并要求用户提供root口令

ok boot -s

ok boot cdrom -s

?-a 交互式启动系统。如果需要执行替代文件(即不使用下面例子中的某个既定文件来加载系统,而是自己手工指定),使用此选项。boot程序向用户请求如下信息:

ok boot -a

Enter filename [kernel/sparcv9/unix]:

(等等,以下信息就不详细输出了)

?-r 执行重配置启动。使用此选项查找新安装的设备,并在/devices和/dev目录中添加新的设备条目。也将更新/etc/path_to_inst文件。

ok boot -r

?-v 启动系统,输出更详细的设备信息到控制台。使用此选项在启动过程中排错。可以与其它选项一起使用:

ok boot -v

ok boot -rv

ok boot -sv

查询更多细节信息

可以使用help命令获取OpenBoot固件的主要目录。下面是Ultra 5工作站上help输出的例子,它使用的是3.31版本的OpenBoot PROM:

ok help

Enter ’help command-name’ or ’help category-name’ for more help

(Use ONLY the first word of a category description)

Examples: help system -or- help nvramrc

Categories:

boot (Load and execute a program)

nvramrc (Store user defined commands)

system configuration variables (NVRAM variables)

command line editing

editor (nvramrc editor)

resume execution

devaliases (Device aliases)

diag (Diagnostics commands)

ioredirect (I/O redirection commands)

misc (Miscellaneous commands)

ok

help命令的输出列表提供了许多可以用来查看更多细节的关键字。

如,要查看上例中主要类别的特定信息,执行下面命令之一:

ok help boot

ok help nvramrc

ok help diag

ok help misc

列出NVRAM参数

可以使用printenv命令列出所有的NVRAM参数。如果参数被修改过,printenv命令会显示其默认值与当前设置值,例:

ok printenv

Variable Name           Value      Default Value

tpe-link-test?             True           true

scsi-initiator-id             7              7

keyboard-click?           False          false

keymap

ttyb-rts-dtr-off             false          false

ttyb-ignore-cd              true           true

ttya-rts-dtr-off              false         false

ttya-ignore-cd               true         true

(等等,以下信息就不详细的列出了)

可使用printenv命令显示单个参数及其值。

例如,执行如下命令显示boot-device参数值:

ok printenv boot-device

boot-device = disk net

boot-device可能的值包括disk,net和cdrom。

注意:一些OpenBoot PROM参数,如auto-boot?,以问号结束。如果OpenBoot PROM参数以问号结束,其参数值通常是true或false。

更改NVRAM参数

可以使用setenv命令更改当前指定给NVRAM参数的值。如果auto-boot?参数设定为true,系统自动启动。如果为false,系统会停止在ok提示下。

下面的例子更改了auto-boot?参数的值,从默认设置true改为false。

ok printenv auto-boot?

auto-boot? = true

ok

ok setenv auto-boot? false

auto-boot? = false

reset-all命令将系统挂起,清除所有的缓冲区与寄存器,并在系统上执行一个软件模拟的power-off/power-on操作。

ok reset-all

Resetting ...

注意:,在PROM3.x及更高版本上,如果要执行probe或其它测试命令,必须以reset-all命令清除系统寄存器。

恢复默认的NVRAM参数值

使用set-defaults命令将所有的NVRAM参数重新设置为其默认值。它只影响那些曾经被赋予默认值的参数(即有的参数是没有默认值的)。

ok set-defaults

Setting NVRAM parameters to default values.

ok

以set-default命令后面跟参数名,将该指定参数设定为其默认值。

ok set-default parameter-name

如,执行如下命令将diag-level参数重设:

ok set-default diag-level

显示连接到总线上的设备

使用probe命令查看当前连接到系统的外设,如硬盘,磁带驱动器或CDROM。

要查看系统上可用的不同的probe命令,使用sifting命令。sifting命令在你不知道确切的OpenBoot PROM命令语法,而需要使用时特别有用。

例如,要查找可用的probe命令,执行如下命令:

ok sifting probe

(f006c954) probe-all (f006c5a0) probe-all (f006c37

probe-ide

(等等,以下信息就不详细的列出了)

最常用的probe命令是probe-scsi,probe-scsi-all和probe-ide命令。

注意:如果在Sun系统上的Boot PROM版本是3.x或更高,运行probe命令时可能会出现如下的警告消息:

This command may hang the system if a Stop-A or halt command has been executed. Please type reset-all to reset the system before executing this command.

Do you wish to continue? (y/n) n

执行如下命令以防止系统被挂起:

ok setenv auto-boot? false

ok reset-all

判定系统在执行probe命令时是否挂起的一个方法是使用.registers命令:

ok .registers

Normal     Alternate    MMU    Vector

0:         0             0         0        0

(等等,以下信息就不详细的列出了)

前面的输出显示所有的寄存器均为空,值为0。如果寄存器的值非为0,那很有可能probe命令让系统挂起。

probe-scsi命令

probe-scsi命令标识连接到板载SCSI控制器上的所有外围设备。probe-scsi命令使用其目标地址标识如硬盘,磁带驱动器或CDROM等外围设备。

ok probe-scsi

Target 1

Unit 0 Disk FUJITSU MAB3045S SUN4.2G17059825M62990

(等等,以下信息就不详细的列出了)

probe-scsi-all命令标识所有连接到系统板上的SCSI控制器或分离的SBus或PCI SCSI控制器上的外围设备。

ok probe-scsi-all

/pci@1f,0/pci@1/pci@1/SUNW,isptwo@4

(等等,以下信息就不详细的列出了)

probe-ide命令

probe-ide命令标识连接到板载IDE控制器上的硬盘或CDROM。此命令显示内部设备的设备号:

ok probe-ide

Device 0 ( Primary Master )

ATA Model : ST 38420A (DISK)

(等等,以下信息就不详细的列出了)

标识系统的启动设备

Sun硬件使用设备树的概念组织连接到系统中的设备

show-devs命令

可以使用show-devs命令查看整个设备树。

下面的例子了show-dev命令的输出:

ok show-devs

/SUNW,UltraSPARC-IIi@0,0

(等等,以下信息就不详细的列出了)

注意:除了使用show-devs命令显示整个设备树之外,还可以使用如下的OpenBoot PROM命令查看指定设备的信息:show-ttys, show-displays, show-nets, show-disks, 与show-tapes。

devalias命令

使用devalias命令为系统标识当前的根设备别名。

下面的例子显示了devalias命令的输出:

ok devalias

screen /pci@1f,0/pci@1,1/SUNW,m64B@2

(等等,以下信息就不详细的列出了)

左边是设备别名的输出列表,右边是每个设备的物理地址输出列表。

设备别名被预先写入OpenBoot PROM固件中去的,比物理设备地址更好记忆与使用。disk设备别名标识了系统的默认启动设备。

NVRAM中的boot-device参数设定系统的启动设备。默认情况下,boot-device参数设定为disk net。可以在ok提示符下使用命令查看系统的启动设备。

要从默认设备启动,执行boot命令:

ok boot

创建与删除定制设备别名

NVRAM中有一部分称为NVRAMRC,里面存放了定制的参数的值,也预留用于存储新设备别名的空间。默认的,外部设备没有与之关联的设备别名。

NVRAMRC受nvalias与nvunalias命令的影响,也受参数usr-nvramrc?的影响。

使用nvalias命令创建新的设备别名,以访问新添加的外部设备。命令格式如下:

nvalias aliasname device_path

nvalias命令的作用是将如下的命令行存储到NVRAMRC中:

devalias aliasname device_path

ok nvalias mydisk /pci@1f,0/pci@1,1/ide@3/disk@0,0

注意:当设备路径被粘贴到命令行上时,目标号与逻辑单元号(LUN logical unit number)需要添加,如sd@0,0或disk@0,0。

设定boot-device参数为新值,本例中是mydisk,然后启动系统。

ok setenv boot-device mydisk

boot-device = mydisk

ok boot

nvunalias命令

使用nvunalias命令删除设备别名。使用如下命令格式:

ok nvunalias aliasname

注意:nvalias命令是一个例外,更新被立即写到NVRAM上,不需要使用reset-all命令。

例子中,使用nvunalias命令从NVRAMRC中删除别名mydisk,并使用setenv命令将boot-device参数设定为disk。

ok nvunalias mydisk

ok setenv boot-device disk

boot-device = disk

ok reset-all

Resetting ...

在操作系统中查看并更改NVRAM参数

Solaris OS运行时,使用/usr/sbin/eeprom命令查看并更改NVRAM参数。

#eeprom

?执行如下命令列出单个参数及其值,这里参数是boot-device。

# eeprom boot-device

boot-device=disk

要更改当前的默认启动设备为disk2,执行如下命令:

# eeprom boot-device=disk2

?要更改auto-boot?参数的值,执行如下命令:

# eeprom auto-boot?=true

中止不响应的系统

当系统死锁或停止对键盘响应时,你可能需要中断它。中断系统时,所有的活动进程立即停止,处理器只为OpenBoot PROM服务。不允许刷新内存或同步文件系统。

中止未响应的系统

有如下的几种方法尝试:

1、尝试从远程登录到未响应的系统上,找出并杀死造成系统停止响应的进程

2、尝试重启未响应的系统。

3、按下不响应系统的键盘上的Stop-A组合键,系统被置于ok提示符下。

注意:如果使用ASCII终端作为系统控制台,使用Break键。

4、使用OpenBoot PROM下的sync命令手工同步文件系统:

ok sync

此命令使所有的文件系统同步,并将内存作一个crash dump,然后重启系统。

阅读(3333) | 评论(0) | 转发(0) |

linux prom命令解释,eeprom 执行boot PROM命令相关推荐

  1. Linux 在一个命令行上执行多个命令

    Linux 在一个命令行上执行多个命令 1. [ ; ] 如果被分号(;)所分隔的命令会连续的执行下去,就算是错误的命令也会继续执行后面的命令. 2. [ && ] 如果命令被 &am ...

  2. Linux 命令行上执行多个命令(分隔符简介使用)

    Linux 系统可以在一个命令行上执行多个命令,相应的命令行的分隔符简介及使用如下: ; 如果命令被分号(;)所分隔,那么命令会连续的执行下去,就算是错误的命令也会继续执行后面的命令.示例如下: ls ...

  3. Node.js 在命令行下执行Console.log()命令时,第二行会打印undefined的原因

    转载:http://blog.csdn.net/chy555chy/article 问题描述:在命令行下执行Console.log()命令后,第一行会以 "正常的白字" 输出log ...

  4. linux数据库能看到系统执行了哪些命令,DB2数据库在linux操作系统的指令有哪些?...

    以下的文章主要描述的是DB2数据库在linux操作系统下的相关指令,你如果对DB2数据库在linux操作系统下的相关指令有兴趣的话你就可以点击以下的文章进行观看了,以下就是文章的详细内容介绍,望大家借 ...

  5. php用命令行脚本执行,使用PHP命令行执行PHP脚本的注意事项

    如果你使用的wamp集成安装环境的话,那么你php的配置是在D:\wamp\bin\apache\Apache2.2.17\bin 你要先把他复制覆盖掉D:\wamp\bin\php\php5.3.3 ...

  6. matlab中如何清空文本框中的值_在MATLAB的命令窗口中执行()命令,将命令窗口的显示内容清空。...

    [单选题]已知 x = [3, 5, 7],那么执行语句 x[1:] = [2]之后,x的值为___________.(3.0分) [判断题]Python集合中的元素可以是整型(3.0分) [判断题] ...

  7. 学习linux的好助手-linux命令解释工具

    有时候在听学习视频时,看到大佬输入没见过的linux命令行,就不知道什么意思. 现在可以通过在线工具Linux命令解释工具输入你的命令,就会告诉你什么意思,并且对每个参数进行了解释,简直是菜鸟的福音. ...

  8. Linux系统下MySQL的导入数据的命令语句Load Data InFile的用法详解

    文章目录 语法格式 LOW_PRIORITY CONCURRENT LOCAL REPLACE 或 IGNORE PARTITION CHARACTER SET 对导入文件的字段进行格式描述 指定行的 ...

  9. Linux操作系统命令解释

    Linux操作系统命令解释 1.文件管理 cat:(concatenate)命令用于连接文件并打印到标准输出设备上 chattr命令用于改变文件属性 chgrp(change group):命令用于变 ...

最新文章

  1. mysql数据库隐式表_详解MySQL数据库常见的索引问题:无索引,隐式转换,附实例说明...
  2. SAP和ABAP内存的区别
  3. java file用法_Java File 类的使用方法详解(转)
  4. 基于JAVA+SpringMVC+MYSQL的高校教师档案管理系统
  5. java易忘代码备份
  6. Linux之磁盘挂载
  7. windows编程函数(一)
  8. python编程入门书籍-python入门书籍推荐
  9. Html和css算是编程语言吗,不被承认的编程语言
  10. JSON简介与解析方法(超级详细)
  11. 360强力卸载能不能卸载360?我们从360美国退市说起
  12. matlab求包络线拟合,MATLAB 一堆散点如何求包络线
  13. 2022-03-07 Influxdb创建用户接口与raft日志交互封装
  14. java企查查爬_爬取企查查热搜
  15. 基于Redis的消息中心缓存搭建
  16. Cadence Other格式网表导出与导入
  17. 计算机视觉算法岗 面试经验 (转载)
  18. 软件工程——经验软件工程概述
  19. IPWorks IPC .NET 2022.0.85 Crack
  20. 通俗易懂聊DNS解析

热门文章

  1. java里jvm,jer,jdk的区别
  2. Hexo Next动态背景Canvas_nest
  3. 苏炳添博士论文研究自己,奥运学术两兼顾,还是暨大副教授,网友:真正的Run数据...
  4. HTML界的“苏炳添”——详解Canvas优越性能和实际应用
  5. Win7 任务栏上程序名称修改问题
  6. MTK android 常用修改点
  7. 计算机毕业设计Java-ssm爱馨敬老院网站源码+系统+数据库+lw文档
  8. 0056-在OpenCV环境下使用混合高斯背景建模提取前景目标
  9. ExtJS EditorGridPanel 示例之xml格式Store前后台增删改查
  10. 基金直销账户体系介绍