8 개의 직렬 포트가 연결된 RHEL6.9 서버가 있습니다. RHEL은 / dev / ttyS0-3 중 4 개를 구성했으며 주소와 IRQ가 있습니다.
mknod 명령을 사용하여 장치 / dev / ttyS [0-3]를 작성했습니다. IRQ 5와 7이 무료라는 것을 알고 있습니다 (병렬 포트를 사용하지 않습니다)
나는 같은 것을 사용하고있다
mknod -m 666 /dev/ttyS4 c 4 64
그러나 동일한 주소와 IRQ로 / dev / ttyS0을 복제하는 것 같지만이 2 5를 변경하면 “No such device or address”가 표시됩니다.
setserial -g /dev/ttyS[0-9]
매뉴얼 페이지는 마지막 2 개의 매개 변수 (4 64)가 버전임을 제안합니다. 나는 순진하게 4가 IRQ에 매핑되었다고 가정했다.
새 직렬 장치를 만들고 주소와 IRQ를 지정할 수 있다고 가정하면 올바른 방법으로 접근하고 있습니까?
그렇다면 (경고 후속 질문) 실행중인 Linux 시스템의 어딘가에서 주소를 얻을 수 있습니까?
미리 감사드립니다
답변
mknod
명령 에서 두 번째 숫자를 증가시켜야 하지만 첫 번째 숫자는 그대로 두십시오. 예를 들어 …
mknod -m 666 /dev/ttyS4 c 4 68
mknod -m 666 /dev/ttyS5 c 4 69
mknod -m 666 /dev/ttyS6 c 4 70
mknod -m 666 /dev/ttyS7 c 4 71
두 숫자는 주 장치 번호와 부 장치 번호입니다. 동일한 유형의 장치에 대해서는 주요 장치 번호가 동일하게 유지됩니다. 각 인스턴스마다 부 장치 번호가 변경됩니다.
RHEL 6.x를 사용 MAKEDEV
하면서 숫자를 계산하는 명령을 동등하게 사용할 수 있습니다 …
$ cd /dev
$ sudo MAKEDEV -vx ttyS4
create ttyS4 c 4 68 root:uucp 660 system_u:object_r:tty_device_t:s0
$ ls -l ttyS4
crw-rw----. 1 root uucp 4, 68 Apr 26 12:02 ttyS4
NB 당신은 필요하지 않습니다 -v
단지 일을 상세하게 플래그를,하지만 당신은 할 원하는 -x
플래그를 (정확한 경우) 그렇지 않으면 MAKEDEV
주어진 문자열 (그래서 ttyS40, ttyS41 등)와 일치하는 모든 장치를 만듭니다