linux中在/dev/下手动创建设备节点
2017-03-25 15:36
501 查看
linux中在/dev/下手动创建设备节点
/dev/目录下有许多设备节点文件,比如u盘的文件/dev/sda,mmc卡的文件/dev/mmcblk0,这些文件通常是由udev或mdev程序检测到uevent事件后自动创建的。我们也可以通过mknod命令手动创建。
下面mmc卡为例,介绍如何创建其设备节点文件。
mknod 设备名 设备类型(字符:c,块:b) 主设备号 从设备号
其中,主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。
因此,想要创建设备节点,需要知道设备类型,及其主从设备号。
(1)/sys/block/中可看到mmc卡设备对应的目录为mmcblk0。
(2)我们可在/sys/block/mmcblk0/uevent节点中,看到mmc卡的主设备(MAJOR)为179,从设备号(MINOR)为0,设备类型(DEVTYPE)为磁盘(disk)。
/sys/block/mmcblk0/mmcblk0p1目录,表示该磁盘有1个分区
(3)在/sys/block/mmcblk0/mmcblk0p1/uevent节点中,看到mmc卡的主设备(MAJOR)为179,从设备号(MINOR)为1,设备类型(DEVTYPE)为分区(partition)。
好啦,至此,手动创建节点的方法已经介绍完了,^-^。
/dev/目录下有许多设备节点文件,比如u盘的文件/dev/sda,mmc卡的文件/dev/mmcblk0,这些文件通常是由udev或mdev程序检测到uevent事件后自动创建的。我们也可以通过mknod命令手动创建。
下面mmc卡为例,介绍如何创建其设备节点文件。
1. mknod命令
命令的格式是:mknod 设备名 设备类型(字符:c,块:b) 主设备号 从设备号
其中,主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。
因此,想要创建设备节点,需要知道设备类型,及其主从设备号。
2. 获取设备类型
当设备插入后,我们可以在/proc/devices中看到设备的类型,如下所示。分别显示字符设备与块设备,左边是主设备号,右边的是设备名。所以,mmc卡属于Block设备,主设备号为179,设备名为mmc。/ # cat /proc/devices Character devices: 1 mem 2 pty 3 ttyp 4 /dev/vc/0 ... 254 ttySDIO Block devices: 1 ramdisk 259 blkext 7 loop 179 mmc / #
3. 获取设备的主从设备号
/proc/devices中只显示了主设备号,但是没有从设备号,我们可以通过从sys系统中获取,如下所示。(1)/sys/block/中可看到mmc卡设备对应的目录为mmcblk0。
(2)我们可在/sys/block/mmcblk0/uevent节点中,看到mmc卡的主设备(MAJOR)为179,从设备号(MINOR)为0,设备类型(DEVTYPE)为磁盘(disk)。
/sys/block/mmcblk0/mmcblk0p1目录,表示该磁盘有1个分区
(3)在/sys/block/mmcblk0/mmcblk0p1/uevent节点中,看到mmc卡的主设备(MAJOR)为179,从设备号(MINOR)为1,设备类型(DEVTYPE)为分区(partition)。
/ # ls /sys/block/ loop0 loop4 mmcblk0 ram11 ram15 ram5 ram9 loop1 loop5 ram0 ram12 ram2 ram6 loop2 loop6 ram1 ram13 ram3 ram7 loop3 loop7 ram10 ram14 ram4 ram8 / # ls /sys/block/mmcblk0/ bdi device mmcblk0p1 removable slaves uevent capability ext_range queue ro stat dev holders range size subsystem / # cat /sys/block/mmcblk0/uevent MAJOR=179 MINOR=0 DEVTYPE=disk PHYSDEVPATH=/class/mmc_ b9e8 host/mmc0/mmc0:0002 PHYSDEVBUS=mmc PHYSDEVDRIVER=mmcblk / # / # cat /sys/block/mmcblk0/mmcblk0p1/uevent MAJOR=179 MINOR=1 DEVTYPE=partition PHYSDEVPATH=/class/mmc_host/mmc0/mmc0:0002 PHYSDEVBUS=mmc PHYSDEVDRIVER=mmcblk / #
4. 创建节点
使用mknod命令,分别创建磁盘和分区的节点。mknod /dev/mmcblk0 b 179 0 mknod /dev/mmcblk0p1 b 179 1创建后,可在/dev/目录下看到刚创建的节点如下。
/ # ls /dev/mmcblk0* -l brw-r--r-- 1 root root 179, 0 Jan 1 00:34 /dev/mmcblk0 brw-r--r-- 1 root root 179, 1 Jan 1 00:36 /dev/mmcblk0p1
5. 挂载分区
挂载分区后,我们就可以访问mmc卡中的文件了。/ # mount /dev/mmcblk0p1 /mnt/ / # ls /mnt/ a dd x.docx / #
6. 删除节点
删除节点,就像删除普通文件一样,如下所示。/ # rm /dev/mmcblk0p1 -f / # / # ls /dev/mmcblk0* -l brw-r--r-- 1 root root 179, 0 Jan 1 00:34 /dev/mmcblk0 / #
好啦,至此,手动创建节点的方法已经介绍完了,^-^。
相关文章推荐
- linux中在/dev/下手动创建设备节点
- linux中在/dev/下手动创建设备节点
- linux中在/dev/下手动创建设备节点
- linux中在/dev/下手动创建设备节点
- linux中在/dev/下手动创建设备节点
- Linux /dev 自动创建设备节点
- Linux /dev 自动创建设备节点
- Linux驱动学习(3-设备节点-手动创建)
- LINUX手动创建设备节点与字符注册
- Linux /dev 自动创建设备节点
- Linux /dev 自动创建设备节点
- linux字符驱动之自动创建设备节点
- linux驱动入门之自动分配主设备号/创建设备节点
- linux用mknod创建设备(节点)
- arm驱动程序——自动创建设备节点 (韦东山的视频总结及针对linux-2.6.30)
- Linux创建字符设备 自动生成设备节点
- arm驱动程序——手动设备节点 (韦东山的视频总结及针对linux-2.6.30.4)
- Linux驱动开发之四-----LED改进测试(增加自动创建设备节点)
- linux驱动开发之自动创建设备节点
- Linux自动创建设备节点 (无论是平台设备还是一般设备)