qemu only talks to network on second boot

2009-03-30 Thread Steve Franks
Got win2k on qemu for a couple years now.  Funny thing is, it never
sees the network or the samba shares on my host the second time I
boot qemu on any given day.  First time always times out.  I get no
console output.  My win2k.sh file looks something like this.  All the
tap entries since my system seems to have some issue with naming tap.
Maybe that's the issue, but I'll be darned if I could fix it.  tap0
and nothing else would be just fine with me.  When I just had tap0, it
would make tap1 (then tap2, etc, etc.), but this seems always to wind
up on tap9 and work (the second time I run qemu)

Goofy.

Best,
Steve

[st...@dynstant /usr/ports/emulators/wine]$ cat ~/bin/win2k
#!/bin/sh
sudo kldload kqemu if_tap if_bridge aio

sudo sysctl net.link.tap.user_open=1
sudo sysctl net.link.tap.devfs_cloning=1
sudo sysctl net.link.tap.up_on_open=1

sudo ifconfig bridge0 create
sudo ifconfig bridge0 addm vr0
sudo ifconfig bridge0 addm tap0
sudo ifconfig bridge0 addm tap1
sudo ifconfig bridge0 addm tap2
sudo ifconfig bridge0 addm tap3
sudo ifconfig bridge0 addm tap4
sudo ifconfig bridge0 addm tap5
sudo ifconfig bridge0 addm tap6
sudo ifconfig bridge0 addm tap7
sudo ifconfig bridge0 addm tap8
sudo ifconfig bridge0 addm tap9
sudo ifconfig bridge0 up
sudo ifconfig vr0 up
sudo ifconfig tap0 up
sudo ifconfig tap1 up
sudo ifconfig tap2 up
sudo ifconfig tap3 up
sudo ifconfig tap4 up
sudo ifconfig tap5 up
sudo ifconfig tap6 up
sudo ifconfig tap7 up
sudo ifconfig tap8 up
sudo ifconfig tap9 up
sudo dhclient bridge0

sudo /etc/rc.d/devfs restart
sudo /etc/rc.d/sysctl restart

qemu -m 384 -net nic -net tap -hda ~/bin/drivec.img -usb -usbdevice
tablet -serial /dev/cuaU0 
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: qemu only talks to network on second boot

2009-03-30 Thread Mario Lobo
On Monday 30 March 2009 18:29:20 Steve Franks wrote:
 Got win2k on qemu for a couple years now.  Funny thing is, it never
 sees the network or the samba shares on my host the second time I
 boot qemu on any given day.  First time always times out.  I get no
 console output.  My win2k.sh file looks something like this.  All the
 tap entries since my system seems to have some issue with naming tap.
 Maybe that's the issue, but I'll be darned if I could fix it.  tap0
 and nothing else would be just fine with me.  When I just had tap0, it
 would make tap1 (then tap2, etc, etc.), but this seems always to wind
 up on tap9 and work (the second time I run qemu)

 Goofy.

 Best,
 Steve

 [st...@dynstant /usr/ports/emulators/wine]$ cat ~/bin/win2k
 #!/bin/sh
 sudo kldload kqemu if_tap if_bridge aio

 sudo sysctl net.link.tap.user_open=1
 sudo sysctl net.link.tap.devfs_cloning=1
 sudo sysctl net.link.tap.up_on_open=1

 sudo ifconfig bridge0 create
 sudo ifconfig bridge0 addm vr0
 sudo ifconfig bridge0 addm tap0
 sudo ifconfig bridge0 addm tap1
 sudo ifconfig bridge0 addm tap2
 sudo ifconfig bridge0 addm tap3
 sudo ifconfig bridge0 addm tap4
 sudo ifconfig bridge0 addm tap5
 sudo ifconfig bridge0 addm tap6
 sudo ifconfig bridge0 addm tap7
 sudo ifconfig bridge0 addm tap8
 sudo ifconfig bridge0 addm tap9
 sudo ifconfig bridge0 up
 sudo ifconfig vr0 up
 sudo ifconfig tap0 up
 sudo ifconfig tap1 up
 sudo ifconfig tap2 up
 sudo ifconfig tap3 up
 sudo ifconfig tap4 up
 sudo ifconfig tap5 up
 sudo ifconfig tap6 up
 sudo ifconfig tap7 up
 sudo ifconfig tap8 up
 sudo ifconfig tap9 up
 sudo dhclient bridge0

 sudo /etc/rc.d/devfs restart
 sudo /etc/rc.d/sysctl restart

 qemu -m 384 -net nic -net tap -hda ~/bin/drivec.img -usb -usbdevice
 tablet -serial /dev/cuaU0 
 ___
 freebsd-questions@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/freebsd-questions
 To unsubscribe, send any mail to
 freebsd-questions-unsubscr...@freebsd.org

