Linux sysrq使用

article/2025/9/24 15:07:11

Linux sysrq使用

1. 介绍

Sysrq被称为”魔术组合键”, 是内建于Linux内核的调试工具。只要内核没有完全锁住(还可以响应中断),不管内核在做什么事情,使用这些组合键都可以搜集包括系统内存使用、CPU任务处理、进程运行状态等系统运行信息。

更详细信息可以查看内核文档:Documentation/admin-guide/sysrq.rst

2. sysrq使能

使用sysrq组合键,需要在内核打开配置

CONFIG_MAGIC_SYSRQ

可以通过以下节点查看sysrq的支持情况和控制sysrq响应的命令键值

cat /proc/sys/kernel/sysrq

sysrq值说明如下:

in /proc/sys/kernel/sysrq:
0 - disable sysrq completely
1 - enable all functions of sysrq
1 - bitmask of allowed sysrq functions (see below for detailed function description):
2 - enable control of console logging level
4 - enable control of keyboard (SAK, unraw)
8 - enable debugging dumps of processes etc.
16 - enable sync command
32 - enable remount read-only
64 - enable signalling of processes (term, kill, oom-kill)
128 - allow reboot/poweroff
256 - allow nicing of all RT tasks

3. sysrq调试使用

在串口可以使用的情况下,都可以通过以下节点来实现sysrq的调试功能

echo funckey > /proc/sysrq-trigger

sysrq常用调试功能说明如下表所示:

功能键功能说明
b重启系统
c触发访问空指针
d查看锁持有情况
e向除了init进程的其他进程发送SIGTERM信号
f触发oom killer进行内存回收
g用于kgdb
h展示帮助信息
i向除了init进程的其他进程发送SIGKILL信号
l打印当前online cpu的栈回溯信息
m打印当前系统的内存信息
o关机(需要系统支持)
p打印当前进程的寄存器和flag
t打印当前系统所有进程的栈回溯信息
w打印当前block状态(uninterruptable)的进程栈回溯信息
0-9设置控制台loglevel

更多信息,请看内核文档:Documentation/admin-guide/sysrq.rst。

3.1 键盘使用sysrq

在PC下,并没有串口控制台,因此很多sysrq功能都是通过键盘实现。

在sysrq的驱动实现中,会为input device注册一个sysrq功能键的处理接口,当键盘输入sysrq的功能键时,就会转发到sysrq对应的handler进行处理。

键盘触发sysrq功能键为:alt + sysrq + key,如查看系统内存信息,可以使用 alt + sysrq + m

注:SYSRQ键也就是键盘上的Print Screen键.

3.2 嵌入式设备使用sysrq

在嵌入式设备,一般console都是使用串口,串口并不是标准的input devices,因此通过键盘组合按键,是无法触发sysrq相应的功能的,串口设备,一般都是通过tty子系统注册的,如果需要支持sysrq,那需要对应的串口驱动支持才行,假设串口驱动已经支持sysrq了,如何触发呢?

从sysrq.rst文档可知,通过串口发送BREAK + command key就可以触发sysrq相应的功能了。

在使用mobaxterm当串口工具时,按如下所示即可:

在串口终端鼠标右键,选择special command—>break—> command key(如m)

如下图所示:
在这里插入图片描述
如果使用SecureCRT工具,则按以下步骤配置即可:
在这里插入图片描述
在这里插入图片描述
单击Mapped Keys后,进行按键映射设置,弹出如下对话框后,输入一个要映射的原始组合键,比如我这里使用“Ctrl + D”,则在按键上按下“Ctrl + D”。
在这里插入图片描述
在按下“Ctrl + D”后,调出最终要映射的目标键,在Function里选择“Telnet Function”,在后面选择“TN_BREAK”,点击“OK”设置完成。

设置完成后,连接上串口,就可以通过ctrl + D + command key(如m) 触发sysrq功能了,如下图所示:
在这里插入图片描述

3.3 串口驱动支持sysrq

在tty core层,已经支持对sysrq的处理,因此串口驱动只需要在接收中断中对接收到的sysrq字符进行特殊处理即可。

串口驱动需要定义SUPPORT_SYSRQ,如下所示:

#if defined(CONFIG_SERIAL_AMBA_PL011_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
#define SUPPORT_SYSRQ
#endif

http://chatgpt.dhexx.cn/article/jrRUKBeT.shtml

相关文章

决策树CART介绍*

属性划分使用Gini指数 回顾:ID3使用信息增益,C4.5使用信息增益率。都是基于计算熵,熵运算涉及到对数运算,耗时。 CART使用Gini指数代替信息增益。 直观上,Gini指数表示从数据集D随机抽取两个样本,类别不一…

cart决策树Matlab实现,CART决策树的理解及其实现

