一种AP设备的异常重启原因检测方法及装置与流程

文档序号:19615581发布日期:2020-01-07 08:06阅读:642来源:国知局
一种AP设备的异常重启原因检测方法及装置与流程

本发明涉及无线网络领域,特别是涉及一种ap设备的异常重启原因检测方法及装置。



背景技术:

wlan(wirelesslocalareanetworks,无线局域网)提供了一种局域网的无线连接服务,能在较小的范围内提供高速的无线数据接入,是目前it(informationtechnology,信息技术)行业比较热门的技术之一,也是流行的无线接入方式。

和传动的有线接入方式相比,无线局域网让网络的使用更自由,彻底摆脱了线缆和端口位置的束缚,而且无线局域网具有便于携带,以于移动的优点,免去或减少了繁杂的网络布线,只需要安放一个或多个ap(accesspoint,接入点)设备就可以建立覆盖整个建筑或地区的局域网络。

ap设备是无线局域网的重要组成设备,它是一个无线收发设备,可以将从有线网络(例如internet)接收到的数据转换为无线信号发送,将接收到的无线信号转换成数据并转发到有线网络。wlan技术所构建的无线局域网,作为有线网络的补充,摆脱了以太网的束缚,给终端用户提供了方便快捷的网络接入方式,因此,无线网络得到了越来越多的部署,大量的ap设备被安装和使用。

ap设备在使用过程中有时候会出现重启的情况,然而对于重启的原因,目前还没有一个比较明确的定位方案。虽然,目前有些ap设备出现了记录日志的功能模块,例如,当设备内核异常重启时会记录日志,但现有ap设备记录系统崩溃日志功能都比较单一,根据其记录的日志无法详细地区分重启的原因,这就影响了版本的稳定性测试以及版本发布,从而影响后期版本的迭代以及稳定性。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种ap设备的异常重启原因检测方法及装置,其可以确定各ap设备重启的具体原因,大大提高了ap设备故障问题定位的效率和准确性,保障了版本后续迭代的稳定性。

为达上述目的,本发明提出一种ap设备的异常重启原因检测方法,包括如下步骤:

步骤一,在该ap设备重启前,于预留内存写入该次重启原因对应的重启原因标志及重启日志;

步骤二,于该ap设备重启时,映射获得该预留内存的虚拟地址;

步骤三,备份该预留内存中的重启日志信息,并实时记录当前的串口打印信息;

步骤四,读取该预留内存中的重启原因标志及重启日志并予以保存。

进一步地,该预留内存从高到低依次包括:

a区,用于保存重启的原因标志;

b区,映射给该ap设备系统的环形缓冲区,用于实时保存当前的串口打印信息;

c区,用于对b区的备份。

进一步地,于c区后,该预留内存还包括d区,用于保存内核错误发生时的串口详细日志信息。

进一步地,该预留内存为该ap设备的一段高端内存。

进一步地,于步骤四中,在该预留内存中的重启原因标志保存后,把该预留内存的a区标志重新赋值为默认值。

进一步地,于步骤二中,通过ioremap函数将该预留内存的物理地址映射到该虚拟地址。

进一步地,于步骤四中,通过读proc文件系统读取该预留内存中的重启原因标志及重启日志,并保存至tmp目录文件。

为达到上述目的,本发明还提供一种ap设备的异常重启原因检测装置,包括:

重启前处理单元,在该ap设备重启前,于预留内存写入该次重启原因对应的重启原因标志及重启日志;

地址映射单元,于该ap设备重启时,映射获得该预留内存的虚拟地址;

日志信息备份及记录单元,用于备份该预留内存中的重启日志信息,并实时记录当前的串口打印信息;

重启原因获取单元,用于读取该预留内存中的重启原因标志及重启日志并予以保存。

进一步地,该预留内存从高到低依次包括:

a区,用于保存重启的原因标志;

b区,映射给该ap设备系统的环形缓冲区,用于实时保存当前的串口打印信息;

c区,用于对b区的备份。

进一步地,于c区后,该预留内存还包括d区,用于保存内核错误发生时的串口详细日志信息。

与现有技术相比,本发明一种ap设备的异常重启原因检测方法及装置通过采用预留高端内存的方式,并将预留的高端内存分为不同的区域,于预留的高端内存保存重启原因,并映射系统环形缓冲区,备份重启日志至该预留的高端内存,最后通过读文件系统读取重启原因及重启日志保存至存储设备,本发明不仅可以分析重启的日志,还可以确定设备重启的具体原因,大大提高了故障问题定位的效率和准确性,保障了版本后续迭代的稳定性。

附图说明

图1为本发明一种ap设备的异常重启原因检测方法的步骤流程图;

图2为本发明具体实施例中预留高端内存的分区示意图;

