linux 查看驱动模块(lsmod)和 驱动设备(ls /dev)

news2024/11/29 20:30:44

一、lsmod

lsmod 命令,用于列出当前 linux 系统中加载的模块。当驱动开发人员编写好驱动代码,并生成驱动代码对应的驱动模块后,可以通过 insmod xxx.ko 将驱动模块(.ko)加载到 linux 操作系统中。最后,通过 lsmod 命令就可以看到 xxx.ko 已经加载到 linux 系统当中了。

驱动代码:

back@ubuntu2205:~$ cat driver.c
#include <linux/module.h>
#include <linux/init.h>
#include <linux/platform_device.h>


int hello_probe(struct platform_device *pdev)
{
        printk("[%s] match ok\n", __FILE__);
        return 0;
}
int hello_remove(struct platform_device *pdev)
{
        printk("[%s] hello_remove\n", __FILE__);
        return 0 ;
}

struct platform_driver hello_driver = {
        .probe = hello_probe,
        .remove = hello_remove,
        .driver.name = "yikoulinux",
};

static int hello_init(void)
{
        printk("[%s] hello_init\n", __FILE__);
        return platform_driver_register(&hello_driver);
}

static void hello_exit(void)
{
        printk("[%s] hello_exit\n", __FILE__);
        platform_driver_unregister(&hello_driver);
        return;
}
MODULE_LICENSE("GPL");
module_init(hello_init);
module_exit(hello_exit);
back@ubuntu2205:~$ cat device.c
#include <linux/module.h>
#include <linux/init.h>
#include <linux/platform_device.h>


void    hello_release(struct device *dev)
{
        printk("[%s] hello_release\n",__FILE__);
        return;
}

struct platform_device hello_device ={
        .name = "yikoulinux",
        .id = -1,
        .dev.release = hello_release,
        //hardware TBD
};

static int hello_init(void)
{
        printk("[%s] hello_init\n", __FILE__);
        return platform_device_register(&hello_device);
}

static void hello_exit(void)
{
        printk("[%s] hello_exit\n", __FILE__);
        platform_device_unregister(&hello_device);
        return;
}
MODULE_LICENSE("GPL");
module_init(hello_init);
module_exit(hello_exit);
back@ubuntu2205:~$ ls -lh
total 1.1M
-rw-r--r--  1 back back  709 83 12:13 device.c
-rw-rw-r--  1 back back 5.6K 83 12:18 device.ko
-rw-r--r--  1 back back  829 83 12:13 driver.c
-rw-rw-r--  1 back back 5.3K 83 12:18 driver.ko
back@ubuntu2205:~$ 

在这里插入图片描述
可以看到,我们通过 insmod 命令将 1.1 中的 device.ko 和 driver.ko加载到系统后,lsmod 就会发现我们 insmod 加载的 .ko 模块。

二、其他常见信息的查看

查看CPU信息: cat /proc/cpuinfo
查看板卡信息:cat /proc/pci
查看PCI信息: lspci
例子: lspci |grep Ethernet 查看网卡型号
查看内存信息:cat /proc/meminfo
查看USB设备: cat /proc/bus/usb/devices
查看键盘和鼠标:cat /proc/bus/input/devices
查看系统硬盘信息和使用情况:fdisk & disk - l & df
查看各设备的中断请求(IRQ): cat /proc/interrupts
查看系统体系结构:uname -a

dmidecode查看硬件信息,包括bios、cpu、内存等信息
dmesg | more 查看硬件信息

三、ls /dev

ls /dev 命令用于查看系统中的驱动设备,包括字符设备、块设备。一个驱动模块可以注册多个设备文件。

如字符设备 i2c-0 ~ i2c-4,这5个都是字符设备,它们的主设备号都是 89,此设备号为 0 ~ 4。
同理,块设备 loop0 ~ loop7,它们的主设备号都是 7,此设备号为 0 ~ 7。

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

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

相关文章

基于ruoyi框架项目-部署到服务器上

基于ruoyi框架项目-部署到服务器上 文章目录 基于ruoyi框架项目-部署到服务器上1.前端vue编译&#xff0c;后的dist下内容打包&#xff08;前后端分离版本需要&#xff09;2.后端打包成jar包&#xff08;如果是thymeleaf仅需打包jar&#xff09;3.上传到服务器目录下4. docker部…

什么是MySQL的执行计划(Explain关键字)?

什么是Explain Explain被称为执行计划&#xff0c;在语句之前增加 explain 关键字&#xff0c;MySQL 会在查询上设置一个标记&#xff0c;模拟MySQL优化器来执行SQL语句&#xff0c;执行查询时&#xff0c;会返回执行计划的信息&#xff0c;并不执行这条SQL。&#xff08;注意&…

SAM 微调在医学上的尝试

1、2023下半年 1、 UNet与SAM结合的正确的道路SAMUS,一路SOTA没对手&#xff01; https://github.com/xianlin7/SAMUS 2、 本文提出 SonoSAM&#xff1a;一种用于分割超声图像上感兴趣对象的快速基础模型。 https://zhuanlan.zhihu.com/p/663988684 未开源 绿色是预测的&…

周大福开启“超越时光”天然钻石之旅,将非常钻石领入日常人生

&#xff08;2023年11月6日&#xff09;创立于1929年的周大福凭借独具匠心的设计、超凡卓越的品质和历史悠久的底蕴&#xff0c;成为了中国传统文化与现代审美相融合的知名珠宝品牌。周大福不仅在黄金珠宝领域声名显赫&#xff0c;在天然钻石方面也拥有独树一帜的专业实力。早在…

