일반적으로 직렬 포트는 minicom을 통해 Qemu의 오래된 SVR4를 제어하는 데 충분합니다(아주 오래된 시스템이고 안전하지 않다는 것을 알고 있습니다.). 가상 머신 구성에서 이 두 포트를 설정했습니다.
<serial type="pty">
<source path="/dev/pts/1"/>
<target type="isa-serial" port="0">
<model name="isa-serial"/>
</target>
<alias name="serial0"/>
</serial>
serial type="pty">
<source path="/dev/pts/2"/>
<target type="isa-serial" port="1">
<model name="isa-serial"/>
</target>
<alias name="serial1"/>
</serial>
하지만 시작 시 하나의 포트만 활성화됩니다.
find /dev/ -name *tty* -print
/dev/systty
/dev/tty00
/dev/tty
/dev/tty00s
/dev/tty00h
그래서 커널을 재구축해 보았습니다. SVR4에서는 먼저 커널을 재구축하기 위해 /etc/conf/sdevice.d/asy 파일을 변경했습니다.
asy Y 1 7 1 4 3f8 3ff 0 0
asy Y 1 7 1 3 2f8 2ff 0 0
구문은 간단합니다. asy는 이를 활성화하는 드라이버 Y이고, 1 7 1 잘 모르겠습니다. 3은 인터럽트입니다(내 모든 시스템에서 irq 3은 두 번째 직렬 포트에서 사용되고 4는 첫 번째 직렬 포트에서 사용됩니다). 3f8-3ff 및 2f8-2ff는 포트 간격, 0 0 모르겠습니다
그런 다음 idbuild를 사용하여 커널을 다시 빌드합니다. 다시 시작해도 같은 상황입니다. 파일을 편집하면
/etc/conf/node.d/asy
asy tty00 c 0
asy term/00 c 0
asy tty00s c 0
asy tty00h c 128
asy term/00s c 0
asy term/00h c 128
asy tty01 c 1
asy term/01 c 1
asy tty01s c 1
asy tty01h c 128
asy term/01s c 1
asy term/01h c 128
그리고 노드를 다시 생성하세요
idmknod -s
이런 이상한 상황이 있어요
ls -ld /dev/tty*
crw-rw-rw- 1 bin bin 16, 0 Dec 25 19:31 /dev/tty
crw--w---- 1 myuser tty 3, 0 Mar 27 05:20 /dev/tty00
crw-rw-rw- 1 root root 3,128 Mar 27 04:26 /dev/tty00h
crw-rw-rw- 1 root root 3, 0 Mar 27 04:26 /dev/tty00s
crw--w---- 1 root root 3, 0 Mar 27 05:20 /dev/tty01
crw-rw-rw- 1 root root 3,128 Mar 27 04:26 /dev/tty01h
crw-rw-rw- 1 root root 3, 0 Mar 27 04:26 /dev/tty01s
모든 파일은 메이저 번호 3을 사용합니다. 4가 완전히 무시되는 이유는 무엇입니까? 내가 무엇을 놓치고 있나요? 커널의 버그이거나 다른 것일 수 있습니까? 두 일련 번호 모두 최신(Linux) 및 기존(Sco Unix) 시스템 모두에서 인식됩니다. 나는 SVR4가 qemu나 86box 및 bochs에서 직렬 포트(첫 번째 포트 제외)를 볼 수 없다는 것을 발견했습니다.