一种故障信息处理的方法、装置及存储介质与流程

文档序号:14779455发布日期:2018-06-26 10:53阅读:212来源:国知局

本申请涉及终端与应用技术领域,尤其涉及一种故障信息处理的方法、装置及存储介质。



背景技术:

当手机发生了故障,大多时候都是在用户使用手机的过程中,由用户首先发现手机的某些功能不正常。但是用户很难直接知道手机中发生故障的功能模块所在。所以,当手机发生故障且无法正常使用时,用户一般只能将故障的手机拿去手机售后进行维修。

其中,有些故障是软件上的原因所导致,大多时候,软件上的故障一般可以根据网络上手机厂商提供的方案解决。但由于用户无法定位到故障原因或故障位置,所以,即使将故障手机拿至手机售后,维修人员依然需要对该故障手机进行反复测试、多方检验,才能确定该手机的故障原因或故障位置。可见,这种处理机制增加手机售后的工作量,也给用户带来了极大的不便。



技术实现要素:

本申请提供了一种故障信息处理的方法、装置及存储介质,能够解决现有技术中终端设备故障时无法准确的定位到故障所在的问题。

本申请第一方面提供一种故障信息处理的方法,所述方法应用于终端设备,所述终端设备包括操作系统内核和应用层,所述操作系统内核中包括netlink组件和至少一个驱动组件,所述方法包括:

将所述操作系统内核中的至少一个驱动组件关联到所述netlink组件;

当确定至少一个所述驱动组件故障时,通过所述netlink组件获取来自故障的驱动组件的故障信息;

通过所述netlink组件将所述故障信息发送给所述应用层。

在一些可能的设计中,在将所述操作系统内核中的至少一个驱动组件关联到所述netlink组件之后,所述通过所述netlink组件获取来自故障的驱动组件的故障信息之前,所述方法还包括:

通过所述netlink组件监听网络端口,以监听所述至少一个驱动组件。

在一些可能的设计中,所述通过所述netlink组件获取来自故障的驱动组件的故障信息,包括:

当所述netlink组件在所述网络端口监听到来自所述驱动组件上报的所述故障信息时,通过所述netlink应用组件从所述网络端口获取所述故障信息,并记录所述故障信息。

在一些可能的设计中,所述方法还包括:

在所述终端设备的用户界面显示故障所对应的发生位置和/或发生原因。

在一些可能的设计中,所述操作系统内核通过所述netlink组件与所述应用层通信,所述操作系统内核通过所述netlink组件与所述应用层通信基于客户端/服务端体系架构实现。

本申请第二方面提供一种故障信息处理的装置,具有实现对应于上述第一方面提供的故障信息处理的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。所述装置应用于终端设备,所述终端设备包括操作系统内核和应用层,所述操作系统内核中包括netlink组件和至少一个驱动组件,所述装置包括:

处理模块,用于将所述操作系统内核中的至少一个驱动组件关联到所述netlink组件;

当确定至少一个所述驱动组件故障时,通过所述netlink组件获取来自故障的驱动组件的故障信息;

收发模块,用于通过所述netlink组件将所述故障信息发送给所述应用层。

在一些可能的设计中,所述处理模块还用于:

通过所述netlink组件监听网络端口,以监听所述至少一个驱动组件。

在一些可能的设计中,所述处理模块具体用于:

当所述netlink组件在所述网络端口监听到来自所述驱动组件上报的所述故障信息时,通过所述netlink应用组件从所述网络端口获取所述故障信息,并记录所述故障信息。

在一些可能的设计中,所述装置还包括显示模块,所述显示模块用于:

在所述终端设备的用户界面显示故障所对应的发生位置和/或发生原因。

在一些可能的设计中,所述操作系统内核通过所述netlink组件与所述应用层通信,所述操作系统内核通过所述netlink组件与所述应用层通信基于客户端/服务端体系架构实现。

本申请又一方面提供了一种计算机装置,其包括处理器和存储器,其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行上述第一方面所述的方法。

本申请又一方面提供了一种计算机存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。

