设置xenix和linux之间的SLIP

设置xenix和linux之间的SLIP

出于研究目的,我想在新的 linux 机器和在 VirtualBox 上运行的旧 xenix 机器之间设置滑动串行 tcp 连接。我已经设置了带有两个串行端口的 xenix 虚拟机:一个在 /dev/ttyS0(主机管道)上,另一个在 /tmp/xenixserial(文件管道)上,使用 minicom 测试的第二个端口是正常的。在Linux上我做了

echo 1 > /proc/sys/net/ipv4/ip_forward
slattach -s 9600  -d -p slip  /dev/ttyS0
ifconfig sl0 192.168.7.1 dstaddr 192.168.7.2 netmask 255.255.255.252 mtu 576 up
iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -j MASQUERADE

在 xenix 上我做了

mkdev slip: only ask for relink kernel,of course answered yes
mkdev tcp:  and set 192.168.7.2 as local 192.168.7.1 as remote and tty1a 9600 for serial

重新启动后我可以看到所有作品

sl0: flags=51<UP,POINTOPOINT,RUNNING>                                                                                   
    inet 192.168.7.2 --> 192.168.7.1 netmask ffffff00  

但没有 ping,从主机到访客,从访客到主机都没有。我也尝试添加路线

    route add default 192.168.7.1 1

但什么也没有。建议?谢谢

答案1

找到解决方案,TTYS0 是一个驱动程序/模块,指向现有的物理串行(在我的主板上启用)。要使用这样的设置,必须使用 pty 驱动程序(pts/0,1,2,etc),但 virtualbox 不支持,qemu 支持它,如果有兴趣,这里是过程。

在 Qemu 主机上

#run qemu,256m ram disk not over 512M,pc-bios important otherwise give error
#control wich pts is running qemu,you will must use later
qemu-system-i386  -serial pty -hda Xenix.disk -boot c -fda floppy.img -no-fd-bootchk -m 256  -L pc-bios

#ip_forward
echo 1 1>/proc/sys/net/ipv4/ip_forward
#slattach
slattach -s 19200 -d -p slip /dev/pts/4 #pts/4 is used by qemu

#192.168.7.1 is on host,192.168.7.2 is guest
ifconfig sl0 192.168.7.1 dstaddr 192.168.7.2 netmask 255.255.255.252 mtu 576 up 
#enable routing iptables
iptables -t nat -A POSTROUTING -s 192.168.7.0/30 -j MASQUERADE 

在 Xenix 上

mkdev slip #answer yes to all
reboot
mkdev tcp   #set 19200 serial speed and 192.168.7.2 ip,and correct netmask

相关内容