转载:Linux 设备文件/dev/*详解、查询
设备管理是 Linux 中比较基础的知识,与内核的关系也比较密切。随着 Udev 的广泛使用,Linux发行版的智能程度越来越高,许多 Linux 新用户对 /dev 目录下的东西变得不再熟悉,有时候遇见问题就会抓狂。
Linux 中的设备按照存取方式的不同,可以分为两种:
字符设备:无缓冲且只能顺序存取
块设备:有缓冲且可以随机(乱序)存取,而按照是否对应物理实体,也可以分为两种:
物理设备,对实际存在的物理硬件的抽象。
虚拟设备,不依赖于特定的物理硬件,仅是内核自身提供的某种功能。
127.cvreadstringbyname:找到一个有名称的文件节点并返回它。
123、cvreadstringbyname:找到一个有名称的文件节点并返回它。
快乐是需要与人分享才能体现出它的真正含义的,呵呵,花了一个多星期的时间,ok6410之linux2.6.39.2版本的移植版本终于可以放出来了,因为到现在,这个ok6410的linux2.6.39.2移植版本才算的上基本正常了(对自己而言,呵呵),在驱动移植方面花了不少时间,其中最痛苦的莫过于ok6410的声卡驱动的移植了,由于在linux2.6.39.2版本中alsa (advancde linux sound archtecture)的版本已经升到1.0.24版本了,在许多文件上都有很大的变化,而且在asoc 驱动这方面也有很明显的变化,对于加载codec,codec_dai,cpu_dai,以及snd_soc_platform 这四个驱动上的方式和以往有明显的不同,采用codec,codec_dai,cpu_dai与platform(就是目标平台)分离,在asoc的核心驱动文件soc-core.c文件中,通过自己加入printk 代码调试打印信息观察,在加载codec,codec_dai,cpu_dai,snd_soc_platform时是通过查找相关driver_list等list文件,查找对应驱动name然后实行匹配加载的,起先,内核sound lists:。
我想在内核里加一个模块的驱动,重新编译内核。
内核能够识别的所有设备都记录在原码树下的 Documentation/devices.txt 文件中。另外,在 也有一份,貌似已经失去维护。双口无线modem
注意:在 /dev目录下除了各种设备节点之外还通常还会存在:FIFO管道、Socket、软/硬连接、目录。这些东西并不是设备文件,因此也就没有主/次设备号。
设备文件
了解这些设备的最基本要求就是对每个设备文件的含义了如指掌,下面列出了 Linux-3.13.2内核中常见的已注册设备及其含义(省略了生僻与罕见的设备)。
----------------------------------------------------------------------
主设备号 设备类型
次设备号=文件名 简要说明
----------------------------------------------------------------------
0 未命名设备(例如NFS之类非设备的挂载)
0 = 为空设备号保留
参见主设备号为144,145,146的块设备,以了解"扩展区域"(expansion area)
1 char 内存设备
1 = /dev/mem 物理内存的全镜像。可以用来直接存取物理内存。
2 = /dev/kmem 内核看到的虚拟内存的全镜像。可以用来访问内核中的内容(查看内核变量或用作rootkit之类)。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/sanxing/article-91811-1.html
亲