相较于现有技术,本申请提供的方案中,通过将所述操作系统内核中的至少一个驱动组件关联到所述netlink组件,实现基于所述netlink组件与外界通信。当确定至少一个所述驱动组件故障时,通过所述netlink组件获取来自故障的驱动组件的故障信息,再通过所述netlink组件将所述故障信息发送给所述应用层。可见,通过采用本方案,能够实现驱动组件与应用层之间的通信,使得应用层中的应用在运行时,能够在第一时间内获知故障的驱动组件的故障信息,便于定位故障的硬件模块,进而提高故障修复的效率以及减少故障修复的工作量。

附图说明

图1为本申请实施例中故障信息处理的方法的流程示意图;

图2为本申请实施例中故障信息收发的流程示意图;

图3为本申请实施例中故障信息处理的装置的一种结构示意图;

图4为本申请实施例中终端设备的一种结构示意图。

具体实施方式

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。

本申请供了一种故障信息处理的方法、装置及存储介质,可用于终端与应用技术领域。以下进行详细说明。

为解决上述技术问题,本申请主要提供以下技术方案:

可以在所有的驱动中都加入netlink的通知机制,利用操作系统内核中的netlink的通知机制,与应用层的应用(英文全称:application,英文简称:app)进行通信,app是指安装在终端设备中面向用户态的应用程序。可选的,为了不对系统造成负担,还可以设置:

只有在硬件模块运行过程中出现故障的情况下,硬件模块的底层驱动程序才发送通知消息给应用层的app,app记录接收到的通知消息。

其中,操作系统内核是指大多数操作系统的核心部分。操作系统内核由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成,操作系统内核可运行进程,并提供进程间的通信。

netlink机制是指一种用户空间和内核之间进行双向数据传输的通信机制,例如实现网络通信的两端,基于网际协议地址和网络端口的方式实现服务端和客户端之间的通信。在一些实施方式中,本申请的netlink机制可以基于服务端/客户端体系架构实现,服务端/客户端体系架构包括一个服务端和至少一个客户端。

其中,服务端是指应用层的app,其负责接收消息,各个硬件模块的驱动程序则是指客户端。服务端和客户端都构设于终端设备内,服务端可与多个客户端进行交互,集中获取和处理收到的消息。

若实现操作系统内核和用户通信,还可以将netlink机制作为进程间通信(英文全称Inter-Process Communication,英文简称:IPC)机制,以实现进程间通信。本申请实施例中,主要是利用netlink机制实现操作系统内核与应用层之间的通信。netlink机制定义了一个框架,可基于该框架实现向任何执行实体传输任何数据,使得操作系统内核不问策略只管实现数据的传递,所有策略由用户实现。

请参照图1,以下对本申请提供一种故障信息处理的方法进行举例说明,所述方法应用于终端设备,所述终端设备包括操作系统内核和应用层,所述操作系统内核中包括netlink组件和至少一个驱动组件,其中驱动组件是指用于驱动硬件模块的驱动程序;所述应用层包括至少一个应用。所述方法主要包括:

101、将所述操作系统内核中的至少一个驱动组件关联到所述netlink组件。

一些实施方式中,可以基于客户端/服务端体系架构实现驱动组件和所述netlink组件的关联,具体来说,可以将驱动组件作为客户端,将应用层的应用作为服务端,并且利用所述netlink组件将所述驱动组件和所述应用关联起来,从而创建服务端/客户端体系架构,使得所述终端设备中的各驱动组件和所述应用可以基于该服务端/客户端体系架构通信。在关联时,可以在操作系统内核中增加操作系统的头文件netlink.h,然后根据需要的netlink协议类型对netlink.h进行修改,以实现增加或修改netlink协议类型。还可以在操作系统内核中定义各类相关函数的调用机制以及函数的返回值等。例如可以定义函数input在驱动组件发送故障信息的进程时被调用,应用接收故障信息的进程同理,不作赘述。

在一些实施方式中,将所述操作系统内核中的至少一个驱动组件关联到所述netlink组件之后,还可以通过所述netlink组件监听网络端口,以监听所述至少一个驱动组件。通过监听,可便于应用层的应用实时获取到来自各故障的驱动组件的故障信息。

