kernel restart_level

2024-01-27 17:38
文章标签 level kernel restart

本文主要是介绍kernel restart_level,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,打开内核中log相关的配置

一,kenel与modem启动关系的设定,有一下两种途径

①busybox  find ./ -name restart_level

./sys/devices/soc.0/4080000.qcom,mss/subsys2/restart_level

./sys/devices/soc.0/a21b000.qcom,pronto/subsys1/restart_level

./sys/devices/soc.0/1de0000.qcom,venus/subsys0/restart_level

将./sys/devices/soc.0/4080000.qcom,mss/subsys2/restart_level 的值设置为SYSTEM/RELATED 表明modem死掉时ap 同时重启/不重启

②android的属性系统文件为*.prop,可以通过getprop和setprop来查看和设定                //busybox find ./ -name *.prop

    setprop persist.sys.ssr.restart_level  1     //若系统死机,则ap也重启进入download模式

    setprop persist.sys.ssr.restart_level  3     //若系统死机,则ap会重启modem

    persist.sys.ssr.restart_level属性的工作过程可以查看 http://blog.csdn.net/visionliao/article/details/24037489

二,设置内核panic后进入download模式

kernel\drivers\power\reset\msm-poweroff.c

static void msm_restart_prepare(const char *cmd)函数中有下边一句

set_dload_mode(download_mode &&(in_panic || restart_mode == RESTART_DLOAD));

panic:如果有panic则表示 kernel panic时进入download模式

发布版本时一般会不设置panic,用户使用时如果panic的话如果进入download模式时用户就蒙了 ~是不

进入download后打开QPST,会显示sahara或者进度条的样子,表明手机处在下载模式

2,得到log

内核配置好后,如果手机进入panic后,内核log会自动存在ram中,我们可以用QPST将其取出

右键点击QPST的小地球,选择open data directory,如下图

 

先查看你的串口是哪个,打开的文件夹中,有相应串口的文件夹,进入后找到两个最大的文件就是ram中保存的log

至此,log文件已经取出


3,解析log

下边两个高通的工具用来解析你打印出来的log

ramparse ramdump工具
git clone git://codeaurora.org/quic/la/platform/vendor/qcom-opensource/tools


这篇关于kernel restart_level的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/651003

相关文章

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

欧拉系统 kernel 升级、降级

系统版本  cat  /etc/os-release  NAME="openEuler"VERSION="22.03 (LTS-SP1)"ID="openEuler"VERSION_ID="22.03"PRETTY_NAME="openEuler 22.03 (LTS-SP1)"ANSI_COLOR="0;31" 系统初始 kernel 版本 5.10.0-136.12.0.

[Linux Kernel Block Layer第一篇] block layer架构设计

目录 1. single queue架构 2. multi-queue架构(blk-mq)  3. 问题 随着SSD快速存储设备的发展,内核社区越发发现,存储的性能瓶颈从硬件存储设备转移到了内核block layer,主要因为当时的内核block layer是single hw queue的架构,导致cpu锁竞争问题严重,本文先提纲挈领的介绍内核block layer的架构演进,然

Kernel 中MakeFile 使用if条件编译

有时需要通过if  else来选择编译哪个驱动,单纯的obj-$(CONFIG_)就不是很方便,下面提供两种参考案例: 案例一: 来源:drivers/char/tpm/Makefileifdef CONFIG_ACPItpm-y += tpm_eventlog.o tpm_acpi.oelseifdef CONFIG_TCG_IBMVTPMtpm-y += tpm_eventlog.o

MiniCPM-V: A GPT-4V Level MLLM on Your Phone

MiniCPM-V: A GPT-4V Level MLLM on Your Phone 研究背景和动机 现有的MLLM通常需要大量的参数和计算资源,限制了其在实际应用中的范围。大部分MLLM需要部署在高性能云服务器上,这种高成本和高能耗的特点,阻碍了其在移动设备、离线和隐私保护场景中的应用。 文章主要贡献: 提出了MiniCPM-V系列模型,能在移动端设备上部署的MLLM。 性能优越:

笔记整理—内核!启动!—kernel部分(1)驱动与内核的关系

首先,恭喜完成了uboot部分的内容整理,其次补充一点,uboot第一部分和第二部分的工作不是一定的,在不同的版本中,可能这个初始化早一点,那个的又放在了第二部分,版本不同,造成的工作顺序不同,但终归是要完成基本内容初始化并传参给kernel的。         那么至于驱动与内核的关系,用一张图来说明最适合不过:         驱动位于OS层的中下层与硬件相接。驱动是内

Linux_kernel原理08

一、温故知新         系统移植         1、uboot                 uboot主要做两件事:1、负责初始化硬件;2、负责引导操作系统的启动         2、Linux内核                 Linux内核的五大功能                 【1】进程间通信                 【2】进程管理

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

android kernel 的config 如何选择-QCOM

https://blog.csdn.net/weijory/article/details/73104910   如何在deconfig文件里配置某个模块是否编译 首先以CONFIG_TOUCHSCREEN_FT5X06为例,这个CONFIG_TOUCHSCREEN_FT5X06在makefile里决定了obj-$(CONFIG_TOUCHSCREEN_FT5X06) += ft5x06_ts