编译进内核的驱动创建的设备文件放在哪儿?

wozhu6104 2015-10-21 10:51:38
内核启动的时候还没有加载文件系统,这之前加载的驱动创建的设备文件放在哪儿呢?
加载文件系统之后为什么在/sys下面可以看到这些文件呢?是从别处拷贝过来的?
求大神出现!!!
...全文
457 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Buddy.Zhang 2015-12-06
  • 打赏
  • 举报
回复
这个问题主要看气质!! 在内核启动时会给动态加载的模块分配相应的内存,动态加载的驱动属于模块,其就存放在那里,具体地址为: (PAGE_OFFSET - PMD_SIZE) 到 PAGE_OFFSET 区域的虚拟地址. 初始化内核时 bootmem allocator 分配器会初始化上面区域对应的页表,并给页表写入相应的值. 其值为可用物理内存顶部往下分配. memblock.memory.regions[0].base + memblock.memory.regions[0].size 的顶部往下的物理内存区域. 这个问题真的是看气质的!!!!!
猪头三小队长 2015-11-30
  • 打赏
  • 举报
回复
按照规则,设备文件都在/dev目录下,下面也许还有子目录,看你自己的驱动是怎么组织的,当然如果你不想遵守规则,mknod时也可以自己找个地方放。
bjtea 2015-11-28
  • 打赏
  • 举报
回复
如果你之前是动态(用键盘键入命令)加载的驱动的话,那么你 加载文件系统之后是看不见的,因为那些驱动在你关闭电源后消失了; 如果你把驱动事先直接编译(这是重点)进了内核,也就是你写的代码已经成为内核程序的一部分了保存在硬盘上了,那么加载内核和文件系统的同时,自然也会加载进你原先写的驱动。所以就会在/sys下面看到这些设备文件了。
East0000000、 2015-10-22
  • 打赏
  • 举报
回复
你可以简单看一下 Linux设备驱动模型,里边有讲解!
nswcfd 2015-10-21
  • 打赏
  • 举报
回复
基于内存的devtmpfs?

1,319

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