В Fri, 28 Nov 2014 17:25:55 +0000 Ian Campbell <i...@hellion.org.uk> пишет:
> On Fri, 2014-11-28 at 20:09 +0300, Andrei Borzenkov wrote: > > В Fri, 28 Nov 2014 08:33:34 +0000 > > Ian Campbell <i...@hellion.org.uk> пишет: > > > > > From: Ian Campbell <i...@debian.org> > > > > > > This avoids needing to update all the native update-grub stanzas to also > > > probe > > > for and arrange to load the relevant decompressor, which would be > > > wasteful on > > > native boots. > > > > > > > Could you give some more details why you need it? > > In order to boot a Linux kernel under Xen grub needs to extract the ELF > file from the bzImage payload, which is compressed. > > The compression algo is a kernel compile time option, gz and xz are the > most probably ones today. > Not directly related but I this comment in Makefile draw my attention: # Note that the bytes added by size_append will make the xz tool think that # the file is corrupt. This is expected. We probably never read vmlinuz to the end anyway, but I wonder if it could be an issue. > > > +push_all_decompressor_modules(void) > > > +{ > > > + grub_install_push_module ("gzio"); > > > + grub_install_push_module ("xzio"); > > > + grub_install_push_module ("lzopio"); > > > +} > > > + > > > > It is not enough. Some of them need another modules that are autoloaded > > by normal. > > autoloading should work, I think. > OK, so you need it post-normal. core.img is really about getting access to /boot/grub; anything else can be done from within grub.cfg. If you do not want to load other filters unconditionally, just use if [ x$grub_platform = xxen ]; then insmod xzio fi But as far as I understand, CONFIG_KERNEL_XZ is not really dependent on Xen; so we may want to either load them for real hardware as well or - better - extend grub-file to check for compression method. > But if not -- how can one determine which modules are required and/or > arrange for them to be added automatically? > > > > > > +static void > > > probe_mods (grub_disk_t disk) > > > { > > > grub_partition_t part; > > > @@ -1228,6 +1236,23 @@ main (int argc, char *argv[]) > > > } > > > } > > > > > > + > > > + switch (platform) > > > + { > > > + case GRUB_INSTALL_PLATFORM_I386_XEN: > > > + case GRUB_INSTALL_PLATFORM_X86_64_XEN: > > > + /* When booting a Xen PV kernel grub may need to decompress the > > > + * kernel which may use a variety of algorithmns. Since we try > > > + * to reuse the native grub.cfg files rather than trying to > > > + * insmod the relevant decompressors on the fly we build them > > > + * into the core image. This means we avoid needlessly loading > > > + * modules on native. */ > > > + push_all_decompressor_modules(); > > > + break; > > > + default: > > > + break; > > > + } > > > + > > > grub_install_copy_files (grub_install_source_directory, > > > grubdir, platform); > > > > > > > > > -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org