【广州华锐互动】3D全景虚拟旅游在文旅行业的应用场景

随着科技的不断发展&#xff0c;3D全景虚拟旅游正在成为一种新兴的旅游体验方式&#xff0c;它可以帮助旅游者更加深入地了解旅游信息&#xff0c;提升旅游体验。下面我们将详细介绍3D全景虚拟旅游可以应用于哪些场景。 一、旅游规划 3D全景虚拟旅游可以帮助旅游者更加直观地进…

Linux 本地Yearning SQL审核平台远程访问

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具&#xff0c;为DBA与开发人员使用…

CDN加速:国内外价格与企业云服务最佳搭配方案

随着互联网的快速发展&#xff0c;CDN&#xff08;内容分发网络&#xff09;已经成为了企业提供高质量、高速度内容传递的不可或缺的工具。CDN通过将内容分发到离用户更近的服务器上&#xff0c;提高了网站性能&#xff0c;减少了加载时间&#xff0c;改善了用户体验。在本文中…

建表时如何合理选择字段类型

前言 我们在建表的时候关于字段类型的选择会有这么几类人&#xff1a; 严谨型 严格调研每个字段可能的大小&#xff0c;然后根据不同字段类型的限制&#xff0c;进行选择&#xff0c;这一类人在创建关系型数据表的时候是没有问题的。图自己省事型 把所有字段都设置为String&a…

硬件知识积累 共模电感的介绍

1. 基础知识了解 1. 共模电流(Common Mode Current)&#xff1a; 解释1&#xff1a;共模电流是不存在传导或有线回流通路的高频电流&#xff0c;共模电流与位移电流&#xff08;传导线路周边变化的电场&#xff09;一同组成环路实现电流闭合。 解释2: 共模电流是指通过电路的两…

GD32单片机远程升级下载,手机在线升级下载程序,GD32在线固件下载升级,手机下载程序固件方法

GD32、STM32单片机&#xff0c;是我们最常见的一种MCU。通常我们在使用STM32单片机都会遇到程序在线升级下载的问题。 GD32/STM32单片机的在线下载通常需要以下几种方式完成&#xff1a; 1、使用ST/GD提供的串口下载工具&#xff0c;本地完成固件的升级下载。 2、自行完成系统B…

自定义拖拽列表

效果图 DataAnalysis.vue <template><div class"app-container"><div class"operate"><el-select class"t_select" v-model"templateName" clearable placeholder"模版" size"default" cle…

电脑监控软件安装教程(30秒钟教会你快速安装)

在现代化办公中&#xff0c;如果有需要安装电脑监控软件的可以参考下面这篇文章&#xff1a; 一、准备阶段 可以自行到官网获取安装包&#xff0c;比如去域之盾官网&#xff0c;即可通过客服获取试用包。 二、操作阶段 1、这个就是安装包&#xff0c;点击运行。 2、这个是正…

Postgresql数据类型-数字类型

PostgreSQL支持的数字类型有整数类型、用户指定精度类型、浮点类型、serial类型。 PostgreSQL支持的数字类型如表所示 smallint、integer、bigint都是整数类型&#xff0c;存储一定范围的整数&#xff0c;超出范围将会报错。smallint存储2字节整数&#xff0c;字段定义时可写成…

大模型使用技巧

目录 1、文心一言&#xff1a;https://yiyan.baidu.com/ 2、智谱清言 ChatGLM&#xff1a;https://chatglm.cn/ 3、百川智能&#xff1a;https://www.baichuan-ai.com/ 4、科大讯飞星火大模型&#xff1a;https://xinghuo.xfyun.cn 5、字节跳动 AI 豆包 https://www.do…

idea2023 PoJie以后无法修改内存无效,heap内存设置

1. 打开电脑环境变量 2. 找到对应pojie文件 vmoptions目录 3. 修改这个文件 添加或者修改配置 -Xms128m -Xmx8192m4. 重启idea 修改成功

史上最全,从初级测试到高级测试开发面试题汇总,冲击大厂年50w+

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 接口测试面试相关…

考研408-计算机网络 第一章-计算机网络体系结构学习笔记及习题

第一章 计算机网络体系结构 一 计算机网络概述 1.1 概念及功能 1.1.1 计算机网络的概念 计算机网络就是互连的、自治的计算机系统的集合 互连&#xff1a;通过通信链路互联互通 自治&#xff1a;各个节点之间无主从关系&#xff0c;高度自治的 1.1.2 计算机网络的功能 功…

通过51单片机控制SG90舵机按角度正反转转动

一、前言 本文介绍如何通过51单片机控制SG90舵机实现角度的正反转转动。SG90舵机是一种常用的微型舵机&#xff0c;具有体积小、重量轻、结构简单等特点&#xff0c;被广泛应用于机器人、遥控模型和各种自动控制系统中。 使用51单片机&#xff08;STC89C52&#xff09;作为控…

公开IP属地信息如何保护用户的隐私?

公开IP属地信息通常涉及与用户或组织的隐私有关&#xff0c;因此在公开此类信息时需要非常小心&#xff0c;以避免侵犯他人的隐私权。以下是触碰底线的几种情况以及如何保护网络安全和用户隐私&#xff1a; 个人隐私保护&#xff1a; 公开IP属地信息可能泄露用户的物理位置&…

5虚拟局域网构建

前面简单介绍了使用交换机连接不同的服务器&#xff0c;这次我们看看怎么搞虚拟局域网。 虚拟局域网&#xff0c;也被称为VLAN&#xff08;Virtual Local Area Network&#xff09;&#xff0c;是一个网络的划分概念&#xff0c;使得一组网络设备可以表现得像在同一个物理网络…