如何启用旧虚拟机 AT&T SVR4 上的第二个串口?

如何启用旧虚拟机 AT&T SVR4 上的第二个串口?

通常一个串行端口足以通过 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 上也看不到。

相关内容