연구 목적으로 새 Linux 시스템과 VirtualBox에서 실행되는 기존 xenix 시스템 간에 슬라이딩 직렬 TCP 연결을 설정하고 싶습니다. 두 개의 직렬 포트가 있는 xenix 가상 머신을 설정했습니다. 하나는 /dev/ttyS0(호스트 파이프)에 있고 다른 하나는 /tmp/xenixserial(파일 파이프)에 있으며 minicom을 사용하여 테스트한 두 번째 포트는 정상입니다. 리눅스에서는 내가 그랬어
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
제닉스에서는 그랬어요
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 등)를 사용해야 하지만 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
제닉스에서
mkdev slip #answer yes to all
reboot
mkdev tcp #set 19200 serial speed and 192.168.7.2 ip,and correct netmask