[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH OSSTEST v7 03/15] distros: support booting Debian PV (d-i installed) guests with pvgrub.
This requires the use of the pv-grub-menu package which is in Jessie onwards. (it is in wheezy-backports which is the subject of a subsequent patch). The bootloader to use is specified via a runvar {Guest}_bootloader. Adjust make-distros-flight to use pvgrub for some subset of i386 and amd64 guests to get coverage. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- v7: Move definition of $extra_packages variable to here which is its first usage. Use {Guest}_suite not {Guest}_dist as runvar to choose version. v3: Define and use arch_debian2xen and arch_xen2debian Avoid pv-grub-x86_64.gz on i386 dom0, we don't built it there. Fiddle with py vs pv grub stripy a bit. --- Osstest.pm | 7 +++++++ Osstest/Debian.pm | 4 +++- make-distros-flight | 20 +++++++++++++++++++- ts-debian-di-install | 11 +++++++++-- 4 files changed, 38 insertions(+), 4 deletions(-) diff --git a/Osstest.pm b/Osstest.pm index e8bd77b..e189017 100644 --- a/Osstest.pm +++ b/Osstest.pm @@ -38,6 +38,7 @@ BEGIN { db_begin_work ensuredir get_filecontents_core_quiet system_checked nonempty visible_undef show_abs_time + %arch_debian2xen %arch_xen2debian ); %EXPORT_TAGS = ( ); @@ -49,6 +50,12 @@ our $mjobdb; our $dbh_tests; +our %arch_debian2xen = qw(i386 x86_32 + amd64 x86_64 + armhf armhf); +our %arch_xen2debian; +$arch_xen2debian{$arch_debian2xen{$_}} = $_ foreach keys %arch_debian2xen; + #---------- static default config settings ---------- our %c = qw( diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm index 673ceba..a3c5244 100644 --- a/Osstest/Debian.pm +++ b/Osstest/Debian.pm @@ -709,7 +709,9 @@ sub preseed_create_guest ($$;@) { my $suite= $xopts{Suite} || $c{DebianSuite}; - my $preseed_file= preseed_base($ho, $suite, $sfx, '', %xopts); + my $extra_packages = "pv-grub-menu" if $xopts{PvMenuLst}; + + my $preseed_file= preseed_base($ho, $suite, $sfx, $extra_packages, %xopts); $preseed_file.= (<<END); d-i partman-auto/method string regular d-i partman-auto/choose_recipe \\ diff --git a/make-distros-flight b/make-distros-flight index 586737c..5fc8552 100755 --- a/make-distros-flight +++ b/make-distros-flight @@ -78,6 +78,11 @@ test_do_one_netboot () { *) ;; esac + stripy bootloader pvgrub pygrub \ + "$xenarch" "amd64" \ + "$dom0arch" "i386" \ + "$domU" "amd64" \ + case $domU in i386|amd64) diurl="$diurl/xen";; @@ -85,8 +90,20 @@ test_do_one_netboot () { diurl="$diurl/debian-installer/arm64";; esac + case ${dom0arch}_${domU}_${gsuite} in + arm*_arm*_*) bootloader="pygrub";; # no pvgrub for arm + + # Needs a menu.lst, not present in Squeeze+ due to switch to grub2, + # workedaround in Jessie+ with pv-grub-menu package. + *_squeeze) bootloader="pygrub";; + *_wheezy) bootloader="pygrub";; + + # pv-grub-x86_64.gz is not built by 32-bit dom0 userspace build. + i386_amd64_*) bootloader="pygrub";; + esac + job_create_test \ - test-$xenarch$kern-$dom0arch-$domU-$gver-netboot-pygrub \ + test-$xenarch$kern-$dom0arch-$domU-$gver-netboot-$bootloader \ test-debian-di xl $xenarch $dom0arch \ kernbuildjob=${bfi}build-$dom0arch-$kernbuild \ debian_arch=$domU \ @@ -94,6 +111,7 @@ test_do_one_netboot () { debian_method=netboot \ debian_netboot_kernel="$diurl/vmlinuz" \ debian_netboot_ramdisk="$diurl/initrd.gz" \ + debian_bootloader=$bootloader \ all_hostflags=$most_hostflags } diff --git a/ts-debian-di-install b/ts-debian-di-install index ed3c348..14167c8 100755 --- a/ts-debian-di-install +++ b/ts-debian-di-install @@ -88,6 +88,8 @@ sub ginstall () { my $method= $r{"$gho->{Guest}_method"}; my $tmpdir= "/root/$flight-$job-di"; + my $bl= $r{"$gho->{Guest}_bootloader"}; + target_cmd_root($ho, <<END); rm -rf $tmpdir mkdir $tmpdir @@ -102,7 +104,7 @@ END $method_cfg = setup_netboot($tmpdir, $arch, $suite); - $ps_url = preseed_create_guest($gho, '', Suite=>$suite); + $ps_url = preseed_create_guest($gho, '', Suite=>$suite, PvMenuLst=>($bl eq "pvgrub")); $extra_disk = ""; } @@ -143,7 +145,12 @@ END guest_await_shutdown($ho,$gho,3600); guest_destroy($gho); - my $blcfg = <<END; + my $xenarch = $arch_debian2xen{$arch}; + my $pvgrub = "/usr/local/lib/xen/boot/pv-grub-$xenarch.gz"; + my $blcfg = $bl eq "pvgrub" ? <<END : <<END; +kernel = "$pvgrub" +extra = "(hd0,0)/boot/grub/menu.lst" +END bootloader = "pygrub" END -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |