驱动模块操作以及printk命令

news2024/11/26 12:32:00

文章目录

  • 一、驱动模块操作命令
      • 1. 安装模块 insmod
      • 2. 查看模块 lsmod
      • 3. 卸载模块 rmmod
      • 4. 问题总结
  • 二、printk打印语句
      • 1. 内核中的打印级别
      • 2. 通过级别过滤打印信息
      • 3. 修改默认消息级别
      • 4. 测试消息级别
        • ① 原始终端查看
        • ② dmesg命令
      • 5. 打印信息的宏定义

一、驱动模块操作命令

1. 安装模块 insmod

sudo insmod hello.ko
在这里插入图片描述

2. 查看模块 lsmod

lsomd
在这里插入图片描述

3. 卸载模块 rmmod

sudo rmmod demo
在这里插入图片描述

  • 注:卸载模块,不要加.ko

4. 问题总结

① 安装时不加sudo
在这里插入图片描述

② 使用开发板目录下的Makefile文件进行模块化编译生成的是ARM架构的驱动模块,如果试图安装在x86架构的系统上,就会报错
在这里插入图片描述

二、printk打印语句

语法格式:
	printk(打印级别 “控制格式”,变量)

参数:如果不输入打印级别,会采用默认消息级别

备注:
	打印级别和后面中间用 空格 分隔

printf是用户空间的;printk是内核空间的。
printfk也有缓冲区,行缓冲区。

1. 内核中的打印级别

用于过滤打印信息的,共分为8种打印级别,分别是0-7。

#define KERN_EMERG	KERN_SOH "0"	/* system is unusable */
#define KERN_ALERT	KERN_SOH "1"	/* action must be taken immediately */
#define KERN_CRIT	KERN_SOH "2"	/* critical conditions */
#define KERN_ERR	KERN_SOH "3"	/* error conditions */
#define KERN_WARNING	KERN_SOH "4"	/* warning conditions */
#define KERN_NOTICE	KERN_SOH "5"	/* normal but significant condition */
#define KERN_INFO	KERN_SOH "6"	/* informational */
#define KERN_DEBUG	KERN_SOH "7"	/* debug-level messages */

数字越小优先级越高,越大优先级越低

2. 通过级别过滤打印信息

只有当消息级别 高于 (等于也不会显示)终端级别消息才会在终端上显示

cat /proc/sys/kernel/printk
在这里插入图片描述
终端消息级别 | 默认消息级别 | 终端最高消息级别 | 终端最低消息级别

3. 修改默认消息级别

需要先进入root模式才能修改
echo 4 3 1 7 > /proc/sys/kernel/printk

在这里插入图片描述
在这里插入图片描述

4. 测试消息级别

① 原始终端查看

Ctrl + Fn + Alt + F2~F6
Ctrl + Fn + Alt + F1
在这里插入图片描述

② dmesg命令

dmesg命令

-c:先显示再清除所有打印信息
-C:清除打印信息

  • 注:清除打印信息需要加sudo权限

-l 或 --level:指定查看信息的级别

或者使用dmesg -l err,warn
在这里插入图片描述

红色是高于终端级别,白色是等于或者小于终端级别
在这里插入图片描述

5. 打印信息的宏定义

在printk基础上又封装了一层宏函数

  1. pr_emerg
  2. pr_alert
  3. pr_crit
  4. pr_err
  5. pr_warn
  6. pr_notice
  7. pr_info
  8. pr_cont
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2221019.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

光纤光学——弱导光纤与线偏振模

一、基本思想 弱导光纤:n1≈ n2 , k0n1 ≈ k0n2,亦即: k0n1 ≈ k0 n2 ≈ 光线与纤轴的夹角小;芯区对光场的限制较弱; 消逝场在包层中延伸较远。 弱导光纤场的特点: HEι1,m模式与EHι-1,m色散曲线相近…

企智汇项目管理软件:工程版,弱电版,集成版,生产制造等多个行业版本,全行业覆盖

企智汇项目管理软件是一款功能全面且适用于多行业的项目管理工具,以下是对该软件及其不同版本的详细介绍: 企智汇项目管理软件是一款集CRM、OA、PMS、CMS、ERP等多个子系统于一体的全方位平台,旨在为企业提供一站式项目管理解决方案。该软件…

Qt项目实战:图片轮播器

目录 一.设置背景于初始化图像 二.设置定时器 三.定时器到更新图片 四.鼠标点击暂停更新和打开更新 五.效果 六.代码 1.h 2.cpp 一.设置背景于初始化图像 二.设置定时器 三.定时器到更新图片 四.鼠标点击暂停更新和打开更新 五.效果 六.代码 1.h #ifndef WIDGET_H #d…

MyHdfs代码分享

关于hdfs协议层相关的的解析已经比较全面,但是大多的分析停留在理论层面。为此笔者通过对hadoop源码的整理,完成了myhdfs项目。此项目有个特点是不依赖于任何hadoop的maven包,但却可以作为原生的hadoop客户端的server。项目暂时已经完成了rpc…

10月24日程序员节!GameViewer远程体验副屏串流和远程办公功能