图3为本发明具体实施例图2中a区的几种重启原因标志的具体意义示意图

图4为本发明具体实施例中几种重启原因标志的产生示意图;

图5为本发明具体实施例中系统启动后的流程示意图;

图6为本发明一种ap设备的异常重启原因检测装置的结构示意图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

图1为本发明一种ap设备的异常重启原因检测方法的步骤流程图。如图1所示,本发明一种ap设备的异常重启原因检测方法,包括如下步骤:

步骤101,在该ap设备的系统重启前,于该ap设备的预留内存写入该次重启原因对应的重启原因标志及重启日志。

在本发明中,系统预留了一段内存,该预留内存用来存储重启原因的标志位以及存储重启日志,系统在不断电的情况下重启后,该预留内存里面的内容仍旧会保留(由于电容的作用,单板在断电间隔时间很短的情况下,内容也会保留),所以可以使用该预留内存来保存重启前的log日志,并根据重启日志做进一步分析和处理。

在本发明具体实施例中,系统预留了1m的高端内存,即,例如128m的设备内存,系统保留了127-128之间的1m内存作为预留内存,并分为下面几个区间,如图2所示:

a区:大小为4k,用于保存重启的原因标志;

b区:大小为128k,映射给linux的ringbuffer(环形缓冲区),用于实时保存当前的串口打印信息;

c区:大小为128k,用于b区的备份,由于在系统重启后,b区的128k空间会被输出的串口打印信息(printk函数输出的内容)覆盖,因此,需先备份重启前的串口日志信息(即b区的内容)至c区;

d区:大小为764k,用于保存kernelpanic(内核错误)发生时的串口详细日志信息,也就是说,当重启原因为内核错误时,不仅将重启日志写入b区,而且于d区保存更为详细的串口日志信息,以便后续的分析处理。

图3为本发明具体实施例图2中a区的几种重启原因标志的具体意义示意图。在本发明具体实施例中,重启原因标志使用的是对应字母的anscii码,重启的原因大致可以分为下面几种情况:

1)reb,表示reboot命令重启,其重启原因标志为0x726562,其中,0x72,0x65,0x62分别对应字母r,e,b;

2)pan,表示内核错误(panic)重启,0x70616e,其中,0x70,0x61,0x6e分别对应字母p,a,n;

3)dog,表示看门狗重启,其重启原因标志为0x646f67,其中,0x64,0x6f,0x67分别对应字母d,o,g;

4)非上述3种数值,表示系统是上电启动。

图4为本发明具体实施例中几种重启原因标志的产生示意图。对于重启原因reb,当内核接收到reboot命令字:linux_reboot_cmd_restart时于预留内存的a区写入重启原因flag:0x726562;当出现内核错误(panic)时,在内核panic函数中增加处理,于预留内存的a区写入重启原因:0x70616e;重启原因标志默认为看门狗重启(0x646f67),即系统启动过程中会先查询该重启原因标志,保存后重新赋默认值0x646f67给该标志;非以上原因则均认为是上电启动。

步骤102,该ap设备系统重启时,映射获得该预留内存的虚拟地址。

在本发明具体实施例中,上述预留的高端内存的1m空间在系统启动时,会预先保留,然后通过ioremap函数将该预留的高端内存的物理地址映射到虚拟地址,保留该虚拟地址,后续相关操作则是围绕该虚拟地址进行。

步骤103,备份该预留内存中重启日志信息,实时记录当前的串口打印信息。在本发明具体实施例中,系统重启前,预留内存的b区保存的是重启前的重启日志信息,由于系统重启后,b区的128k空间会被printk函数输出的内容覆盖,因此,需将重启前的串口日志信息(即重启日志)备份至c区,b区则会实时记录当前的串口打印信息(即printk函数输出的内容)。

步骤104,读取该预留内存中的重启原因标志及重启日志并予以保存。在本发明具体实施例中,系统启动过程中会建立2个proc文件节点:/proc/kmsg_reboot_log;/proc/kmsg_reboot_reason,分别对应重启日志和重启原因,系统在启动过程中会去检查a区的标志位,判断出重启原因之后保存该重启原因至tmp目录文件(/tmp/log_reboot_reason)里面,然后把预留的高端内存的a区标志重新赋值为0x646f67(默认为看门狗的flag);同时保存重启日志至tmp目录文件:/tmp/log_reboot_message。

图5为本发明具体实施例中系统启动后的流程示意图。以下将通过一具体实施例进一步说明本发明:当系统启动时,uboot下预留1m高端内存,内核引导并启动内核(start_kernel);内核预留高端1m内存;获取预留的高端内存的物理地址;利用ioremap函数映射出预留的高端内存,获取虚拟地址并保存;把预留的高端内存中b区的log信息备份到c区;把预留的高端内存中的b区内存空间直接赋值映射给linux的环形缓冲区(ringbuffer);预留的高端内存的b实时记录当前的printk串口打印信息;建立proc文件节点;读取预留的高端内存的重启原因标志以及重启日志,打印到串口,同时保存到tmp目录,后续可以选择将日志上传至云端,以便于云端分析。

