linux用mknod怎么创建设备?怎么用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux用mknod怎么创建设备?怎么用?相关的知识,希望对你有一定的参考价值。

参考技术A

首先要明白什么是设备文件,简单的我们说,操作系统与外部设备(入磁盘驱动器,打印机,modern,终端 等等)都是通过设备文件来进行通信的,在Unix/Linux系统与外部设备通讯之前,这个设备必须首先要有一个设备文件,设备文件均放在/dev目录下。

一般情况下在安装系统的时候系统自动创建了很多已检测到的设备的设备文件,但有时候我们也需要自己手动创建,命令行生成设备文件的方式有 insf,mksf,mknod等等

根据mknod命令的使用参数来看【mknod Name b | c Major Minor 】,使用mknod之前,至少要明白以下几点:

    设备文件类型:分为块设备和字符设备。ls -l /dev 结果显示第一个字段有b*** 和 c****,这里即标识了块设备和字符设备。

    字符设备文件----字符设备文件传送数据给设备的时候,一次传送一个字符,终端,打印机,绘图仪,modern等设备都经过字符设备文件传送数据

    块设备---系统通过块设备文件存取一个设备的时候,先从内存中的buffer中读或写数据,而不是直接传送数据到物理磁盘,这种方式能有效的提高磁盘和CD-ROMS的I/O性能。磁盘和CD-ROMS即可以使用字符设备文件也可使用块设备文件。

    主号和次号

    主号:当在任意目录使用ls -l 时,结果的第5个字段就是主号,设备主号代表了这个设备使用的是哪个设备驱动程序

    次号:次号是一个24位的十六进制数字,定义了设个设备在系统中的物理的位置

就拿我们常用的创建卷组来看:

先来看看mknod 命令,如果该设备文件你想放在一个特定的文件夹下当然就先创建文件夹

mknod 设备文件名[/dev/xyz] b/c 主号 次号

mkdir /dev/vg01

mknod /dev/vg01/group c 64 0X010000

创建之后,就可以使用你想要创建的设备对于德创建命令了,如我现在的卷组的创建命令:

vgcreate /dev/vg01 /dev/dsk/c*t*d*

一直进行下去,之后的步骤根据不同的设备而不尽相同。

linux mknod命令资料整理

 

所以在系统与设备通信之前,系统首先要建立一个设备文件,这个设备文件存放在/dev目录下。其实系统默认情况下就已经生成了很多设备文件,但有时候我们需要自己手动新建一些设备文件,这个时候就会用到像mkdir, mknod这样的命令。mknod 的标准形式为:       mknod DEVNAME {b | c}  MAJOR  MINOR

       1,DEVNAME是要创建的设备文件名,如果想将设备文件放在一个特定的文件夹下,就需要先用mkdir在dev目录下新建一个目录;

       2, b和c 分别表示块设备和字符设备:

                  b表示系统从块设备中读取数据的时候,直接从内存的buffer中读取数据,而不经过磁盘;

                  c表示字符设备文件与设备传送数据的时候是以字符的形式传送,一次传送一个字符,比如打印机、终端都是以字符的形式传送数据;

       3,MAJOR和MINOR分别表示主设备号和次设备号:

             为了管理设备,系统为每个设备分配一个编号,一个设备号由主设备号和次设备号组成。主设备号标示某一种类的设备,次设备号用来区分同一类型的设备。linux操作系统中为设备文件编号分配了32位无符号整数,其中前12位是主设备号,后20位为次设备号,所以在向系统申请设备文件时主设备号不好超过4095,次设备号不好超过2^20 -1。

 .

 下面,我们就可以用mknod命令来申请设备文件了。       

          mkdir -p  /dev/cobing

           mknod /dev/cobing/mydev1 c 128 512

 

参考网络资料:https://www.cnblogs.com/cobbliu/archive/2011/07/05/2389014.html

以上是关于linux用mknod怎么创建设备?怎么用?的主要内容,如果未能解决你的问题,请参考以下文章

怎么在linux ubuntu minicom 建立、/dev/ttyUSB0

Linux /dev下各种文件是何时挂载,怎么挂载的?

linux下,mknod建立设备文件后,不用时候,如何进行删除

linux文件类型:设备文件mknod创建设备文件

Linux基础命令---mknod

iTOP-4412开发板运行Linux QT系统,怎么挂接U盘