CART决策树介绍 使用CART(Classification and regression tree)算法构建的决策树是二叉树,它对特征进行二分,迭代生成决策树。 CART回归树 假设X与Y分别为输入和输出变量,并且Y是连续变量,给定训练数据集 $$D\{(x_1,y_1),(x_2,y_2…

CART决策树算法Python实现 (人工智能导论作业)

文章目录 决策树的介绍CART决策树算法简介基尼指数 CART决策树生成算法及Python代码实现 决策树的介绍 决策树是以树的结构将决策或者分类过程展现出来,其目的是根据若干输入变量的值构造出一个相适应的模型,来预测输出变量的值。预测变量为离散型时&am…

CART树分类、回归、剪枝实现

决策树ID3,C4.5是多叉树,CART树是一个完全二叉树,CART树不仅能完成分类也能实现回归功能,所谓回归指的是目标是一个连续的数值类型,比如体重、身高、收入、价格等,在介绍ID3,C4.5其核心是信息熵…

sklearn 决策树例子_sklearn CART决策树分类

sklearn CART决策树分类 决策树是一种常用的机器学习方法,可以用于分类和回归。同时,决策树的训练结果非常容易理解,而且对于数据预处理的要求也不是很高。 理论部分 比较经典的决策树是ID3、C4.5和CART,分别分析信息增益、增益率…

机器学习--详解CART树剪枝原理和过程

这一节主要讲前面多次的提到的决策树问题,前面的决策树生成算法递归的产生决策树,直到不能继续分支或者达到要求为止,这样的决策树往往对训练数据的分类很准确,因为他就是基于训练数据的熵或者基尼不存度进行分类的,因…

【树模型与集成学习】(task2)代码实现CART树(更新ing)

学习心得 task2学习GYH大佬的回归CART树,并在此基础上改为分类CART树。 更新ing。。 这里做一些对决策树分裂依据更深入的思考引导:我们在task1证明离散变量信息增益非负时曾提到,信息增益本质上就是联合分布和边缘分布乘积的kl散度&#xf…

CART 决策树

ID3使用信息增益,而C4.5使用增益比率进行拆分。 在此,CART是另一种决策树构建算法。 它可以处理分类和回归任务。 该算法使用名为gini索引的新度量标准来创建分类任务的决策点。 CART树的核心是决策规则将通过GINI索引值决定。 停止条件。 如果我们继续…

CART决策树算法

在进行自动识别窃漏电用户分析实战时,用到了CART决策树算法,所以整理记录该算法的内容。内容整理参考文档决策树——CART算法及其后的参考文章。 一、CART(classification and regression tree)分类与回归树,既可用于…

CART树算法解析加举例

算法步骤 CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,左分支是取值为“是”的分支,右分支是取值为“否”的分支。这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有限个单元,并在…

ID3、C4.5与CART树的联系与区别

ID3、C4.5与CART树的联系与区别: 参考博客: 链接1 链接2 特征选择准则: ID3的特征选择准则为信息增益,即集合D的经验熵H(D)与给定特征A下条件经验熵H(D|A)之差,即: H(D)表现了数据集D进行分类的不确定性…

决策树构建算法—ID3、C4.5、CART树

决策树构建算法—ID3、C4.5、CART树 决策树构建算法—ID3、C4.5、CART树 构建决策树的主要算法ID3C4.5CART三种算法总结对比 决策树构建算法—ID3、C4.5、CART树 构建决策树的主要算法 ID3C4.5CART (Classification And Rsgression Tree) ID3 ID3算法…

3-6 决策树、CART树、GBDT、xgboost、lightgbm一些关键点梳理

目录 1、决策树 2、CART树 2.1 CART分类树-输入样本特征;输出样本对应的类别(离散型) 2.2 CART回归树-输入样本特征;输出样本的回归值(连续型) 3、GBDT 3.1 提升树 3.2 GBDT 4、xgboost 4.1 损失函数及节点展开 4.2 精确贪心算法及相关近似算法…

CART树回归

说明:本博客是学习《python机器学习算法》赵志勇著的学习笔记,其图片截取也来源本书。 基于树的回归算法是一类基于局部的回归算法,通过将数据集切分成多份,在每一份数据中单独建模。与局部加权线性回归不同的是,基于…

剪枝、cart树

一、剪枝 1. 为什么要剪枝 在决策树生成的时候,更多考虑的是训练数据,而不是未知数据,这会导致过拟合,使树过于复杂,对于未知的样本不准确。 2. 剪枝的依据——通过极小化决策树的损失函数 损失函数的定义为&#x…

【机器学习】决策树——CART分类回归树(理论+图解+公式)

🌠 『精品学习专栏导航帖』 🐳最适合入门的100个深度学习实战项目🐳🐙【PyTorch深度学习项目实战100例目录】项目详解 数据集 完整源码🐙🐶【机器学习入门项目10例目录】项目详解 数据集 完整源码&…

CART树(分类回归树)

主要内容 (1)CART树简介 (2)CART树节点分裂规则 (3)剪枝 --------------------------------------------------------------------------------------------------------------------- 一、简介 CART…

CART树

算法概述 CART(Classification And Regression Tree)算法是一种决策树分类方法。 它采用一种二分递归分割的技术,分割方法采用基于最小距离的基尼指数估计函数,将当前的样本集分为两个子样本集,使得生成的的每个非叶子节点都有两个分支。因此…

Pytorch之view,reshape,resize函数

对于深度学习中的一下数据,我们通常是要变成tensor格式,并且需要对其调整形状,很多时候我们往往只关注view之后的结果(比如输出的尺寸),而不关心过程。但有时候还是要关注一下这个到底是怎么变换过来的&…

OpenCV-Python图像处理:插值方法及使用resize函数进行图像缩放

☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 图像缩放用于对图像进行缩小或扩大,当图像缩小时需要对输入图像重采样去掉部分像素,当图像扩大时需要在输入图像中根据算法生成部分像素,二者都会利用插值算法来实现。 一…