经过本发明,可以获得ap设备重启的原因,并保存了设备重启之前的日志信息,有助于对重启原因的分析处理,大大提高了版本迭代的稳定性。

图6为本发明一种ap设备的异常重启原因检测装置的结构示意图。如图6所示,本发明一种ap设备的异常重启原因检测装置,包括:重启前处理单元601、地址映射单元602、日志信息备份及记录单元603以及重启原因获取单元604。

重启前处理单元601,用于在触发系统重启前,于预留内存写入该次重启原因对应的重启原因标志及重启日志。

在本发明中,系统预留了一段内存,该预留内存用来存储重启原因的标志位以及存储重启日志。在本发明具体实施例中,系统预留了1m的高端内存,即,例如128m的设备内存,系统保留了127-128之间的1m内存作为预留内存,并依次分为下面几个区间:

a区:大小为4k,用于保存重启的原因标志;

b区:大小为128k,映射给linux的ringbuffer(环形缓冲区),用于实时保存当前的串口打印信息;

c区:大小为128k,用于b区的备份。由于在系统重启后,b区的128k空间会被当前输出的串口打印信息(printk函数输出的内容)覆盖,因此,需先备份重启前的串口日志信息(即b区的内容)至c区;

d区:大小为764k,用于保存kernelpanic(内核错误)发生时的串口详细日志信息,也就是说,当重启原因为内核错误时,不仅将重启日志写入b区,而且于d区保存更为详细的串口日志信息,以便后续的分析处理。

在本发明具体实施例中,重启原因标志使用的是对应字母的anscii码,重启的原因大致可以分为下面几种情况:

1)reb,表示reboot命令重启,对应的重启原因标志为0x726562,其中,0x72,0x65,0x62分别对应字母r,e,b。当内核接收到reboot命令字:linux_reboot_cmd_restart时于预留内存的a区写入重启原因标志:0x726562;

2)pan,表示内核错误(panic)重启,对应的重启原因标志为0x70616e,其中,0x70,0x61,0x6e分别对应字母p,a,n。当出现内核错误重启时,在内核panic函数中增加处理,于预留内存的a区写入重启原因:0x70616e;

3)dog,表示看门狗重启,对应的重启原因标志为0x646f67,其中,0x64,0x6f,0x67分别对应字母d,o,g。a区的重启原因标志默认为看门狗重启(0x646f67),即系统启动过程中会先查询重启原因标志,保存后重新赋默认值0x646f67给该标志。

4)非上述3种数值,则表示系统是上电启动。

地址映射单元602,于系统启动时,映射获得该预留内存的虚拟地址。

在本发明具体实施例中,高端内存的1m空间在系统启动时会预先保留,地址映射单元602会利用ioremap函数将该预留的高端内存的物理地址映射到虚拟地址,保留该虚拟地址。

日志信息备份及记录单元603,用于备份该预留内存中的重启日志信息,并实时记录当前的串口打印信息至该预留内存。在本发明具体实施例中,系统重启前,预留内存的b区保存的是重启前的重启日志信息,由于系统重启后,b区的128k空间会被printk函数输出的内容覆盖,因此,日志信息备份及记录单元603需将重启前b区的串口日志信息备份至c区,并实时记录当前的串口打印信息(即printk函数输出的内容)至b区。

重启原因获取单元604,用于读取该预留内存中的重启原因标志及重启日志并予以保存。在本发明具体实施例中,系统启动过程中重启原因获取单元704会建立2个proc文件节点:/proc/kmsg_reboot_log;/proc/kmsg_reboot_reason,分别对应重启日志和重启原因,在启动过程中重启原因获取单元604会去检查预留的高端内存的a区的标志位,判断出重启原因之后保存该重启原因至tmp目录文件(/tmp/log_reboot_reason),然后把预留的高端内存的a区标志位重新赋值为0x646f67(默认为看门狗的flag),同时重启原因获取单元604会读取该预留的高端内存的重启日志,并将重启日志保存至tmp目录文件:/tmp/log_reboot_message。

综上所述,本发明一种ap设备的异常重启原因检测方法及装置通过采用预留高端内存的方式,并将预留的高端内存分为不同的区域,于预留的高端内存保存重启原因,并映射系统环形缓冲区,备份重启日志至该预留的高端内存,最后通过读文件系统读取重启原因及重启日志保存至存储设备,本发明不仅可以分析重启的日志,还可以确定设备重启的具体原因,大大提高了故障问题定位的效率和准确性,保障了版本后续迭代的稳定性。

任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

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