龙芯开源社区

 找回密码
 注册新用户(newuser)
查看: 9925|回复: 15

如何关闭pmon的启动图片。1.3.6a的盒子pmon。

[复制链接]
发表于 2012-4-1 18:57:41 | 显示全部楼层 |阅读模式
如何关闭pmon的启动图片。

这样看不到电脑的启动信息了,是1.3.6a的盒子pmon。
发表于 2012-4-2 08:59:24 | 显示全部楼层
http://dev.lemote.com/cgit/pmon.git/  源码是最好的手册。
 楼主| 发表于 2012-4-2 20:04:40 | 显示全部楼层
源码是最好的手册。
刘世伟 发表于 2012-4-2 08:59



    这个得有刘工这样的水平才行,对我来说,编译个模块都是超级的难题了。
发表于 2012-4-4 10:03:51 | 显示全部楼层
下载源代码, 搜索特征字符串, 可接受的参数们应该都在一个地方。 并且应该有简单的注释。
 楼主| 发表于 2012-4-4 18:53:29 | 显示全部楼层
乱撞了一下,基本解决。
pmon下面输入
unset novga

可以看到电脑的启动信息了。
 楼主| 发表于 2012-4-4 18:57:46 | 显示全部楼层
参考这里
http://olph.gdium.com/wiki/doku.php/zh:manual:pmon_full?do=export_xhtml
−目录


1 PMON介绍
本产品使用 PMON(Prom Monitor)作为基本输入输出系统(BIOS)。PMON 具有强大而丰富的功能,包括硬件初始化、操作系统引导和硬件测试、程序调试等功能。它提供多种加载操作系统的方式,可以从优盘、tftp 服务器和硬盘等媒介加载;它提供对内存、串口、显示、网络、硬盘等的基础测试工具;此外 PMON 还内置一个调试器,可以对加载的程序进行单步跟踪、设置断点等调试。PMON 支持软件升级。

2 PMON的使用手册
2.1 PMON 启动流程
接通电源后,按主板的开机按钮,主板开始工作。根据ShowBootMenu环境变量的设置情况,PMON启动流程稍有不同。如果ShowBootMenu的值为yes,则默认首先从硬盘上搜索/boot.cfg或者/boot/boot.cfg,如果存在,则读取内容后显示相应的菜单等待用户交互后来选择要启动的内核,如果不存在,则查找是否设了al环境变量,如设置了,则从al设置的指示来启动内核,如果没设置al,则进入PMONconsole界面。当然,在读取boot.cfg之前可以按Del来中断直接进入PMON console界面。如果ShowBootMenu不存在或者其值不为为yes,则BootMenu不起作用,PMON将自动搜索/boot.cfg或者/boot/boot.cfg,若搜索到,则直接按读出内容中指示的默认启动索引来启动相应内核,如果找不到,则查找是否设了al环境变量,如设置,则从al设置的指示来启动内核,如果没设置al,则进入PMON console界面。当然,同样的,在这之前可以按Del来中断直接进入PMONconsole界面。

2.1.1 设置 ShowBootMenu 为 yes 的情况
首先说明 ShowBootMenu 设置为 yes 的情况,在此情况下,如前面提到的,如果硬盘上存在着/boot.cfg 或者/boot/boot.cfg,则进入如图 1 所示界面。

