임베디드 리눅스 2.6.26.5. 비지박스 셸(initramfs)에서 루트 파일 시스템을 수동으로 마운트해야 합니다. 이 Linux 커널은 devtmpfs를 사용하지 않기 때문에 mknod( /dev/null
, /dev/zero
, dev/mtdblock
{0-10}, ) 를 사용하여 기본 장치 노드를 수동으로 생성해야 합니다 ttys
. /dev/mtdblock
및 의 올바른 형식이 확실하지 않습니다 ttys
. /dev/mtdblock 및 /dev/mtd에 대한 노드를 만들어야 합니까? 장치는 nand0에 11개의 MTD 파티션을 생성합니다. 장치에 할당된 메이저 및 마이너 번호는 어디에서 찾을 수 있나요? tty에 대한 동일한 질문: 올바른 mknod 명령은 무엇입니까 5 /dev/tty
? 4 tty
서로 다른 위치에 있습니까?
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
답변1
장치 파일은 본질적으로 커널의 테이블입니다. AC 어레이.
보다 정확하게는 C 배열의 2단계 트리 구조입니다. 상위 레벨은 기본 숫자이고 하위 레벨은 정도입니다.
드라이버(및 커널)는 드라이버 처리기를 등록할 수 있습니다. 운전자는 항상 대표번호를 사용합니다. 예를 들어 소프트웨어 RAID("md") 사용자는 마스터 블록 9를 사용합니다.
현재 파일에 등록되어 있는 블록 및 문자 장치의 목록을 얻을 수 있습니다 /proc/devices
.
최종 대답은 커널 소스 코드에 "(un)register_block_device" 또는 커널 코어에 유사한 호출이 있다는 것입니다. grep
전체 목록을 얻을 수 있도록 해당 항목을 찾아보세요 .