漂亮企业网站源码,网页制作模板素材库,广州创意设计公司,咨询公司属于什么行业目录 一、Dying Gasp信号1.1 概念1.2 实现原理 二、pstore 功能2.1 概念2.2 实现原理 三、openwrt中开启pstore功能3.1 软硬件参数3.2 各文件修改3.2.1 defconfig3.2.2 dts(ipq9574-default-memory.dtsi)3.2.3 fs/pstore/ram.c 四、测试4.1 挂载4.2 触发命令和效果 参考资料 ADSL的Dying gasp作用 Linux pstore 实现自动“抓捕”内核崩溃日志 Android7.1 RK3399 使用 ramoops 机制查看开机 Kernel Log Pstore 的一些记录 pstore 工具配置及使用 pstore The test I have done to pstore/blk
一、Dying Gasp信号
1.1 概念
Dying Gasp临终之息是一种通信技术术语主要用于宽带通信如DSL数字用户线路中。当通信设备如DSL调制解调器遇到电源中断或故障时Dying Gasp信号被发送出去以通知服务提供商关于这个问题。这个信号可以视为设备的最后一次尝试表明其即将失去连接或停止工作。
Dying Gasp信号的目的是允许网络运营商和服务提供商快速识别问题从而更有效地处理故障和提高用户满意度。这个信号有助于避免长时间的故障检测和定位过程加速恢复服务。
通常Dying Gasp信号在以下情况下触发 电源中断例如在电力故障、设备过热或设备故障等情况下设备可能会突然关闭发送Dying Gasp信号。 硬件故障例如当设备内部硬件出现故障如电源供应器或其他关键组件损坏时设备可能会发送Dying Gasp信号。
1.2 实现原理
芯片厂商在设计芯片的时候会设计一个Dying gasp 性能模块在芯片内。此模块通过监测外部输入电压来实现Dying gasp功能。 因为为使得此功能能正常使用的前提是芯片必须还能正常工作并且要向头端发送一定时间长度的信号所以在论坛定义的Dying gasp信号有效时间内供芯片正常工作的各种电源的电压不能小于此芯片规格书所描述的最小工作电压。 也就是说监测点开始启动的电压与芯片各工作电压之差不能小于法定Dying gasp信号时间长度。 Dying Gasp顾名思义 - “死前喘口气”利用最后存储的一点电能让CPE把最后的状态信息发送出去。 包括两个部分的电路 1、 大电容储能当外部输入电源掉电时存储在大电容中的电能释放能量供整个核心电路再工作需要的喘口气的时间一般几个ms。电路很简单 - 二极管 大电容(电解的容量取决于电路板的功耗以及能够正常整流稳压的电压范围) 电压比较器。 2 、ADSL的主芯片有一个输入管脚检测电压比较器的输出电平一旦触发就可以发出中断信号让系统进入“留遗嘱”状态。
二、pstore 功能
2.1 概念 pstore是persistent storage的缩写。内核发生异常时如果能将日志等信息保存下来不丢失那么就可以通过这些信息来定位问题。 不同的平台可以提供的存储位置不同例如有些平台支持硬盘有些不支持。除了平台差异异常类型也决定了在发生异常时该存储位置是否还可用。 pstore 的目标是提供一套通用的接口用来存储异常信息。pstore以文件系统的形式提供用户空间接口可以通过mount命令挂载到指定目录下边如xxx\pstore那么保存的信息将以文件的形式出现在该目录下可以使用文件读操作获取调试信息通过删除操作清除调试信息。 pstore 在内核中的开关是 CONFIG_PSTOREpstore 提供的是一套可扩展的机制提供如下类型 PSTORE_TYPE_DMESG, 表示内核日志 PSTORE_TYPE_MCE, 表示硬件错误 PSTORE_TYPE_CONSOLE, 表示控制台输出,所有内核信息。 PSTORE_TYPE_FTRACE, 表示函数调用序列, ftrace 信息。 ramoops 指的是采用 ram 保存 oops 信息的一个功能这个功能从 3.10.40 开始采用 pstore 机制来实现内核中的开关控制 PSTORE_PMSG用户空间信息/dev/pmsg0pmsg-ramoops- PSTORE_CONSOLE控制台输出所有内核信息console-ramoops- PSTORE_FTRACE函数调用序列, ftrace 信息。 PSTORE_RAM panic/oops 信息 2.2 实现原理
pstore是Linux内核中的一个功能它允许在系统崩溃、重启或关机后保存和检查内核日志和其他相关信息。以下是pstore功能的一些基本实现原理 持久存储pstore使用持久存储例如NVRAM非易失性随机存取内存或者保留区域例如RAM的特定区域来存储信息。这些存储区域在系统重启或关机后不会被清除。 日志和崩溃转储当系统崩溃或者由于某些原因内核需要保存状态信息时会将这些信息例如panic信息oops信息console日志等保存到pstore中。 内核接口内核提供了一套接口pstore API允许内核的其他部分将信息写入到pstore中。 用户空间访问在系统重启后用户空间的程序例如systemd-journaldkdump等可以通过文件系统接口例如/sys/fs/pstore来访问pstore中的信息以进行进一步的分析和处理。
三、openwrt中开启pstore功能
3.1 软硬件参数
openwrt版本19.07但是很多软件包都进行了升级这个影响不大。芯片是高通ipq9574比较新的芯片内核版本5.4。大致了解一下开整。
root405BE:/# ubus call system board
{kernel: 5.4.164,hostname: *******,model: ****/REV0,board_name: qcom,ipq9574*****,release: {distribution: OpenWrt,version: 19.07-SNAPSHOT,revision: r0-6ff4ad7,target: ipq95xx/generic,description: OpenWrt 19.07-SNAPSHOT r0-6ff4ad7}
}
3.2 各文件修改
3.2.1 defconfig
新增下列config配置
CONFIG_PSTOREy
# CONFIG_PSTORE_DEFLATE_COMPRESS is not set
# CONFIG_PSTORE_LZO_COMPRESS is not set
# CONFIG_PSTORE_LZ4_COMPRESS is not set
# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
# CONFIG_PSTORE_842_COMPRESS is not set
# CONFIG_PSTORE_ZSTD_COMPRESS is not set
CONFIG_PSTORE_CONSOLEy
CONFIG_PSTORE_PMSGy
CONFIG_PSTORE_RAMy注释若存储空间比较有限可以将pstore的内容压缩后再保存到backend设备上相应的压缩算法可以通过配置选项CONFIG_PSTORE_COMPRESS_DEFAULT或模块参数compress指定。上述注释掉的内容就是相关压缩算法这里暂时不用。
3.2.2 dts(ipq9574-default-memory.dtsi)
高通提供此文件直接新增就行文件中有内存信息。 /* Default Profile* * | | | |* | Region | Start Offset | Size |* | | | |* -----------------------------------------------* | | | |* | | | |* | | | |* | | | |* | Linux | 0x42000000 | 123MB |* | | | |* | | | |* | | | |* -----------------------------------------------* | | | |* | | | |* | TZ App | 0x49B00000 | 6MB |* | | | |* | | | |* -----------------------------------------------* | | | |* | uboot | 0x4A100000 | 4MB |* | | | |* -----------------------------------------------* | SBL | 0x4A500000 | 1MB |* -----------------------------------------------* | | | |* | TZHYP | 0x4A600000 | 4MB |* | | | |* -----------------------------------------------* | smem | 0x4AA00000 | 1MB |* -----------------------------------------------* | | | |* | | | |* | WLAN | | |* | Q6 | 0x4AB00000 | 43MB |* | | | |* | | | |* -----------------------------------------------* | M3 Dump| 0x4D600000 | 1MB |* -----------------------------------------------* | WLAN | | |* | Q6 ETR | 0x4D700000 | 1MB |* | Region | | |* -----------------------------------------------* | caldb | 0x4D800000 | 5MB |* -----------------------------------------------* | | | |* | Pine0 | 0x4DD00000 | 53MB |* | | | |* -----------------------------------------------* | | | |* | Pine1 | 0x51200000 | 53MB |* | | | |* -----------------------------------------------* | | | |* | MHI0 | 0x54700000 | 9MB |* | | | |* -----------------------------------------------* | | | |* | MHI1 | 0x55000000 | 9MB |* | | | |* * | |* | |* | |* | Rest of memory for Linux |* | |* | |* | |* */使用此命令查看到板子里内存情况
# cat proc/iomem查看上述dtsi文件55000000 ~ 55900000 已经使用。 55900000-7fffffff可以使用所以可以从55900000开始配置一段内存进行使用。 rampoos_ram: ramoops_ram55900000 {compatible ramoops_ram;reg 0x0 0x55900000 0x0 0x00140000;};/*这是一个名为 ramoops_ram55900000的节点
这个节点相关的硬件设备是一个RAM-based Oops/Panic logger它记录内核panic和oops的消息。
名称中的55900000表示这个设备在物理地址空间中的起始地址。下面是字段的详细解释
compatible ramoops_ram;: 这个属性描述了硬件设备的类型或模型。
在这里它的值是 ramoops_ram表示这是一个RAM-based Oops/Panic logger。reg 0x0 0x55900000 0x0 0x00140000;: reg属性通常用于描述设备在物理内存中的位置和大小。
在这里这个设备的起始地址是0x55900000大小为0x001400001.3125MB。
第一个0x0和第三个0x0通常表示地址空间或者偏移量在这个例子中
它们表示该设备是在主地址空间中定义的没有偏移。
*/3.2.3 fs/pstore/ram.c
-static ulong ramoops_console_size MIN_MEM_SIZE;
static ulong ramoops_console_size 256*1024UL;-static unsigned long long mem_address;
static unsigned long long mem_address 0x55900000;- static ulong mem_size;static ulong mem_size0x100000;四、测试
4.1 挂载
上述修改完成后可以进行编译固件烧录成功后直接使用以下命令进行挂载。
mount -t pstore pstore /sys/fs/pstore4.2 触发命令和效果
# echo c /proc/sysrq-trigger 使用此命令可以触发崩溃重启生成console-ramoops-0和dmesg-ramoops-0两个文件。 内容大致如下dmesg-ramoops-0保存了崩溃时的一些打印。 console-ramoops-0中书崩溃重启之前控制台的打印信息。
注意只有触发内核崩溃才会有两个文件生成如果是输入命令重启、开门狗重启、poweroff或者kill触发的重启都只会生成 console-ramoops-0的重启文件。当然如果是直接断电重启那么就没有文件生成。 文章转载自: http://www.morning.yxlpj.cn.gov.cn.yxlpj.cn http://www.morning.mwpcp.cn.gov.cn.mwpcp.cn http://www.morning.grfhd.cn.gov.cn.grfhd.cn http://www.morning.wtyqs.cn.gov.cn.wtyqs.cn http://www.morning.zxdhp.cn.gov.cn.zxdhp.cn http://www.morning.gbkkt.cn.gov.cn.gbkkt.cn http://www.morning.fkrzx.cn.gov.cn.fkrzx.cn http://www.morning.fkmyq.cn.gov.cn.fkmyq.cn http://www.morning.lcdtb.cn.gov.cn.lcdtb.cn http://www.morning.xkqjw.cn.gov.cn.xkqjw.cn http://www.morning.yrgb.cn.gov.cn.yrgb.cn http://www.morning.pbzgj.cn.gov.cn.pbzgj.cn http://www.morning.trqzk.cn.gov.cn.trqzk.cn http://www.morning.hcwlq.cn.gov.cn.hcwlq.cn http://www.morning.mnbgx.cn.gov.cn.mnbgx.cn http://www.morning.ljhnn.cn.gov.cn.ljhnn.cn http://www.morning.hjrjr.cn.gov.cn.hjrjr.cn http://www.morning.kwxr.cn.gov.cn.kwxr.cn http://www.morning.qwbht.cn.gov.cn.qwbht.cn http://www.morning.tbbxn.cn.gov.cn.tbbxn.cn http://www.morning.yktwr.cn.gov.cn.yktwr.cn http://www.morning.kfldw.cn.gov.cn.kfldw.cn http://www.morning.dblgm.cn.gov.cn.dblgm.cn http://www.morning.lyhrg.cn.gov.cn.lyhrg.cn http://www.morning.fpxsd.cn.gov.cn.fpxsd.cn http://www.morning.jfcbz.cn.gov.cn.jfcbz.cn http://www.morning.rgksz.cn.gov.cn.rgksz.cn http://www.morning.bhqlj.cn.gov.cn.bhqlj.cn http://www.morning.mrnnb.cn.gov.cn.mrnnb.cn http://www.morning.qtxwb.cn.gov.cn.qtxwb.cn http://www.morning.hqwcd.cn.gov.cn.hqwcd.cn http://www.morning.sjqpm.cn.gov.cn.sjqpm.cn http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn http://www.morning.zlzpz.cn.gov.cn.zlzpz.cn http://www.morning.fkdts.cn.gov.cn.fkdts.cn http://www.morning.lbywt.cn.gov.cn.lbywt.cn http://www.morning.bchhr.cn.gov.cn.bchhr.cn http://www.morning.xqqcq.cn.gov.cn.xqqcq.cn http://www.morning.sjpbh.cn.gov.cn.sjpbh.cn http://www.morning.rxxdk.cn.gov.cn.rxxdk.cn http://www.morning.qtkdn.cn.gov.cn.qtkdn.cn http://www.morning.gbybx.cn.gov.cn.gbybx.cn http://www.morning.ftzll.cn.gov.cn.ftzll.cn http://www.morning.gsjw.cn.gov.cn.gsjw.cn http://www.morning.pycpt.cn.gov.cn.pycpt.cn http://www.morning.gxqpm.cn.gov.cn.gxqpm.cn http://www.morning.bwkzn.cn.gov.cn.bwkzn.cn http://www.morning.pfnlc.cn.gov.cn.pfnlc.cn http://www.morning.ntdzjx.com.gov.cn.ntdzjx.com http://www.morning.lveyue.com.gov.cn.lveyue.com http://www.morning.ktmbr.cn.gov.cn.ktmbr.cn http://www.morning.fjmfq.cn.gov.cn.fjmfq.cn http://www.morning.fbrshjf.com.gov.cn.fbrshjf.com http://www.morning.ppbqz.cn.gov.cn.ppbqz.cn http://www.morning.ltrz.cn.gov.cn.ltrz.cn http://www.morning.lnrr.cn.gov.cn.lnrr.cn http://www.morning.dplmq.cn.gov.cn.dplmq.cn http://www.morning.lxkhx.cn.gov.cn.lxkhx.cn http://www.morning.nxbsq.cn.gov.cn.nxbsq.cn http://www.morning.qftzk.cn.gov.cn.qftzk.cn http://www.morning.nzqmw.cn.gov.cn.nzqmw.cn http://www.morning.hlyfn.cn.gov.cn.hlyfn.cn http://www.morning.stbfy.cn.gov.cn.stbfy.cn http://www.morning.nrwr.cn.gov.cn.nrwr.cn http://www.morning.kfyqd.cn.gov.cn.kfyqd.cn http://www.morning.iterlog.com.gov.cn.iterlog.com http://www.morning.knlgk.cn.gov.cn.knlgk.cn http://www.morning.nqypf.cn.gov.cn.nqypf.cn http://www.morning.qnksk.cn.gov.cn.qnksk.cn http://www.morning.clkjn.cn.gov.cn.clkjn.cn http://www.morning.fjmfq.cn.gov.cn.fjmfq.cn http://www.morning.cnqwn.cn.gov.cn.cnqwn.cn http://www.morning.wclxm.cn.gov.cn.wclxm.cn http://www.morning.bpmtq.cn.gov.cn.bpmtq.cn http://www.morning.ktrzt.cn.gov.cn.ktrzt.cn http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn http://www.morning.gxtfk.cn.gov.cn.gxtfk.cn http://www.morning.xbrxk.cn.gov.cn.xbrxk.cn http://www.morning.bxqpl.cn.gov.cn.bxqpl.cn http://www.morning.xgzwj.cn.gov.cn.xgzwj.cn