2

I have successfully run an old UNix SVR4 guest on Slackware 15.0 host.

This is the config for unix "vm"

    [General]
vid_renderer = qt_opengl3
confirm_save = 0
confirm_reset = 0
language = en-US
confirm_exit = 0
vid_resize = 1

[Machine]
machine = p5sp4
cpu_family = pentium_p5
cpu_speed = 66666666
cpu_multi = 1
cpu_use_dynarec = 1
time_sync = local
fpu_type = internal
mem_size = 16384

[Video]
gfxcard = vga

[Input devices]
mouse_type = ltserial

[Sound]
fm_driver = nuked
midi_device = system_midi
midi_in_device = midi_in

[Network]
net_01_link = 0
net_02_link = 0
net_03_link = 0
net_04_link = 0
net_01_net_type = pcap
net_01_host_device = br0
net_01_card = wd8003e

[Storage controllers]
hdc = internal
cassette_mode = load

[Ports (COM & LPT)]
lpt1_device = text_prt

[Hard disks]
hdd_01_parameters = 63, 16, 1013, 0, ide
hdd_01_fn = unix.img
hdd_01_speed = ramdisk
hdd_01_ide_channel = 0:0

[Floppy and CD-ROM drives]
fdd_01_type = 525_2hd
cdrom_01_parameters = 1, atapi
cdrom_01_ide_channel = 0:1

[Western Digital WD8003E #1]
mac = **:**:**
base = 0300
irq = 2
ram_addr = D8000

The machine start and recognize the old WD card I can ping from internal to internal (sic!) but not from host to guest and vice-versa.

This is the network situation, no interface appear

sudo brctl show
bridge name bridge id       STP enabled interfaces
br0     ****************    yes     eth0

sudo ip link show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP mode DEFAULT group default qlen 1000
    link/ether ************ brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff

I have tried to bind to..

br0 (which is a bridge with eth0..) FAIL
eth0 FAIL
virbr0 (an adapter created by libvirt) FAIL

1 Answer 1

2

Actually seems the pcap is a disaster on Linux host, with stable version doesn't work, with git version at first ping from guest machine give a crash

86Box[23929]: segfault at 3c8 ip 0000000000655468 sp 00007f18317fd940 error 4 in 86Box[426000+40e000]

Slirp network seem's to works. So ATM I consider the pcap networking bugged on Linux hosts.

p.s=the old SVr4 system is perfectly emulated by qemu

qemu-system-i386 -m 16 -hda unix.img -fda boot.img

but qemu don't support the wd8003 isa card.

EDIT: a workaround/solution found. Instead of use pcap or slirp use vde.

We need a tap interface, personally I use this script

#!/bin/sh

# Exit at first error
set -e

# Run this as root
if [ $UID != "0" ]
then
echo "Run this script as root"
exit 1
fi

# Increment tap device number
TAP=`ip link show type tun|grep tap|awk '{print $2}'|cut -d : -f 1|cut -c 4|tail -1`
let "TAP=TAP+1"
TAPDEV=tap${TAP}

# Other vars
USER=yourname
BRIDGE=br0

# Create tap for user
ip tuntap add dev $TAPDEV mode tap user $USER
ip link set $TAPDEV up promisc on
ip link set $TAPDEV master $BRIDGE
echo "I have created $TAPDEV for user $USER, using bridge $BRIDGE"
echo "To remove it use command ip link delete $TAPDEV as root"

Then create the switch AS ROOT (as normal user can create the switch..but when you start the 86box machine it will not connect to the switch!)

sudo vde_switch --mode 666 --numports 8 --tap tap1 --mgmt /tmp/vde.manag --mgmtmode 666 -s /tmp/vde.switch --daemon

Then we start the 86Box

After that control the vde switch, must report two ports (the tap1 and the 86box program)

vdeterm  /tmp/vde.manag 
VDE switch V.2.3.2
(C) Virtual Square Team (coord. R. Davoli) 2005,2006,2007 - GPLv2

vde[/tmp/vde.manag]: port/allprint 

Port 0001 untagged_vlan=0000 ACTIVE - Unnamed Allocatable
 Current User: NONE Access Control: (User: NONE - Group: NONE)
  -- endpoint ID 0007 module tuntap      : tap1
Port 0002 untagged_vlan=0000 ACTIVE - Unnamed Allocatable
 Current User: myname Access Control: (User: NONE - Group: NONE)
  -- endpoint ID 0008 module unix prog   : 86Box virtual card user=yourname PID=2886
Success

Tap1 must configured with ip class of bridge, for example if br0 has 192.168.0.1/24 ip tap1 must have 192.168.0.*/24 and same thing for the virtual machine (for example:

br0 192.168.0.1
tap1 192.168.0.2
vm 192.168.0.3

Finally the results!

Fast ping of Unix svr4 VM

ping 192.168.0.91
PING 192.168.0.91 (192.168.0.91) 56(84) bytes of data.
64 bytes from 192.168.0.91: icmp_seq=1 ttl=255 time=6.23 ms
64 bytes from 192.168.0.91: icmp_seq=2 ttl=255 time=4.86 ms
64 bytes from 192.168.0.91: icmp_seq=3 ttl=255 time=3.44 ms

For the first time I see on my pc a telnet on old svr4 Unix without using slirp and other slow solutions!

telnet 192.168.0.91
Trying 192.168.0.91...
Connected to 192.168.0.91.
Escape character is '^]'.
[SSL not available]


UNIX(r) System V Release 4.0 (unix01)

login: 

ftp, rlogin, etc. works!

VDE networking is available only on version 4.0 86Box or upper.

This is the cfg for old Unix svr4

[General]
vid_renderer = qt_opengl3
confirm_save = 0
confirm_reset = 0
language = it-IT
confirm_exit = 0
vid_resize = 1

[Machine]
machine = cubx
cpu_family = c3_samuel
cpu_speed = 733333333
cpu_multi = 5,5
cpu_use_dynarec = 1
time_sync = local
fpu_type = internal
fpu_softfloat = 0
mem_size = 16384

[Video]
gfxcard = cl_gd5430_pci

[Input devices]
mouse_type = ltserial

[Sound]
fm_driver = nuked
midi_device = system_midi
midi_in_device = midi_in

[Storage controllers]
hdc = internal
cassette_mode = load

[Ports (COM & LPT)]
lpt1_device = text_prt

[Hard disks]
hdd_01_parameters = 63, 16, 1013, 0, ide
hdd_01_fn = unix.img
hdd_01_speed = ramdisk
hdd_01_ide_channel = 0:0

[Floppy and CD-ROM drives]
fdd_01_type = 525_2hd
cdrom_01_parameters = 1, atapi
cdrom_01_ide_channel = 0:1
fdd_01_image_history_01 = /home/user/sistemi operativi/storici/unix/AT&T Intel Unix/Disk 58 - Hardware Set - qt pc586 wd8003 pc1 - Disk 1 of 1.img
cdrom_01_type = 86BOX_CD-ROM_1.00

[Western Digital WD8013EBT #1]
base = 0280
irq = 9
ram_addr = D8000
ram_size = 16384
mac = ******

[Network]
net_01_card = wd8013ebt
net_01_link = 1
net_01_host_device = /tmp/vde.switch
net_01_net_type = vde

[Western Digital WD8013EBT]
base = 0280
irq = 9
ram_addr = D8000
ram_size = 16384
mac = 1f:6e:52

[Cirrus Logic GD5430 (PCI)]
memory = 2

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.