首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用mknod手动创建设备文件?

如何使用mknod手动创建设备文件?
EN

Unix & Linux用户
提问于 2017-12-04 12:07:52
回答 1查看 17.5K关注 0票数 6

Linux 2.6.26.5嵌入式。我需要从busybox (initramfs)手动挂载根文件系统。因为这个Linux内核不使用devtmpfs,所以我必须手动创建基本的设备节点,使用mknod (/dev/null/dev/zerodev/mtdblock {0-10},ttys)。我不确定/dev/mtdblockttys的格式是否正确。我应该同时为/dev/mtdblock和/dev/mtd创建节点吗?该设备在nand0上创建11个MTD分区。在哪里可以找到分配给设备的主要和次要数字?对于ttys来说,同样的问题是:对于5 /dev/tty4 tty,什么是正确的mknod命令?它们在不同的地方吗?

代码语言:javascript
复制
mknod -m 666 tty c 4 0
mknod -m 666 /dev/tty c 5 0

编辑:分区、设备和文件系统

代码语言:javascript
复制
# cat /proc/partitions
major minor  #blocks  name

  31     0        384 mtdblock0
  31     1        128 mtdblock1
  31     2      20352 mtdblock2
  31     3       7168 mtdblock3
  31     4      18816 mtdblock4
  31     5       2048 mtdblock5
  31     6       1024 mtdblock6
  31     7        512 mtdblock7
  31     8        128 mtdblock8
  31     9        512 mtdblock9
  31    10        512 mtdblock10
# cat /proc/devices
Character devices:
  1 mem
  2 pty
  3 ttyp
  4 /dev/vc/0
  4 tty
  4 ttyS
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
  7 vcs
 10 misc
 13 input
 89 i2c
 90 mtd
108 ppp
128 ptm
136 pts
153 spi
204 ttyJ
254 cordless

Block devices:
  1 ramdisk
 31 mtdblock
 93 nftl
EN

回答 1

Unix & Linux用户

发布于 2017-12-04 12:38:35

设备文件本质上是内核中的一个表。一个C数组。

更确切地说,C数组的两层树结构:大数的上层和未成年人的下层。

驱动程序(以及内核内核)可以为它们注册驱动程序处理程序。司机总是使用一个主要的数字。例如,软件raid ("md")使用块大9。

您可以在/proc/devices文件中获得当前注册的块设备和char设备的列表。

最后的答案是在内核源代码中,有"(un)register_block_device“或内核内核的类似调用。找到他们,grep给他们,这样你就可以得到一个完整的列表。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/408706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档