图1 BootMenu
正如图1中所示,当用户不进行任何操作,则在指定的时间到了以后(图中为28秒)PMON将自动装载箭头所指的内核,图中为rays。如果在该时间段内用户直接按下Enter键,则PMON将装载并进入箭头所指的内核,图中也为rays。如果在该段时间内用户按上下键,则箭头会随着按键上下移动来指示用户想要选择启动的内核,等用户选定所要启动内核后按下Enter则装载并进入内核。如果在该段时间内用户按下'c'键,则进入PMONconsole。如果用户在该段时间内用户按下上门提到的之外的按键,则下面的Booting system in
  • second(s)的提示将消失,等待用户用上下键选择要启动的内核并且用Enter来装载并启动之。
    下面介绍一下boot.cfg文件的格式,摘抄一个典型的boot.cfg文件内容说明之: timeout 30

    default 0

    showmenu 1

    title rays

         kernel /dev/fs/ext2@wd0/boot/vmlinux

         args console=tty root=/dev/hda1  

    title debian

         kernel /dev/fs/ext2@wd0g/boot/vmlinux-8.9

         args console=tty root=/dev/hda7

    title rescue

         kernel /dev/fs/ext2@wd0/boot/rescue

         args console=tty


    说明一下各个标签的含义:
    timeout 后面跟的数值指示启动默认系统的超时时间,也就是上面提到的Booting system in
  • second(s)提示的*的初始值。
    default 后面跟的数值指明默认启动的系统的索引,0代表第一个,后面依此类推。
    showmenu 如果为1则要显示BootMenu,若为0则不显示。
    title 也就是显示在BootMenu里的指示要启动的内核的名称。
    kernel 指明了对应title的内核的所在的地方。
    args 启动内核时传递给内核的一些启动参数。
    如果前面提到的boot.cfg不存在(指不在根目录下或者/boot目录下或者干脆不存在),则系统会给出”The boot.cfg notexisted!System will try default entry fromal.”后试着装载al环境变量指定的内核,并且配合karg环境变量指定的运行参数来启动内核。al和karg的设置说明如下:  ① PMON>set  al  string ⇓
    al 环境变量设置之后,在boot.cfg不存在的情况下,PMON会试图自动加载$al 指定的内核并运行。 “string”为load命令的参数,例如:  set  al  [[mailto:ext2@wd0| /dev/fs/ext2@wd0/boot/vmlinux]] -2.6.22-7inch ⇓
    将自动装载硬盘第一个分区的/boot/vmlinux-2.6.22-7inch,并运行。  ② PMON> set  karg  "argument  string"  ⇓
    设置自动启动时的内核参数,例如:  set  karg  "console=tty1 root=/dev/hda1" ⇓
    如果此时al也没设置,或者设置的不准确,则系统会进入PMON console,此时可以用load命令来进入硬盘非自动启动流程。说明如下:  ①PMON>load  [[mailto:ext2@wd0| /dev/fs/ext2@wd0/boot/vmlinux]] -2.6.22-7inch  ⇓
    通过硬盘加载内核,ext2表示硬盘分区的文件系统类型,boot表示内核路径,vmlinux-2.6.22-vmlinux表示内核名。wd0表示第一个ext2分区。如果内核文件放在第2个ext2分区,则分区名称为wd0b,如果是第3个ext2分区,则分区名为wd0c,依此类推。需要注意的是这里计算的只是ext2分区,其他分区类型如fat32,swap分区均不包括在计数之类。举例说明,假设我们分了四个分区,第一个为ext2分区,第2个为swap分区,第三个为fat32分区,第四个为ext2分区。则第一个ext2分区名为wd0a,简写为wd0,第二个ext2分区(也就是物理上的第4个分区)名称则为wd0b。  ② PMON>g  console=tty  [root=/dev/hdaN]  ⇓
    开始运行内核,g命令的参数为内核命令行参数。默认参数为   console=tty1 root=/dev/hda1
    当然,除了硬盘启动流程外,还有以下两种启动方式可供选择(前提是前面提到的boot.cfg和al都不存在或者存在后设置不准确而进入了PMON console,当然用户也可以在读取boot.cfg或者al之前按Del键来强行进入PMON console):
  •  楼主| 发表于 2012-4-4 19:00:43 | 显示全部楼层
    1 、tftp 服务器启动流程:

    ① PMON>ifaddr  rtl0  xxx.xxx.xxx.xxx  ⇓

    其中xxx.xxx.xxx.xxx表示需要设置的IP地址,rtl0表示8139网卡。

    例如:

    PMON>ifaddr  rtl0  172.16.11.134  ⇓

    该命令设置临时的网络IP地址,重新启动会丢失。如果要永久设置则使用ifconfig 环境变量。例如:

    PMON>set  ifconfig  rtl0:172.16.11.134

    上面表示将本机的IP设置为172.16.11.134。具体IP地址请根据您的网络环境确定,如不清楚请询问您的网络管理员。

    ② PMON>setmac  xx:xx:xx:xx:xx:xx    ⇓

    设置网卡MAC地址,其中xx:xx:xx:xx:xx:xx表示您需要设置的MAC地址。 例如:

    PMON>setmac  00:23:2e:44:13:10{{wiki:graphics10}}    ⇓

    ③ PMON>load  tftp:%%//%%xxx.xxx.xxx.xxx/vmlinux-2.6.22-7inch ⇓

    xxx.xxx.xxx.xxx表示内核所在的服务器的ip地址,vmlinux-2.6.22-7inch是要下载的内核名字,可以是任意的,取决于您的tftp服务器上内核的命名。内核一般放在tftp服务器的/tftpboot目录下。

    ④ PMON>g  console=tty    ⇓

    同上,以给定的命令行参数运行内核。

    2、USB 光驱启动流程

    ① PMON>load  /dev/fs/ext2@usb0/boot/vmlinux  ⇓

    ② PMON>g  console=tty    ⇓

    另外,PMON中还支持从U盘读取boot.cfg来选择要启动的内核的功能,用户只要在系统起来之前(确切的说是读取boot.cfg之前)按'u'键,那么PMON会从U盘的根目录下去搜寻boot.cfg而不是从原来的默认的硬盘的根目录或者/boot下去搜寻。

    2.1.2 没有设置ShowBootMenu或者设置ShowBootMenu为非yes的情况:

    在此情况下,PMON还是先从硬盘(wd0)的根目录或者/boot下去搜寻boot.cfg,但与设置ShowBootMenu为yes的情况不同的时,找到boot.cfg后不显示BootMenu,而是读取文件中的default标签值来默认启动该索引值指定的内核。当然,与设置 ShowBootMenu的情况类似,如果PMON找不到boot.cfg或者boot.cfg格式不对,则搜索有没有设置al环境变量,如果al存在,并且设置准确,则自动装载al指定的内核并且运行,否则进入PMON shell。



    2.1.3 可能碰到的问题及其解决方法


    2.1.3.1 找不到boot.cfg或者boot.cfg格式不对

    现在只支持从编号wd0的硬盘上的根目录或者/boot下去搜索boot.cfg,所以请把boot.cfg放于这两个地方的任何一处。boot.cfg格式有两层含义:

       1.
          第一是真正意义上的格式错误,比如笔误,把default写成了defualt等;
       2.
          第二个是指语法没错,但可能指定的内核并不存在。

    以上用户都得重新按照boot.cfg的格式含义来核对后修改。

    2.1.3.2 IP 地址的设置

    IP地址设置只有通过tftp服务器加载内核时才会用到,而通过硬盘启动时就不需要设置IP地址,如果需要设置IP地址,那么该地址要和tftp服务器的ip地址在一个网段上。如果没有设置IP地址时,从tftp服务器上load内核会出现”Can`t assign requested address”的字样,提示您设置IP地址。

    2.1.3.3 MAC地址的设置

    设置MAC地址时,使用的都是十六进制数(0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f),并且最开始的两位一般情况下都设置为00,其他可以任意设置。如果第一次设置不成功的话(会有提示),可以把后10位中的某一位修改为其他的数字。

    2.1.3.4 内核加载失败

    如果是从硬盘或者U盘启动的话,可能是路径没有写对;如果是从tftp服务器加载内核的话,可能是IP地址和MAC地址没有设置正确,或者是无法访问tftp服务器(不在同一网段或者服务器配置不正确),也可能是tftp服务器上没有指定的内核。

    2.1.3.5 操作系统不能正常启动

    虽然正常加载内核,但在运行g命令后,不能正常启动操作系统。

    现象 1: 发生例外,返回 pmon 命令行或者重启动。请确认加载的内核无误而且load命令成功完成,可以尝试重新加载。

    现象 2: 打出几行字之后再没有反应。这个现象也可以是由于加载内核错误引起;或者是内核命令行参数没有指定console=tty,导致内核输出到串口设备;或者内核本身有bug中途死机。

    现象 3: 内核启动到准备挂载根文件系统时,报root设备 not found,panic等问题。请确认内核命令行参数指定的根分区是否正确,硬盘的分区有无损坏。

    现象 4: init进程执行之后的各种错误,常见的问题包括fsck错误、fstab的内容不正确导致某些分区不能mount、时间错误导致反复fsck等等,请参考debian操作系统的相关文档。
     楼主| 发表于 2012-4-4 19:02:26 | 显示全部楼层
    2.2 PMON的基本命令介绍
    在”PMON>“的提示符下,您可以用键盘输入命令来使用PMON的各种功能。阅读命令 的输出时,如果输出多于一屏,可按空格键翻页,”Enter”键翻行。
    1、h 命令:查看PMON的所有命令及其每个命令的使用说明,h命令格式:    PMON>h ⇓

    如果想查看特定命令的详细说明,可以在PMON命令提示符下输入”h command”。 例如查看load命令,格式:  PMON>h  load   ⇓

    2、load命令:用于下载程序和数据(例如从硬盘、优盘和tftp服务器等下载内核),也可以用来升级PMON,支持fat和ext2文件格式。命令格式:  PMON>load  [[mailto:ext2@wd0| /dev/fs/ext2@wd0/boot/vmlinux]] -2.6.22-7inch ⇓
    3、reboot命令:重启电脑。格式:  PMON>reboot ⇓
    4、date命令:用于查看或者设置时间。格式:  PMON>date  [yyyymmddhhmm.ss] ⇓
    yyymmddhhmm.ss的格式是年月日时分秒
    5、ifaddr命令:用于设置IP地址。格式:   PMON>ifaddr  rtl0  xxx.xxx.xxx.xxx    ⇓        
    6、ping命令:用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。格式:  PMON>ping  xxx.xxx.xxx.xxx ⇓
    7、set 命令:用来显示和设置环境变量。格式:  PMON>set ⇓ 不加参数的可以查看所有设置的变量  PMON>set  al  string ⇓ 用来设置 PMON 自动启动的变量  PMON>set  ifconfig  rtl0:xxx.xxx.xxx.xxx ⇓ 设置 IP 地址
    8、unset命令:取消set命令设置的变量。格式:   PMON>unset  al   ⇓
    9、ifm命令:设置网络的工作模式,选项包括 auto、10Mbps和100Mbps。格式:  PMON>ifm  ⇓ 查看网络工作模式  PMON>ifm auto ⇓ 自动选择网络工作模式  PMON>ifm 10 ⇓ 选择10Mbps模式  PMON>ifm 100 ⇓ 选择100Mbps模式
    10、setmac命令:设置MAC地址(MAC地址是指介质访问控制(Media Access Control,简称MAC)地址),如果不带参数则查看当前MAC地址;本命令直接修改8139网卡的ROM内容,重新启动后生效。格式:  PMON>setmac  [xx:xx:xx:xx:xx:xx]  ⇓
    11、dir命令:查询某个路径下的文件和目录分布情况。  dir (wd0,0)/   查询wd0硬盘下第一个分区根目录下文件的分布情况。  dir (usb0b,0)/boot 查询编号为0的U盘上的第二个分区/boot下的文件的分布情况。

    2.3 PMON 升级
    PMON保存在主板上的可拔插的EEPROM芯片中,升级PMON有两种方式:
    (1) 通过专用的编程器进行升级。这个方法需要先从主板取出EEPROM芯片,放到编程器中烧录PMON映像文件。烧录时需要选择正确的芯片型号。
    (2) 软件升级。使用load命令可以完成这个任务。load命令的-r选项可以装载二进制文件, -f  addr可以指定把装载的内容烧录到指定位置,在本主板中一般是0xbfc00000。例如:  load  -r  -f  bfc00000  tftp:%%//%%xx.xx.xx.xx/gzrom.bin   ⇓
    可以通过网络下载和升级PMON,其中gzrom.bin是更新的PMON映像。同样也可以从硬盘等地加载。
    非专业人士请勿尝试升级PMON,升级失败可能导致主板不能启动。
     楼主| 发表于 2012-4-4 19:03:22 | 显示全部楼层
    2.4 test 测试菜单
    如果你的主板出现问题,可以在PMON的字符界面下,手动输入命令进行相关的测试。  ① PMON>test  1 ⇓
    测试 CPU 浮点数计算 CPU 浮点部件工作正常时应该有如下输出:
    ② PMON>test  2 ⇓ 测试内存
    ③ PMON>test  4  ⇓   测试网络
    测试网络前需要先设置好IP地址,并确认网络联线正常。此外,本测试中服务器的
    IP地址固定为192.168.2.231,因此要把在一台同子网的服务器上添加该IP地址,并把本主板的IP地址设置为192.168.2.0网段的地址。
    测试网络时输入test  4 相当于ping命令,网络正常时应该有如下输出:

    如果网络不正常,输出会如下图所示:
    ④ PMON>test  8  ⇓ 测试CPU的频率
    输入该命令后,会在显示器上显示出CPU的频率,如下图(其中总线频率不准确):
    ⑤ PMON>test  32  ⇓ 测试PCI设备
    测试PCI设备时,如果PCI设备正常的话,会在显示器上输出每个PCI设备的总线 号、设备号和功能号,以及PCI设备的地址分配情况等。  ⑥ PMON>test  64 ⇓  测试显示

    ⑦ PMON>test  128           测试硬盘
    没有硬盘时输出: begin  harddisk  test get  harddisk  info:

    can  not  found  harddisk

    press  <Enter>  to  continue  !!  

    正常情况下输出: begin  harddisk  test

    get  harddisk  info:

    LBA,  xxxdMB,  xxxcyl,xxxhead,  xxxsec,  xxxsectors(其中 xxx 表示数字)

    start  harddisk  read  write  test


    …………… 然后对硬盘进行读写测试。  ⑧  PMON>test  256 ⇓ 测试键盘  
    正常时输出: keyboard  test check  keyboard... ok

    test  kbd  leds

    ………………….  

    测试失败时输出: keyboard  test check  keyboard... failed  ⑨  PMON>test  512{{wiki:graphics46}}   ⇓  测试串口,如下图:

    测试的同时会在串口打印出一个字母”a”。  PMON>test  4096 ⇓ 测试所有选项  该命令把①~⑨综合起来,用一条命令分别执行。
     楼主| 发表于 2012-4-4 19:03:45 | 显示全部楼层
    2.5 PMON 的命令列表
    GUI

    gui start gui progress
    Boot and Load

    boot boot oload load memory from hostport

    load load file
    Misc

    call call function devls list devices

    flush flush caches reboot reboot system

    poweroff power off system flash program flash memory

    tr transparent mode
    MyCmds

    pnpr pnpr LDN(logic device NO) index pnpw pnpw LDN(logic device NO) index value

    pcs select pci dev function d1 dump address byte

    d2 dump address half world d4 dump address world

    d8 dump address double word m1 modify address byte

    m2 mofify address half world m4 modify address world

    m8 modify address double word setvga set vga_available

    writefb write fb setkbd set kbd_available

    initkbd kbd_initialize tlbset tlbset viraddr phyaddr [-x]

    cache cache [0 1] erase cache [0 1]

    program cache [0 1] newmt new memory test

    test hardware test serial hardware test
    Debugger

    c continue execution t trace (single step)

    to trace (step over) db delete break point(s)

    b set break point(s) g start execution (go)

    sym define symbol ls list symbols

    r display/set register l list (disassemble) memory

    bt stack backtrace
    Shell

    more paginator h on-line help

    sh command shell vers print version info

    eval evaluate and print result stty set tty options

    hi display command history date get/set date and time

    about about PMON2000
    Network

    ifaddr Configure Network Interface ping ping remote host
    Memory

    m modify memory d display memory

    compare compare memory to memory copy copy memory to memory

    fill fill memory search search memory

    mt simple memory test
    Pci

    pcicfg pci config space pciscan scan pci bus
    memt

    nmt Memory test wm write memory
    space test

    sread read memory sset modify memory
    USB commands

    usb general usb commands
    cs5536 debug

    rdmsr msr read test wrmsr msr write test

    powerdebug for debug the power state of sm712 graphic kdecreg KB3310 EC reg read test

    wrecreg KB3310 EC reg write test rdbat KB3310 smbus battery reg read test

    rdfan KB3310 smbus fan reg read test xbiwr for debug write data to xbi interface of ec

    xbird for debug read data from xbi interface ec testvideo for debug read data from xbi interface of ec
    Realtek 8139

    ifm Set 8139 interface mode setmac Set mac address into 8139 eeprom

    reprom dump rtl8139 eprom content

    本版积分规则

    小黑屋|手机版|Archiver|Lemote Inc.  

    GMT+8, 2019-1-22 13:49 , Processed in 0.205113 second(s), 20 queries .

    快速回复 返回顶部 返回列表