用户登录

用户名: 注册名智通行证
密  码:
验证码: 验证码,看不清楚?请点击刷新验证码

问题快速搜索

产品类型:
关 键 字:    
标题内容解决方案

MZD网络平台

  无盘网络技术简介之五(远程引导芯片相关知识)
无盘网络技术简介之五(远程引导芯片相关知识)

 解决方案1:
5 远程引导芯片(Boot Rom)相关知识

   
    5.1 认识远程引导芯片
   
    1. 基本概念
   
    远程引导芯片(Boot Rom)一般情况下为写有远程启动代码的EPROM芯片,其内容与无盘网络的类型和网卡型号有关,它不具备通用性。无盘站在启动时,首先由它发出启动请求信号,并与服务器建立对话,当得到回应信息后,将控制权交到工作站的虚拟盘,完成无盘启动的第一步骤。
   
    2. 远程引导芯片的分类
   
    按服务器的操作平台分Windows NT(Windows 2000)、Novell和Linux。
    按启动机制分:IPX、RPL、PXE及BOOTP等。
    有些远程引导芯片只能启动一种无盘系统,有的可以引导多种无盘系统,因此又可以分为专用芯片和双启芯片或多启芯片。
    而网卡芯片的设置也是多种多样的,有无设置项的、有自动选择的、有带设置界面的等。
    如果要组建无盘工作站,所购买的网卡必须具有远程引导芯片插槽,而且要配备专用的远程启动芯片,如图1所示。由于远程启动芯片在一般情况下是不能通用的,所以在购买时,必须购买与自己的网络操作系统相吻合的远程引导芯片。
   
    图1 网卡Boot Rom插槽及远程引导芯片
   
    3. 如何获得远程引导芯片
   
    ? 对于一些常用的网卡芯片,如RTL8139、RTL8029等,在电子市场都可以直接购买到。
    ? 若使用的网卡不常用,或网卡是常用的、但启动方式不符合要求,例如使用Bootp方式启动的芯片,市场上就很难买到,这种情况下只有得到相关的启动代码,自己动手制作远程引导芯片,具体方法请见5.2内容。
   
    5.2 制作远程引导芯片
   
    1.准备工作
    要自己动手制作远程引导芯片前,需要作以下一些准备:一台编程器、EPROM擦除器EPROM空片若干和网卡启动芯片代码。
    几乎所有的编程器可以对EPROM进行读写,许多人对编程器的认识是从CIH病毒流行时开始的,CIH病毒会破坏主板的BIOS程序,有些电脑公司便作起了修复BIOS的业务,从网上下载主板的BIOS内容,通过编程器将代码写入主板的BIOS芯片中,所以有些电脑公司的技术员把编程器称为“写片机”,其实编程器的主要作用是单片机开发,写芯片只是的作用之一,因此当年用来写BIOS的“写片机”完全可以用制作远程引导芯片。
    编程器的型号很多,价格从200无至数千元不等,若不作单片机开发,只是作为写片机,那么高档的编程器的绝大部分功能都是用不上的,因此只需购买较低档的编程器,若要大量复制芯片,则可以选用芯片复制机,它无需连接电脑就可以快速大量地复制芯片。本例中使用的编程器为TOP851型,如图2所示。
   
    图2 编程器
    EPROM芯片为紫外线擦除式的只读存贮器,有以下一些型号:2764、27128、27256、27512、27010它们内部是TTL电路,一些为CMOS材料作成的,型号有27c64、27c128等,两种类型的EPROM都可以用于制作启动芯片,只是它的写片电压不一样,TTL的为21V,CMOS的为12V,在写片时请注意选择电压。本例所使用的芯片为27c512,如图3所示。
   
    图3 芯片
    写入EPROM中的内容是不能被修改的,若要删除其内容,必须使用EPROM擦除器擦除芯片内容后,重新写入。芯片在擦除器中受紫外线照射5至10分钟后,内部数据全部变为“1”,也就是说EPROM内的数据已清空,此时的芯片称为空片,编程器只能对空片进行写入操作,所以在写片之前要对有内容的芯片擦除操作。本例使用的擦除器如图4所示。
   
    图4 EPROM擦除器
    2.获得网卡远程启动代码
    ? 有些网卡的驱动盘上提供了相应的启动代码,一般存放在BootRom目录中,文件的扩展名rom或Bin。文件大小一般为8K的整数倍。
    ? 网卡生产厂商的网站上,一般都会提供最新的远程启动代码,例如:RTL系列的网卡在http://www.realtek.com.tw网站中都可以找到。
    ? 以上两种方式可获得的芯片代码都是目前比较流行的无盘网络系统的远程启动代码。若使用非主流型的无盘网络系统,例如在Linux操作系统下BOOTP无盘系统所需的远程启动代码,则很难通过上述方法获得。在Linux上比较广泛使用的一个免费的TCP/IP BOOTPROM的编译软件,它可以从etherboot.sourceforge.net下载源代码,在Linux下编译出大多数网卡的BOOTPROM代码。针对大多数的人不熟习Linux系统,在http://rom-o-matic.net网站上还可以通过web的方式免费定制网卡的远程启动代码。下面我们以定制RTL8139的Bootp远程启动代码为例,说明如何定制远程启动代码。
    ¨ 打开IE浏览器,输入网址:http://rom-o-matic.net进入后可以看到BootRom的版本号。如图5所示。
   
    图 5 Boot Rom版本信息
    在Production Releases列表中的5.0.8、5.0.7、5.0.6等,分别链接不同的etherboot的版本,本例中选择最新新的版本5.0.8。
    ¨ 出现“ROM-o-matic dynamically generates Etherboot ROM images.”设置页面如图6所示。
   
    图6 设置界面
    各选项的含义和选择:
    Choose NIC/ROM type
    此选项为网卡型号的选择项,可根据所使用的网卡进行选择,它所提供的网卡的型号比较多,国内常见的网卡都可以找到的选项,根据本例使用的网卡选择RTL8139。若要查看相的文档,可以单击“here”的链接。
    For custom ROM configuration press
    此选项为定义网卡BOOTPROM的配置,点击“Configure”按钮则,出现“Make configuration selections and then press to save your changes.”如图7所示页面。
   
    图7 ROM选项配置界面
    这个页面可以设置BOOTPROM的一些选项,下面主要介绍几个比较常用的选项。
    ASK_BOOT
    这个选项是设置BOOTPROM启动时是还询问从网络启动还是从本地盘启动(“Boot from Network or from Local?”),默认值为3,即在启动时询问这个问题并等待3秒。如果设为0或者-1则启动时不询问。
    ANS_DEFAULT
    这个选项是设置上面那个问题的默认答案,即当设为不询问或启动时没有选择的情况下是由网络启动还是由本地盘启动。默认的是从网络启动。
    NO_DHCP_SUPPORT
    这个选项是设置是否支持DHCP服务,默认是支持DHCP服务,若制作BOOTP芯片,则此选项要选中,若制作芯片需DHCP则不选中些选项。
    所有设置项选择完毕后,单击“Save Changes”按钮,回到上级的设置页面。
    Choose ROM output format
    为远程启动代码的输出格式的选项
    常用的有两种输出格式:一是Floppy Bootable ROM Image(.lzdsk),如果选择这种格式,就是下载模拟ROM启动的软盘映象文件,这种格式的代码文件可以制作BOOTP启动模拟软盘,在制作BOOTROM或写BIOS前可以用模拟软盘测试ROM代码是否正确,也可以在没有条件制作BOOTROM时用它启动;二是Binary ROM Image(.lzrom),这种格式就是BOOTPROM的二进制代码格式文件,可以用编程器直接写入EPROM中,得到我们所需要的启动芯片。
    在“To generate and download ROM image press:”栏中,单“Get ROM”按钮,出现如图8所示的对话框,系统提示“文件下载”。
   
    图8 代码下载
    单击“保存”按钮,将远程引导代码,保存到相关目录下,便完成了定制芯片代码的操作了。得到的文件名为eb-5[1].0.8-rtl8139.lzrom,大小16KB,因此需要27c128以上容量的EPROM才能完整写入。
    @ 注意:EPROM上标注的容量是按位(Bit)计算的,而文件大小是按字节计算的(Baty)所以16KB的代码文件必须使用27c128或以上容量的芯片。
    3.使用编程器写入代码
    ? 将空片插入编程器的芯片槽中,注意芯片的方向应与编程器一致,一般的编程器上都会有相应的标记。若芯片中有内容,则可以使用擦除器,将内容清空。新购的芯片一般都是空片。
    ? 打开编程器管理界面,如图9所示,在芯片类型栏中,选择“紫外擦除存储器”,根据芯片上标注的型号,在型号下拉列表中选择型号,若列表中没有您的芯片型号,可以选择???,即通用型,本例中选择的是通用型27c512,在列表中双击此型号,即可选中。
   
    图9 编程器界面
    ? 装载芯片远程引导代码,单击“装载”按钮,出现“打开”对话框,找到相关的远程引导代码文件后,单击“打开”按钮,出现文件格式及装入方式对话框,如图10所示,选择BIN的文件格式和全部装入后,单击“确定”按钮。此时在界面的工作区出现相应的代码内容,装载即完成。
   
    图10 代码格式和装入方式选择
    ? 写入芯片,单击“读写”按钮,出现如图11所示界面,烧写芯片一般要经过以下几个步骤:校空、写入和校验。在制作时可以选择组合操作,在组合选择框中将“检查空”、“烧写”和“校对”全部选中后,单击“自动”按钮。系统自动完成上述三个操作后,芯片就制作完成了。
   
    图11 读写芯片操作界面
    ? 测试芯片,将写好的芯片它插到网卡的Boot Rom插槽中,启动工作站,若出现相关的远程启动信息,说明芯片已制作成功。
    ? 有些网卡在出厂默认设置是关闭网卡中的远程引导功能的,或默认设置中的芯片容量与使用的芯片容量不一致,可能导致无盘工作无法正常引导,这时可以用网卡的设置程序(一般在网卡的驱动盘的根目录)设置Remote Boot Enable,使BOOTROM有效。以RTL8139为例简单说明如下:
    在有盘站上运行网卡设置盘中的rest8139.exe程序,按空格键进入操作界面,如图12所示。
   
    图12 网卡设置界面
    在“Main Menu”菜单中有四个选项,其中第一个选项为查看当前配置情况,第二个项为更改设置选项。进入第一个选项,即“View Current Configuration”,可以看到当前的配置列表,如图13所示。
   
    图13 当前配置信息
    若Boot ROM Size项目中为Disable或容量与启动芯片的容量不相同时(注意这里显示的容量为字节,需乘以8后才为芯片上标注的数值),就要进入主菜单中的第二个选项即“Setup New Configuration”中进行设置。设置界面如图14所示。
   
    图14 设置网卡Boot Rom容量
   
    5.3 将网卡的BootRom代码写入主板BIOS
   
    在实际安装无盘网络时,一般我们采用网卡+启动芯片的方式,如果只是为实验一下无盘技术,但又无法找到相应的启动芯片时,且没有专业的编程器时,可以将网卡的启动代码写入到主板的BIOS芯片中,具体方法如下:
    1.注意事项:
    ? 主板的BIOS要一定的容量,有些主板(例MVP3)的BIOS容量为1M Bate也就是128Kb,它的容量较小,除去系统已经使用的空间后,空闭空间只有10多KB,而PXE/RPL启动代码的长度为 52Kb,因此此类较老的主板是无法将原代码写入的。
    ? 不要将网卡启动芯片代码写入BIOS,具体区分为:网卡的启动芯片代码为64KB,而用于写入主板BIOS的代码为:52KB。
    ? 刷新BIOS有一定的危险性,在写BIOS之前先应将原BIOS进行备份,在写入时要防止停电。
   
   
    2.所用文件说明:
    ? cbrom208. execbrom208.exe为AWORD的BIOS工具程序,可以用来分析、操作BIOS文件的工具
    ? awd.exe awd.exe为AWORD主板BIOS刷新程序,在需在纯DOS下运行。
    ? 8139pxe.lom 为RTL8139网卡的启动代码文件,如果你的网卡不是RTL8139则不能使用这个文件,可以使用网卡生产厂商提供的启动代码。
   
    3.具体操作步骤
    ? 将所需文件复制到工作站的硬盘上
    在可以正常启动的工作站(DOS或WINDOWS 9X)上,新建一个目录例如C:\yxz,将前述三个文件复制到这个目录下。
    ? 备份主板BIOS代码
    启动工作站,进入纯DOS状态,在WINDOWS 98下进入纯DOS的方法如下:开机按F8进入开机菜单,选择
    第5项,即“Command prompt only”,请注意,不能进入WINDOWS 98后再进入MS-DOS方式进行刷新操作。
    进入c:\yxz目录执行以下命令:
    AWD /sy /pn biosbf.bin
    (开关参数/sy 的作用是将读出的BIOS代码以文件的形式存放,开关参数/pn 为不进行BIOS刷新操作,biosbf.bin为输出的备份文件名),执行完以上命令后,将生成的文件复制到其它目录、最好是复制到一张质量较好的软盘上,以备不测时可以恢复系统BIOS。
    ? 将启动代码并入biosbf.bin
    此步骤的目的是将原BIOS代码与网卡启动代码合并到一起,为刷新BIOS作好准备。
    执行以下命令:
    cbrom208 biosbf.bin /pci 8139pxe.lom
   
    ? 将已带启动信息的BIOS代码写入主板BIOS芯片中
    在写入之前可以使用cbrom208 biosbf.bin /d命令查看BIOS空间是否足够及启动代码是否合并。写入命令为:
    awd biosbf.bin /py /sn /r
    完毕后,插上网卡,重启系统,按SHIFT+F10即可进入网卡启动设置界面,选择PXE或RPL方式启动,以及是否允许BOOTROM启动等设置。

P 网友评价

答案对您是否有帮助?       是  

     
         

MZDchina | 我知道 | 中国网吧信息网
Copyright @ 1996 - 2016 All Rights Reserved
斯普林 版权所有