Linux 2.6.26.5組み込み。 Busybox Shell(initramfs)からルートファイルシステムを手動でマウントする必要があります。このLinuxカーネルはdevtmpfsを使用しないため、基本的なデバイスノードを手動で作成する必要があります。mknod(/dev/null
、/dev/zero
、dev/mtdblock
{0-10}、ttys
)。 /dev/mtdblock
とttys
の正しい形式がわかりません。/dev/mtdblockと/ dev/mtdの両方のノードを作成する必要がありますか?デバイスはnand0に11個のMTDパーティションを作成します。デバイスに割り当てられたメジャー番号とマイナー番号はどこにありますか? ttyに対する同じ質問:5 /dev/tty
と4 tty
の正しいmknodコマンドは何ですか-それらは別の場所にありますか?
mknod -m 666 tty c 4 0
mknod -m 666 /dev/tty c 5 0
編集:パーティション、デバイス、ファイルシステム
# 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
デバイスファイルは基本的にカーネル内のテーブルです。 C配列。
より正確には、C配列の2レベルのツリー構造:メジャー番号の上位レベルとマイナー番号の下位レベル。
ドライバー(およびカーネルコア)は、ドライバーハンドラーを登録できます。ドライバーは常にメジャー番号を使用します。たとえば、ソフトウェアraid( "md")はブロックメジャー9を使用します。
現在登録されているブロックデバイスと文字デバイスのリストは、/proc/devices
ファイルで取得できます。
最後の答えはカーネルソースです。「(un)register_block_device」またはカーネルコアの同様の呼び出しがあります。それらを見つけて、grep
してください。そうすれば、完全なリストを取得できます。