社区
Linux_Kernel
帖子详情
Linux内核开发 主次设备号疑惑
aTimer
2017-12-19 11:47:35
背景:我想在内核中验证一个主次设备号是否为USB存储设备
问题产生:
插入u盘,我通过ls -l /dev发现/dev/sdb1设备号为8:17
在内核中我通过usb_for_each_dev遍历每个usb设备发现其主设备号均是189
我疑惑为什么usb在内核中的结构体struct usb_device却是字符设备189,在用户空间的设备节点/dev/sdb1却是块设备
一个设备的主次设备号不是唯一的么?
...全文
910
1
打赏
收藏
Linux内核开发 主次设备号疑惑
背景:我想在内核中验证一个主次设备号是否为USB存储设备 问题产生: 插入u盘,我通过ls -l /dev发现/dev/sdb1设备号为8:17 在内核中我通过usb_for_each_dev遍历每个usb设备发现其主设备号均是189 我疑惑为什么usb在内核中的结构体struct usb_device却是字符设备189,在用户空间的设备节点/dev/sdb1却是块设备 一个设备的主次设备号不是唯一的么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wjx5210
2017-12-21
打赏
举报
回复
USB只是一个接口,可以看到有USB音箱,U盘等,USB初始化完成之后应该会要求所有注册在usb bus上的driver挨个去匹配,然后storage driver匹配到之后初始化就看到了/dev/sdb
Linux
内核
编程:
设备
树overlay和ConfigFS文件系统
在嵌入式
Linux
下,
设备
树(device tree)用来描述硬件平台的各种资源,
Linux
内核
在启动过程中,会解析
设备
树,获取各种硬件资源来初始化硬件。
设备
树的overlay功能是指可以在系统运行期间动态修改
设备
树。一般情况下,如上图所示,
设备
树经过DTC编译器编译为二进制的hello.dtb文件,加载到内存,随
Linux
内核
一起启动后,一般就无法更改了。如果我们想修改
设备
树,需要修改hello.dts文件文件,重新编译成二进制文件:hello.dtb,然后重新启动
内核
,重新解析。有了
设备
树的overlay功能,省去了
设备
树的重新编译和
内核
重启,我们可以直接编写一个
设备
树插件:overlay.dts,编译成overlay.dtbo后,直接给
设备
树“打补丁”,在运行期间就可以动态添加节点、修改节点...
设备
树的overlay功能,在很多场合都会用得到,会让我们的
开发
更加方便:外界插拔
设备
,无法在
设备
树中预先描述:耳机树莓派 + FPGA
开发
板基于I2C的温度传感器管脚的重新配置:PIN multiplexing修改bootcmd、分区...
设备
树的overlay功能,目前还没有加入到
内核
mainline(
linux
-5.10.x),但目前有些
开发
板和配套的BSP已经支持了,支持在系统运行期间动态修改
设备
树文件。如果你手头的
开发
板或
内核
平台还没有支持device tree overlay,可以学习本期课程,学习
内核
中
设备
树overlay的实现原理,如何给
内核
打补丁,使
内核
支持
设备
树的overlay功能。有了本期课程的学习基础,明白了
设备
树overlay的实现原理和运行机制,你就可以尝试在自己的
开发
板平台上实现这个功能了。本期课程的主要内容如下:在
开发
板上如何实现
设备
树的overlay功能Configfs文件系统的配置与挂载Configfs编程接口如何编写
设备
树 overlay插件
设备
树 overlay的编译和运行
设备
树overlay运行机制分析本期课程适合哪些人学习:嵌入式驱动工程师嵌入式BSP工程师嵌入式软件工程师想从事嵌入式
开发
的同学全网首家讲解
设备
树overlay的视频教程。
Linux
驱动
开发
15之RTC驱动模型
1.需要的文件有哪些 driver/rtc/class.c: 此文件向
linux
内核
驱动模型注册了一个类RTC,同时为底层的RTC驱动提供了注册/注销RTC接口。同时实现了RTC相关的PM操作。 driver/rtc/rtc-dev.c: 将各种各样的RTC
设备
抽象成一个字符
设备
,同时提供文件操作函数集。 driver/rtc/rtc-sysfs.c: 用户可...
阿里
linux
内核
月报2014-07-08
Capsicum for
Linux
Capsicum: 一种基于文件句柄的新安全模型 Capsicum是一种源自FreeBSD的安全模型,与
Linux
下众多LSM的相同之处在于它们都是基于权限管理的,而不同之处在于LSM针对的操作对象非常丰富,有进程、VMA、端口、带有标签的文件等等,而Capsicum操作的对象非常单一:文件句柄。例如,一个fd必须带有CAP_READ才能被读取,必须带有C...
内核
调试技术
1.调试技术
内核
编程带来了它自己的,独特的调试挑战。
内核
代码不能简单地在调试器中执行,也不能被简单地跟踪,因为它是一组不与特定进程相关的功能。
内核
代码的错误非常难重现并且可能导致整个系统崩溃,因此破坏很多用来发现它们的证据。 本章将介绍在如此恼人的情况下你可以用来监视
内核
代码和跟踪错误的技术。 1.1.
内核
中的调试支持 在第二章中,我们建议你编译和安装你自己的
内核
,而不是运行你所使用的发
再谈如何学习
Linux
,一线
Linux
专家学习经验谈
→点击领取阿里云限量红包 记得最早接触
linux
是在2000年,那个时候,还在上大学,一个同学从荷兰回来,带回来了一个
Linux
的拷贝版,记得版本还是Redhat6.2。曾经为安装一个系统让我们忘记疲劳,挑灯夜战,不亦乐乎。那时
Linux
的学习资料还很少,能够学习的书籍也不多,网上
Linux
技术社区也很少,就凭着Redhat6.2自带的几页使用说明开始了学习
linux
的生涯。 转眼间,10几年...
Linux_Kernel
4,436
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章