本发明涉及计算机信息监控技术领域,具体涉及一种主板故障主动检测的方法。
背景技术:
随着信息领域国产化程度日益提高,国产处理器及操作系统越来越受到政府及军工企业的青睐,飞腾1500a处理器是我国国防科技大学自主研制的新一代处理器,与其他国产处理器相比其性能较高、稳定性较强,越来越多的国产服务器及台式机采用了该处理器。与飞腾处理器相适配的操作系统是银河麒麟操作系统,该系统是开源操作系统,对于政府及军工企业来讲,业务系统及其配套硬件环境的可靠性尤为重要,需要设计一种主板故障主动检测的方法对主板各模块进行检测。
技术实现要素:
为了克服上述现有技术中的不足,本发明提供一种主板故障主动检测的方法,以解决上述技术问题。
本发明的技术方案是:
一种主板故障主动检测的方法,包括如下步骤:
主机发送命令从pci总线获取设备信息;
读取各设备对应的驱动信息;
根据获取的驱动信息判断对应的pci设备是否存在故障。
优选地,该方法还包括:
若根据获取的驱动信息判断对应的pci设备状态正常,进行网络设备的检测。
优选地,网络设备的检测包括如下步骤:
mii-tool工具对网络设备的连接状态进行验证;
通过获取mii-tool的返回结果判定当前网络链路是否处于正常状态。
优选地,该方法还包括:
对can设备进行检测。
优选地,对can设备进行检测包括如下步骤:
检测/dev/ttyubu0设备节点;
若/dev/ttyubu0设备节点存在,进行数据收发测试;
若能正确接收指定的发送数据,则可判定该can设备运行正常,否则为通信故障。
优选地,步骤根据获取的驱动信息判断对应的pci设备是否存在故障,还包括:若根据获取的驱动信息判断对应的pci设备状态不正常,写入故障代码。
优选地,步骤通过获取mii-tool的返回结果判定当前网络链路是否处于正常状态包括:
若判定当前网络链路处于正常状态,检测结束,否则,写入故障代码。
优选地,步骤若能正确接收指定的发送数据,则可判定该can设备运行正常,否则为通信故障中,若判定通信故障,写入故障代码。
优选地,该方法还包括:
进行设备检测前预先定义故障码。
优选地,预先定义故障码包括:
设置故障码为4字节数据,故障字节从低到高,每种故障类型使用两个bit位。
对于监测的结果,采用预先定义好的故障码来表示。故障码以4字节数据表示,故障字节从低到高,每种故障类型使用两个bit位,两个bit位为00时表示正常,01时表示故障,11表示该设备不支持该类型的故障检测。
通过分析故障代码主动对硬件环境出现故障问题进行定位并给出告警。
从以上技术方案可以看出,本发明具有以下优点:可实时地对系统或设备内部模块进行监测,在系统出现故障时能第一时间作出反应,给出报警。整个故障诊断模块可作为单独模块存在,其实现过程不依赖外界设备,仅依靠程序自身对主板状态进行监测。在国产操作系统上实现对主板各模块信息的实时监控,可保证系统健康稳定的运行,并在硬件环境出现故障时能够主动对故障问题进行定位并给出告警。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1为一种主板故障主动检测的方法中pci设备检测流程图;
图2为网络设备检测流程图;
图3为can设备检测流程图。
具体实施方式
本发明提供一种主板故障主动检测的方法,可实时地对系统或设备内部模块进行监测,在系统出现故障时能第一时间作出反应,给出报警。整个故障诊断模块可作为单独模块存在,其实现过程不依赖外界设备,仅依靠程序自身对主板状态进行监测。在国产操作系统上实现对主板各模块信息的实时监控,可保证系统健康稳定的运行,并在硬件环境出现故障时能够主动对故障问题进行定位并给出告警。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明可通过软件形式对飞腾1500a处理器主板上不同的设备及模块,采用不同的监测手段进行故障主动检测。对于常见pci接口设备,如显卡、声卡等设备,可从pci总线获取设备当前状态信息,实时监控设备的运行状态;对于业务通信模块,如can口、串口、网口等,在验证设备状态正常的前提下,还需要对其通信能力进行监控,以保证模块处于最佳的工作状态。对于监测的结果,通过相应的故障诊断目标码或以太网报文以统一定义的故障码形式进行上报。
实施例一
如图1-图3所示,本发明实施例提供一种主板故障主动检测的方法,对pci设备、网络设备和can通信设备进行检测,包括如下步骤:
s1:对pci设备进行检测;
主机发送命令从pci总线获取设备信息,同时读取各设备对应的驱动信息,若设备正确挂载到pci总线上,则通过此操作即可获取其当前的状态,通过判断返回的状态便可确认对应设备是否存在故障。主机发送命令从pci总线获取设备信息;
s2:对网络设备进行检测;
本步骤中,除了采用s1中提到的方式验证设备的存在状态后,还需要对其通信链路进行验证,系统下mii-tool工具可对网卡设备的连接状态进行验证,通过获取mii-tool的结果可判定当前网络链路是否处于正常状态。
s3:对can通信设备进行检测;
根据其接入主板的不同方式验证设备状态。如采用usb转uart再转can总线的方式接入系统,则该设备在系统下会创建/dev/ttyubu0设备节点,通过判断该节点状态即可确认设备状态。之后对于所选定的can通道进行收发数据测试,若能正确接收指定的发送数据,则可判定该设备运行正常,否则为通信故障。
s4:通过分析检测结果对故障位置进行定位;
采用预先定义好的故障码来表示。故障码以4字节数据表示,故障字节从低到高,每种故障类型使用两个bit位,两个bit位为00时表示正常,01时表示故障,11表示该设备不支持该类型的故障检测。
实施例二
本发明实施例提供一种主板故障主动检测的方法,包括如下步骤:
s1:对pci设备进行检测;
主机发送命令从pci总线获取设备信息,同时读取各设备对应的驱动信息,若设备正确挂载到pci总线上,则通过此操作即可获取其当前的状态,通过判断返回的状态便可确认对应设备是否存在故障。主机发送命令从pci总线获取设备信息;
s2:对网络设备进行检测;
本步骤中,除了采用s1中提到的方式验证设备的存在状态后,还需要对其通信链路进行验证,系统下mii-tool工具可对网卡设备的连接状态进行验证,通过获取mii-tool的结果可判定当前网络链路是否处于正常状态。
s3:对can通信设备进行检测;
根据其接入主板的不同方式验证设备状态。如采用usb转uart再转can总线的方式接入系统,则该设备在系统下会创建/dev/ttyubu0设备节点,通过判断该节点状态即可确认设备状态。之后对于所选定的can通道进行收发数据测试,若能正确接收指定的发送数据,则可判定该设备运行正常,否则为通信故障。
本步骤中,收发数据测试的具体步骤包括:
s31:测试设备获取到测试数据的信息指令后将测试数据信息配置成测试码;
s32:测试设备发送端通过can通道发送测试码到接收端;
s33:接收端接收所述发送端发送的所述测试码
s34:将接收端接收到的测试码与预设的测试码进行比对校验,并储存比对校验,判断通信是否正常;若测试码校验不正常,则判断通信故障。
收发数据测试的过程还包括;
若发送端在设定时间内没有收到接收端的返回信息,则判断设备can通道通信故障。
s4:通过分析检测结果对故障位置进行定位;
采用预先定义好的故障码来表示。故障码以4字节数据表示,故障字节从低到高,每种故障类型使用两个bit位,两个bit位为00时表示正常,01时表示故障,11表示该设备不支持该类型的故障检测。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。