All of lore.kernel.org
 help / color / mirror / Atom feed
* Beware using modules from different grub versions (was error: cannot allocate real mode pages)
@ 2013-09-10  2:27 Glenn Washburn
  2013-09-10  2:59 ` Andrey Borzenkov
  0 siblings, 1 reply; 3+ messages in thread
From: Glenn Washburn @ 2013-09-10  2:27 UTC (permalink / raw)
  To: grub-devel@gnu.org

[-- Attachment #1: Type: text/plain, Size: 2571 bytes --]

I originally started writing this to request help from the grub-help
list in solving this problem that has been plaguing me for days.  I just
solved the issue and thought others might be able to benefit.  And
perhaps this issue indicates a need for module versioning as the linux
kernel has.  I'm sending to the devel list, because I think much is
related to development.

I'd been having some problems trying to get grub to boot my
x86_64 ubuntu server installation lately.  I've attached some
screenshots of relevant grub output with some debugging on.  I'm using
grub compiled from HEAD and tried both the x86_64 and i386 platforms
for the "pc" target. Actually, I'm curious to know if there's actually
a difference in those platforms.

It turns out this error was a result of loading the linux module (and
many of its dependants, ie mmap) from a different (older) grub
install.  I presume this is not infact because of a bug (otherwise the
original install wouldn't have booted), rather the fact that the
versions are different.

One might suggest chainloading the ubuntu grub installation instead of
using "configfile" to just load its config.  This won't work for me (in
general) because the other grub install doesn't necessarily have the
capability to boot the system (ie doesn't have cryptmount/lvm/raid
support).

Should grub implement some kind of module versioning to eliminate this
issue?  Ideally, this seems the right thing.  However, I'm not sure if
versioning as restrictive as limiting loading to modules of the same
grub version.  In my experience, loading modules from other grub
versions hasn't caused much issue, so this could cause a different pain
for people using this "feature".

Regardless, there's another issue, the difficulty in ensuring where
modules are being loaded from.  Currently, modules are searched for in
the $prefix directory.  But $prefix is used for many other things as
well, like config loading and font loading.  So if you want the fonts
coming from the ubuntu install, but the modules coming from a newer
grub, you have problems.

I see two potential, non-mutually exclusive solutions.  One, have
another $moduledir variable for dividing up the multi-use $prefix
($prefix would be used as a fallback). And two, have $prefix (and
potentially $moduledir) be a list of paths, much like the bash $PATH
variable.  The first suggestion would be almost trivial to implement,
while the second for $prefix will be a pain because potentially all
uses of $prefix would need to be modified.

Comments and suggestions appreciated.
Glenn

[-- Attachment #2: grub-server-alloc-real-mode-pages.png --]
[-- Type: image/x-apple-ios-png, Size: 64255 bytes --]

[-- Attachment #3: grub-server-alloc-real-mode-pages-2.png --]
[-- Type: image/x-apple-ios-png, Size: 55444 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-09-10  5:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-10  2:27 Beware using modules from different grub versions (was error: cannot allocate real mode pages) Glenn Washburn
2013-09-10  2:59 ` Andrey Borzenkov
2013-09-10  5:03   ` Glenn Washburn

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.