better liveCD support
[os-autoinst:os-autoinst.git] / inst / startqemu.pm
1 #!/usr/bin/perl -w
2 use strict;
3 use bmwqemu;
4 my $basedir="/home/bernhard/code/cvs/perl/autoinst/raid";
5 my $iso=$ENV{SUSEISO};
6 if($iso=~m/openSUSE-NET-/) {$ENV{NETBOOT}=1}
7 if($iso=~m/openSUSE-[A-Z]+-LiveCD/) {$ENV{LIVECD}=1}
8 system(qw"/bin/mkdir -p", $basedir);
9 for my $i (1..4) {
10         system(qw(qemu-img create) ,"$basedir/$i", "4G");
11 }
12
13 $qemupid=fork();
14 die "fork failed" if(!defined($qemupid));
15 if($qemupid==0) {
16         my @params=(qw(-m 1024 -net user -smp 4 -monitor), "tcp:127.0.0.1:15222,server,nowait", "-net", "nic,model=e1000,macaddr=52:54:00:12:34:56");
17         for my $i (1..4) {
18                 my $boot=$i==1?",boot=on":"";
19                 push(@params, "-drive", "file=$basedir/$i,if=virtio$boot");
20         }
21         push(@params, "-boot", "d", "-cdrom", $iso);
22         push(@params, "-vnc", ":99");
23         exec($qemubin, @params);
24         die "exec $qemubin failed";
25 }
26 sleep 1; # time to let qemu start
27
28 1;