102、当确定至少一个所述驱动组件故障时,通过所述netlink组件获取来自故障的驱动组件的故障信息。

在一些实施方式中,获取所述故障信息可通过下述操作实现:

当所述netlink组件在所述网络端口监听到来自所述驱动组件上报的所述故障信息时,通过所述netlink应用组件从所述网络端口获取所述故障信息,并记录所述故障信息。

可选的,在一些实施方式中,本申请不限于仅在驱动组件故障时才去通过所述netlink组件获取来自故障的驱动组件的故障信息,还可以用于其他事件信息的获取,以实现与驱动组件正常的交互。例如收集各驱动组件的运行日志等,具体事件信息的内容本申请不作限定。

103、通过所述netlink组件将所述故障信息发送给所述应用层。

本申请实施例中,通过将所述操作系统内核中的至少一个驱动组件关联到所述netlink组件,实现基于所述netlink组件与外界通信。当确定至少一个所述驱动组件故障时,通过所述netlink组件获取来自故障的驱动组件的故障信息,再通过所述netlink组件将所述故障信息发送给所述应用层。可见,通过采用本方案,能够实现驱动组件与应用层之间的通信,使得应用层中的应用在运行时,能够在第一时间内获知故障的驱动组件的故障信息,便于定位故障的硬件模块,进而提高故障修复的效率以及减少故障修复的工作量。

例如,当某个硬件模块出现故障时,最先发现该硬件模块故障的一般是驱动其工作的驱动组件。由于驱动组件为操作系统内核的一部分,当发现其所驱动的硬件模块不正常时,比如操作某个寄存器失败,或者温度过高,那么该驱动组件就可以很快的通知给应用层的app,相对于现有机制中的利用文件节点来获取故障信息的方式,本申请所提供的通知方案效率很高且准确性高,在将驱动组件关联到netlink组件时所需编译的代码量较少,可复用性较强。

当驱动组件通过所述netlink组件与应用层的app正常交互的场景下,还可以利用这种netlink通信机制传输加密的数据,尤其适用于绕开开源代码,将操作系统内核中的关键算法移植到应用层进行,这样能够轻简终端设备的内存。

可选的,在本申请的一些实施例中,所述方法还包括:

在所述终端设备的用户界面显示故障所对应的发生位置和/或发生原因。便于准确的定位出故障的具体信息,便于有针对性的修复。

可选的,在本申请的一些实施例中,所述操作系统内核通过所述netlink组件与所述应用层通信,所述操作系统内核通过所述netlink组件与所述应用层通信基于客户端/服务端体系架构实现。

其中,客户端/服务端体系架构通过将任务合理分配到客户端和服务端,可以降低系统的通讯开销,需要在终端设备上安装相应的客户端才可进行管理操作。客户端程序主要完成用户的具体的业务,用户的程序主要在客户端;服务器端主要提供数据管理、数据共享、数据及系统维护和并发控制等。

举例来说,如图2所示的终端设备内实现netlink机制的一种架构示意图,多个驱动组件分别关联到netlink组件,且应用层的应用也关联到netlink组件,从而实现驱动组件通过netlink组件与应用层中的应用通信。当其中的驱动组件1所驱动的硬件模块故障后,该驱动组件1生成相应的故障信息,并通过网络端口传送到netlink组件。应用层的应用可通过netlink组件对网络端口进行监听,并从该网络端口获取来自驱动组件1的故障信息。

上述图1和图2所对应的实施例中披露的各项技术特征也同样适用于本申请中的图3和图4所对应的实施例,后续类似之处不再赘述。

以上对本申请中一种故障信息处理的方法进行说明,以下对执行上述故障信息处理的方法的装置进行说明。该装置可以是内置于终端设备的功能模块,也可以是安装了功能模块的终端设备。本申请涉及的终端设备,所述终端设备可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,例如,个人通信业务(英文全称:Personal Communication Service,英文简称:PCS)电话、无绳电话、会话发起协议(SIP)话机、无线本地环路(WirelessLocal Loop,英文简称:WLL)站、个人数字助理(英文全称:Personal DigitalAssistant,英文简称:PDA)、桌上型计算机、笔记本、掌上电脑及云端终端设备等计算设备。所述终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图3和图4所述示意图都仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。

