[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: UEFI Boot with Grub-Experimental

From: Reynald Lercier
Subject: Re: UEFI Boot with Grub-Experimental
Date: Fri, 2 Jul 2010 16:14:53 +0200 (CEST)
User-agent: Alpine 2.00 (DEB 1167 2008-08-23)

I observed a similar beahaviour as stephen in my side.

Especially I had no dificulty at all to switch to a 1680x1050x32 graphic mode (following Piscium's advices) in the grub2 interface with what follows in grub.cfg

        insmod efi_gop
        insmod font
        loadfont (hd1,gpt4)/usr/share/grub/unicode.pf2
        insmod gfxterm
        set gfxmode=1680x1050x32
        set gfxpayload=1680x1050x32
        terminal_output gfxterm

        insmod part_gpt
        insmod ext2

        set timeout=10

        menuentry "Linux (with fakebios + mbp62hd)" {
                search  -s -f  /boot/vmlinuz-2.6.34-custom
                linux /boot/vmlinuz-2.6.34-custom root=/dev/sda4 video=efifb
                initrd /boot/initrd.img-2.6.34-custom

When the power is on, rEFIt first runs, which then, when I select the corresponding icon, runs EFI grub2 (that I put in the EFI fat first partition), which in turn should boot a linux kernel. But, the laptop always hangs here, in the boot comand (black screen, no message).

I tried several linux kernel, the lucid ubuntu's one (2.6.32-22-generic) and a recompiled 2.6.34-custom too. But, the laptop still always hangs at the boot up (black screen, no message). Unfortunataly, absolutely no output in any file of the /var/log directory too.

Just to test further, I tried to patch the "linux-2.6.34/drivers/video/efifb.c" linux kernel file too, by adding information about my hardware (framebuffer address, stride, etc... of the GT330M nvidia crad, all obtained from rEFIt commands: pci, devices, dh, etc.) in the dmi_list[] variable as follows

        static struct efifb_dmi_info {
                char *optname;
                unsigned long base;
                int stride;
                int width;
                int height;
        } dmi_list[] = {
        [M_MBP_6_2_HD] = { "mbp62hd", 0x90030000, 2048 * 4, 1680, 1050 },
        [M_UNKNOWN] = { NULL, 0, 0, 0, 0 }

I modified acordingly enum definitionw (for M_MBP_6_2_HD) and __initdata dmi_system_table.

    linux /boot/vmlinuz-2.6.34-custom root=/dev/sda4 video=efifb:mbp62hd
still behaves badly (black screen).

Any idea about how I could understand further what's going on ?

On Thu, 1 Jul 2010, address@hidden wrote:

Ah, yes -- the gfxpayload variable works.  But now after it
successfully initializes the video mode, it hangs at the boot with the _
(no output yet at all from kernel).

I'm trying to boot ubuntu lucid (2.6.32-22-generic).  The EFI boot
works on some machines, one others it doesn't.


On Thu, 1 Jul 2010 11:33:17 -0700, Seth Goldberg
<address@hidden> wrote:
Which kernel or os are you loading?  Did you try setting the
gfxpayload env var to 1024x768?


On Jul 1, 2010, at 10:54 AM, <address@hidden> wrote:

Something I forgot to mention that's important -- (sorry for the spam)
-- GRUB tries to initalize with 800x600 regardless of what $gfxmode is
set to.

set gfxmode=1024x768

will still result in GRUB trying to initalize the video as 800x600
after the 'boot' command is issued.


On Thu, 01 Jul 2010 10:49:59 -0700, <address@hidden> wrote:
Hi everyone,

I've had some interesting discoveries / success with this problem in
the past couple of days.  Where I am I have several machines to try out.
On some of the machines, it works; while on others, it doesn't.  I'm
pretty sure this all has to do with the video modes now.

On my laptop (which also supports UEFI), there is only one video mode
supported as reported by efi_video_modes: 1024x768.  However, when GRUB
is booting, it calls grub_video_set_mode with the string "800x600".  It
then fails to initialize the GOP adapter (which reports it only supports
1024x768).  Then it complains that no suitable mode is found, and tries
to boot nayways without a video mode set.

Does anyone know why it would be trying to boot as 800x600 only and not
the 1024?

I'll be looking into the code more, but thought I'd let those who are
interested know.


On Thu, 1 Jul 2010 08:16:34 +0200 (CEST), Reynald Lercier
<address@hidden> wrote:

I encounter very similar problemes on a my macbook pro 15', a MBP 6,2.

(I need full EFI booting on this machine in order to use under linux
the INTEL graphic card, instead of the NVIDIA GT330M one, and finally
increase a lot the battery run time)

In my case efi_video_info returns

GOP info:
List of video modes:
0: 1680 x 1050, BGRA8, scan line 1680
Current mode: 0

Same question, what to do now with this ?


On Wed, 30 Jun 2010, address@hidden wrote:


Thanks for the response.

After trying terminal_output, the computer screen would simply go black
and the machine would hang (the numlock key would not respond) after the
terminal_output gfx command was executed; this would happen regardless
of whether or not set gfxmode was called before.

I also have just tried the efi_video_info patch; the system reports:

GOP info:
List of video modes:
0: 1024 x 768, bitonly, scan line 1024
Current mode: 0

Do i need to pass this information on to the kernel somehow?


On Wed, 30 Jun 2010 10:40:31 +0100, Colin Watson <address@hidden>
On Wed, Jun 30, 2010 at 01:54:36AM -0700, address@hidden wrote:
After having no luck using the grub-efi-amd64 package in ubuntu, or the
grub trunk, I've started trying to compile my own grub and getting it to
boot on a new Intel motherboard which supports EFI.  I've not been able
to get any output yet from the acutal linux kernel; usually the system
will simply hang after the boot menu option is selected, or the 'boot'
command is issued from the grub command line.

Currently the farthest I've gotten is using the grub command line and
typing in the following commands:

insmod efi_gop # no impact on result
insmod ext2
insmod part_gpt

set root=(hd0,gpt3)
fakeroot # optional, no impact on result

I guess that should be 'fakebios'.

error: no suitable mode found

After 'insmod efi_gop', could you try 'insmod gfxterm' and then
'terminal_output gfxterm', and see what happens?  Before the
terminal_output command, you can also use 'set gfxmode=MODE' (e.g. 'set
gfxmode=1024x768') to change its mode selection.  gfxterm can help
matters here, as that way you have a working video mode that the kernel
can be told to inherit, rather than having to probe its own.

Unfortunately right now it's hard to get debugging information on EFI
video modes.  Since you're building your own GRUB anyway, though, you
could try this patch against trunk:

That will give you an 'efi_video_info' command, which should dump out
the available GOP modes, and might be useful to get a slightly better
idea of what's going on.

booting however

And then nothing else happens.

It's possible that the kernel may have booted successfully, but that you
simply don't have a working console.  It would be useful to try pinging
the machine to test that.

I've also tried newreloc, but I don't think this has anything to do with


Grub-devel mailing list

Grub-devel mailing list

Grub-devel mailing list

Grub-devel mailing list

Grub-devel mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]