Linux驱动设备节点查看

本文介绍了如何在Linux系统中查看设备驱动的相关信息,包括设备节点、设备号、已加载的模块及设备树等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux驱动设备节点查看

  • Fang XS.
  • 1452512966@qq.com
  • 如果有错误,希望被指出

查看设备节点

  • 驱动注册成功生成设备节点
    ls /dev/

查看设备号

  • 主设备号
    cat /proc/devices
    • 包括字符设备和块设备
  • MISC设备驱动次设备号
    cat /proc/misc
  • 主次设备号等信息
    ls /dev/dev_name -al

查看类

class_create函数创建成功后,使用命令ls /sys/class查看

查看设备

device_create函数创建成功后,使用命令ls /dev/查看

查看已加载的模块

lsmod

设备树

  • 查看设备树节点
    ls /proc/device-tree
  • 查看设备树属性
    在设备树相应目录下,cat [Properties]

查看内核打印信息

dmesg

### 如何在 Linux SPI 节点上实现设备驱动程序的编写与集成 #### 设备树中的SPI节点配置 为了使新的SPI设备能够被Linux识别并加载相应的驱动,在设备树源文件(DTS)中定义新设备是必要的。对于RK3568平台而言,这涉及到修改特定于该SoC的DTS文件以包含目标SPI外设的信息[^1]。 ```dts spi@ff0c0000 { compatible = "rockchip,rk3568-spi"; reg = <0xff0c0000 0x100>; interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; spidev@0 { /* 新增子节点 */ compatible = "spidev"; spi-max-frequency = <5000000>; // 设置最大频率为5MHz reg = <0>; // CS线编号 }; }; ``` 上述代码片段展示了如何向已存在的SPI控制器下挂接一个新的`spidev`兼容型设备实例,并指定了其工作参数如CS号以及通信速率上限等特性设置。 #### 编写对应的字符设备驱动框架 接下来就是创建实际用于控制这个虚拟SPI设备的应用层接口——即所谓的“字符设备”。这里给出一个简化版的例子来说明基本结构: ```c #include <linux/module.h> #include <linux/spi/spi.h> static int my_spi_probe(struct spi_device *spi) { printk(KERN_INFO "My SPI device driver probed\n"); return 0; } static void my_spi_remove(struct spi_device *spi) { printk(KERN_INFO "My SPI device driver removed\n"); } static struct of_device_id my_spi_of_match[] = { {.compatible = "mycompany,myspidevice"}, {}}; MODULE_DEVICE_TABLE(of, my_spi_of_match); static struct spi_driver my_spi_driver = { .driver = { .name = "my_spidev", .of_match_table = my_spi_of_match, }, .probe = my_spi_probe, .remove = my_spi_remove, }; module_spi_driver(my_spi_driver); MODULE_LICENSE("GPL"); ``` 这段C语言编写的模块实现了最基本的探测(`probe`)和移除(`remove`)回调函数;更重要的是声明了一个匹配表项用来关联之前提到过的DTB里的`compatible`字段值,从而建立起硬件实体同本驱动之间的映射关系[^2]。 #### 加载自定义驱动并与用户空间交互 完成以上两步之后,当系统启动时如果检测到了符合描述符条件的新组件,则会自动调用注册好的探针方法尝试建立连接。与此同时也可以通过/sys/class/spidev路径访问到由内核暴露出来的伪文件系统入口以便应用程序读取/写入数据流或下发命令给底层物理层执行具体动作[^3]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值