参照图3,所述装置应用于终端设备,所述终端设备包括操作系统内核和应用层,所述操作系统内核中包括netlink组件和至少一个驱动组件,所述装置包括:

处理模块,用于将所述操作系统内核中的至少一个驱动组件关联到所述netlink组件;

当确定至少一个所述驱动组件故障时,通过所述netlink组件获取来自故障的驱动组件的故障信息;

收发模块,用于通过所述netlink组件将所述故障信息发送给所述应用层。

本申请实施例中,所述处理模块通过将所述操作系统内核中的至少一个驱动组件关联到所述netlink组件,实现基于所述netlink组件与外界通信。当确定至少一个所述驱动组件故障时,通过所述netlink组件获取来自故障的驱动组件的故障信息,再由收发模块通过所述netlink组件将所述故障信息发送给所述应用层。可见,通过采用本方案,能够实现驱动组件与应用层之间的通信,使得应用层中的应用在运行时,能够在第一时间内获知故障的驱动组件的故障信息,便于定位故障的硬件模块,进而提高故障修复的效率以及减少故障修复的工作量。

可选的,在本申请的一些实施例中,所述处理模块还用于:

通过所述netlink组件监听网络端口,以监听所述至少一个驱动组件。

在一些可能的设计中,所述处理模块具体用于:

当所述netlink组件在所述网络端口监听到来自所述驱动组件上报的所述故障信息时,通过所述netlink应用组件从所述网络端口获取所述故障信息,并记录所述故障信息。

可选的,在本申请的一些实施例中,所述装置还包括显示模块,所述显示模块用于:

在所述终端设备的用户界面显示故障所对应的发生位置和/或发生原因。

可选的,在本申请的一些实施例中,所述操作系统内核通过所述netlink组件与所述应用层通信,所述操作系统内核通过所述netlink组件与所述应用层通信基于客户端/服务端体系架构实现。

下面从硬件角度对本申请实施例的终端设备的结构进行介绍,请参阅图4,图4是本申请实施例的终端设备的一个实施例图。该实施例的终端设备包括:处理器401、存储器402、收发器403、以及存储在所述存储器402中并可在所述处理器上运行的计算机程序,例如包括上述执行故障信息处理的方法的程序。其中,处理器401用于执行图1或图2中所示的步骤,收发器403可用于终端设备内部各功能模块之间的通讯,以及用于终端设备与其他设备或者网络进行通讯。或者,所述处理器401、收发器403、以及存储器402执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,

需要说明的是,在本申请图3所对应的实施例中的收发模块对应的实体设备可以为输入输出单元,处理模块对应的实体设备可以为处理器。图3所示的装置均可以具有如图4所示的结构,当其中一种装置具有如图4所示的结构时,图4中的处理器和输入输出单元实现前述对应该装置的装置实施例提供的处理模块和输入输出单元相同或相似的功能,图4中的存储器存储处理器执行上述故障信息处理的方法时需要调用的程序代码。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述终端设备中的执行过程。例如,所述计算机程序可以被分割成收发模块和处理模块,各模块具体功能如下:收发模块主要用于终端设备的收发功能,处理模块主要用于对终端设备的功能和逻辑进行处理。

所称处理器可以是中央处理单元(英文全称:Central Processing Unit,英文简称:CPU),还可以是其他通用处理器、数字信号处理器(英文全称:Digital Signal Processor,英文简称:DSP)、专用集成电路(英文全称:Application Specific Integrated Circuit,英文简称:ASIC)、现成可编程门阵列(英文全称:Field-Programmable Gate Array,英文简称:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(英文全称:Smart Media Card,英文简称:SMC),安全数字(英文全称:Secure Digital,英文简称:SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所述终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(英文全称:Read-Only Memory,英文简称:ROM)、随机存取存储器(英文全称:Random Access Memory,英文简称:RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

以上对本申请所提供的技术方案进行了详细介绍,本申请中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1