Hi Steve;

Forgive the long post but
here is what I've got working for me:

[BEGIN] 

*** loader.conf

# if_tap is compiled into the kernel
# but loading if_tap does it also
if_bridge_load=YES


*** rc.conf

##
## network stuff
#      FBSD HOST(7.1-PRERELEASE)
#      +-+
#      |    10.10.10.1   | 
# LAN -+- re0        | 
#      |                 | 
#      |    +-+      |
#  +---++tap0 |      |  
#  |  +++tap1 |      | 
#  |  ||    +-+      |  
#  |  ||    bridge0      |  (if_bridge)
#  |  ||  10.1.200.254   |  
#  |  |+-+
#  |  |
#  |  |      QEMU GUEST 1 (linux Fedora core 5)
#  |  |   +-+
#  |  |   |                 |
#  |  +---+ eth0        | 
#  |      |   10.1.200.1    | 
#  |      |                 | 
#  |      +-+ 
#  |         QEMU GUEST 2  (windows XP)
#  |      +-+
#  |      |                 |
#  +--+--- realtek      | 
#         |   10.1.200.2    | 
#         |                 | 
#         +-+ 
#
# The bridge IP is the default gateway
# for the guests and the LAN dns is 
# guests' DNS server
##
gateway_enable=YES
# don't know why but WITHOUT -promisc- here, it doesnt work !
ifconfig_re0=inet 10.10.10.2  netmask 255.255.255.0 promisc
autobridge_interfaces=bridge0
autobridge_bridge0=tap0 tap1 
cloned_interfaces=bridge0
ifconfig_bridge0=inet 10.1.200.254 netmask 255.255.255.0 up

pf_enable=YES
samba_enable=NO
smbd_enable=YES
kqemu_enable=YES

*** pf.conf (totally open - needed for NAT)

ext_if=re0# replace with actual external interface name i.e., dc0
int_if=bridge0# replace with actual internal interface name i.e., dc1
internal_net=10.1.200.0/24
set loginterface $ext_if
set block-policy drop
set fingerprints /etc/pf.os
scrub in all
nat on $ext_if from $internal_net to any - ($ext_if)
no rdr on { lo0, lo1 } from any to any
# pass traffic 
pass quick on lo0 all
pass quick on re0 all
pass quick on bridge0 all

# maybe these are redundant but i left them here anyway
pass  in  on $ext_if proto { tcp, udp } from any to any keep state
pass  in  on $int_if from $internal_net to any keep state
pass  out on $int_if from any to $internal_net keep state
pass out on $ext_if proto { tcp, udp, icmp, gre } all keep state


*** qemu-ifup.sh

#!/usr/local/bin/bash
/sbin/ifconfig $1 up
TEST=`ifconfig -a | grep member | grep $1`
if [ $TEST ==  ]; then
   /sbin/ifconfig bridge0 addm $1
fi

*** qemu-ifdown (has to have this name !)

#!/usr/local/bin/bash
/sbin/ifconfig bridge0 deletem $1
/sbin/ifconfig $1 down

*** smb.conf

[global]

   netbios name = Papi
   workgroup = LOBOS
   hosts allow = 10.1.200. 10.10.10. 127.
   server string = Papi
   guest account = nobody
   log file = /var/log/samba/log.%m
   max log size = 50
   socket options = TCP_NODELAY 
   share modes = yes
   security = share
   interfaces =