10月24日是程序员节,在这里祝所有编程爱好者和专业人士节日快乐! 我相信,对于程序员来说,拥有一件称心如意的工具提高办公生产力,要比任何一件礼物都重要。这么特别的日子,当然要选择一款合适的远程控制软件…

Vulnhub打靶-matrix-breakout-2-morpheus

基本信息 靶机下载:https://pan.baidu.com/s/1kz6ei5hNomFK44p1QT0xzQ?pwdy5qh 提取码: y5qh 攻击机器:192.168.20.128(Windows操作系统) 靶机:192.168.20.0/24 目标:获取2个flagroot权限 具体流程 …

026_net基于Net的鲜花销售系统2024_97irnin0

目录 系统展示 设计思路 代码实现 项目案例 获取源码 博主介绍:CodeMentor毕业设计领航者、全网关注者30W群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AW…

演示:基于WPF的DrawingVisual开发的高刷新率示波器

一、目的:分享一个基于WPF的DrawingVisual开发的高刷新率示波器 二、效果演示 特此说明:由于Gif录制工具帧率不够,渲染60帧用了4.6秒,平均帧率在12Hz左右,所以展示效果不好,想要看好些的效果可以看文章下面…

《地下蚁国》风灵月影十项修改器使用教程

《地下蚁国》是一款引人入胜的模拟策略类游戏,玩家可以在游戏中体验蚂蚁王国的生存与壮大。为了进一步提升玩家的游戏体验,地下蚁国修改器应运而生。这款修改器能够协助玩家轻松获得游戏中的各种资源和优势,使游戏过程更加顺畅和便捷。通过利…

Java基于SSM框架的教学辅助微信小程序【附源码、文档】

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

iOS Swift逆向——deMangle过程中的偏移计算

碰到好多函数最开始都会调用这个函数&#xff0c;xref了一下&#xff0c;发现有上万个xref。 __int64 __fastcall sub_1000B6ED0(__int64 *a1) {__int64 result; // x0result *a1;if ( result < 0 ){result swift_getTypeByMangledNameInContext((char *)a1 (int)result…

国家唯一认证的防脱发产品,双11速速囤

脱发的一定都深刻知道掉发严重反复折磨的痛苦&#xff01;为了能早点调理好掉发严重的问题&#xff0c;真的买了一堆育发液&#xff0c;也是踩了不少雷&#xff0c;今天就把用过好用的分享出来&#xff0c;有需要的趁着双十一赶紧囤点~ 一、露卡菲娅防脱精华液&#xff1a;科技…

哈希表模拟封装unordered_map和unordered_set

杀马特主页&#xff1a;羑悻的小杀马特.-CSDN博客 ------ ->欢迎阅读 欢迎阅读 欢迎阅读 欢迎阅读 <------- 目录 前言&#xff1a; 一哈希表的调用&#xff1a; 二底层hash的修改操作…

Linux隐藏权限介绍

隐藏权限概览 在Linux系统中&#xff0c;有时即便是以root用户身份&#xff0c;你也可能遇到无法修改特定文件的情况。这种限制往往源自chattr命令的应用&#xff0c;该命令用于为文件或目录设置“隐藏权限”&#xff0c;即底层属性&#xff0c;以增强系统安全性。值得注意的是…

ARP欺骗的多种手法

学习参考&#xff1a; ARP欺骗的各种d玩法-CSDN博客 https://juejin.cn/post/7383702153892954164 一、什么是ARP欺骗 1.什么是ARP&#xff1f; ARP (Address Resolution Protocol) 是一种网络层协议&#xff0c;用于将 IP 地址转换为物理地址&#xff08;MAC 地址&#xff0…

机器视觉基础系列三——特征点检测算法角点检测与SIFT算法

机器视觉基础系列三——特征点检测算法 学习一些有关点检测和点匹配的需要&#xff0c;补充一些机器视觉以及cv领域常用的特征点检测的算法 机器视觉中特征检测的概念 对于一张输入的图片来说我们在给出一个特征区域&#xff08;或者说是特征点时&#xff09; 平坦部分很难找到…

Java Stream API:让集合操作更优雅的利器

前言 A sequence of elements supporting sequential and parallel aggregate operations. Java 8引入的Stream API是一种处理集合数据的高级抽象&#xff0c;它允许以声明式的方式对集合进行操作&#xff0c;使得代码更加简洁和易读。Stream不是数据结构&#xff0c;它不会存储…

【WiFi7】 支持wifi7的手机

数据来源 Smartphones with WiFi 7 - list of all latest phones 2024 Motorola Moto X50 Ultra 6.7" 1220x2712 Snapdragon 8s Gen 3 16GB RAM 1024 GB 4500 mAh a/b/g/n/ac/6e/7 Sony Xperia 1 VI 6.5" 1080x2340 Snapdragon 8 Gen 3 12GB RAM 512 G…

基于Springboot+Vue的宾馆客房管理系统设计与实现(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 该系统…

Vue 3 和 Vue Router 使用 createWebHistory 配置

在 Vue 3 项目中&#xff0c;如果使用 Vue Router 并希望启用 HTML5 History 模式&#xff0c;需要在创建路由器实例时传入 createWebHistory 作为历史模式的配置。此外&#xff0c;还需要确保在生产环境中设置正确的基本路径&#xff08;base&#xff09;&#xff0c;这样才能…