linux中在/dev/下手动创建设备节点
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
linux中在/dev/下手动创建设备节点
/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_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
/ #
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献3条内容
所有评论(0)