linux 建立设备文件
来源:互联网 发布:西门子200plc编程实例 编辑:程序博客网 时间:2024/05/22 00:41
摘自:http://blog.chinaunix.net/uid-22028680-id-2421497.html
依照unix的传统,在Linux系统中任何对象(包括设备 )都可以视为文件,在Linux系统中所有的设备文件都放在dev目录下面,建立设备文件通常有两种方法,一个是直接把宿主机上面的拷贝过来(拷贝的时候需要加上dpR参数),另外一种方法就是自己手工用mknod创建(注意这两种方法都需要root权限)。
一般情况下我们都是使用第一种方法,但是这里面为了便于大家更深入的理解设备文件,我使用第二种方法来创建。首先来看如何使用mknod命令来创建特定的设备文件。
#cd dev
#mknod -m 666 null c 1 3
上面这条命令创建了null设备,-m 参数指定所创建设备的基本权限,null是设备名称,c代表是字符设备,相应的块设备用b表示,1是主编号,3是次编号。
关于设备的主次编号的权威信息的来源可以查看内核源码树中的
Documentation/devices.txt
我们这里需要建立的dev条目如表格所示。
文件名
说明
类型
主编号
次编号
权限位
mem
物理内存存取
字符设备
1
1
600
console
系统控制台
字符设备
5
1
600
urandom
真随机数产生器
字符设备
1
8
644
null
null(黑洞)设备
字符设备
1
3
666
zero
以null byte(零值字节)为数据来源
字符设备
1
5
666
tty
现行的tty设备
字符设备
5
0
666
tty0
现行的虚拟控制台
字符设备
4
0
600
tty1
第一个虚拟控制台
字符设备
4
1
600
ptyp0
first pseudo-tty master
字符设备
2
0
666
ttyp0
first BSD pseudo-tty slave
字符设备
3
0
666
ram0
第一块 ram盘
块设备
1
0
640
hda
主IDE硬盘(或者光盘)
块设备
3
0
660
hda1
上述主盘的第一个分区
块设备
3
1
660
hdb
从IDE硬盘(或者光盘)
块设备
3
64
660
hdb1
上述从盘的第一个分区
块设备
3
65
660
sda
第一块scsi盘的整个盘
块设备
8
0
660
sda1
第一块scsi盘的第一个分区
块设备
8
1
660
sdb
第二块scsi盘的整个盘
块设备
8
16
660
sdb1
第二块scsi盘的第一个分区
块设备
8
16
660
fd0
第一个软盘设备
块设备
2
0
660
下面我们写一个sh脚本mkdev.sh来创建这些设备,脚本内容如下:
#!/bin/sh
rm -rf mem console urandom null zero tty* ptyp* ram* hda* hdb* \
sda* sdb* fd* hdc cdrom
mknod -m 600 mem c 1 1
mknod -m 600 console c 5 1
mknod -m 644 urandom c 1 8
mknod -m 666 null c 1 3
mknod -m 666 zero c 1 5
mknod -m 666 tty c 5 0
for i in 0 1 2 3 4
do
mknod -m 600 tty$i c 4 $i
mknod -m 660 ttyp$i c 3 $i
done
for i in 0 1 2 3 4
do
mknod -m 660 ptyp$i c 2 $i
done
mknod -m 640 ram0 b 1 0
mknod -m 640 ram1 b 1 1
mknod -m 660 hda b 3 0
mknod -m 660 hdb b 3 64
mknod -m 660 hdc b 22 0
ln -s hdc cdrom
for i in 1 2 3 4 5 6 7 8 9 10
do
mknod -m 660 hda$i b 3 $i
mknod -m 660 hdbd$i b 3 `expr 64 + $i`
done
mknod -m 660 sda b 8 0
mknod -m 660 sdb b 8 16
for i in 1 2 3 4 5
do
mknod -m 660 sda$i b 8 $i
mknod -m 660 sdb$i b 8 `expr 16 + $i`
done
mknod -m 640 fd0 b 2 0
#end
#./mkdev.sh
- linux 建立设备文件
- 字符设备驱动框架2:设备文件(设备节点)如何和驱动建立联系-Linux字符设备中的两个重要结构体(file、inode)
- Linux建立Swap文件
- linux设备树的建立过程
- linux设备树的建立过程
- linux设备树的建立过程
- linux设备树的建立过程
- Linux 设备文件
- Linux设备文件简介
- Linux 设备文件
- Linux设备文件概述
- Linux设备文件简介
- Linux设备文件简介
- Linux 设备文件
- Linux设备文件简介
- Linux设备文件简介
- linux设备文件实现
- Linux设备文件简介
- 按位与、或、异或等运算方法
- MapReduce(十二): Map和Reduce阶段数据合并的处理
- 字符串循环右移
- 毕业后就职第二月 碎碎念(一)
- C# 查找EXCEL的两种方法比较
- linux 建立设备文件
- java通过jni调用c库
- Search for a Range
- c++ primer(第五版)笔记 第九章 顺序容器(2)
- LDA-math-MCMC 和 Gibbs Sampling
- 黑马程序员——流程控制语句
- Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析
- Zabbix如何监控Windows机器
- Prefab动态修改无效的解决方案