Hi,

Since I'm unable to reproduce this, I will need some help.  I need you to
boot a modified Linux image with the "linux16" loader, e.g.:

  linux16 /boot/bzImage
  boot

and then tell me the output (if you're using the older version of GRUB,
linux16 won't be present, in that case use "linux" instead).

You might be able to get it through a serial port with console=ttyS0
parameter, but I'm not sure if that will work at this point in the boot
process.  Otherwise, use pencil and paper!

The patch you need to apply to Linux is attached.  If it's more practical
to you, you can use this prebuilt image instead:

  http://people.debian.org/~rmh/bzImage

which is gpg-signed:

  http://people.debian.org/~rmh/bzImage.sig

-- 
Robert Millan

  The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
  how) you may access your data; but nobody's threatening your freedom: we
  still allow you to remove your data and not access it at all."
diff --git a/arch/x86/boot/main.c b/arch/x86/boot/main.c
index 140172b..8cb5195 100644
--- a/arch/x86/boot/main.c
+++ b/arch/x86/boot/main.c
@@ -172,6 +172,30 @@ void main(void)
 	if (cmdline_find_option_bool("quiet"))
 		boot_params.hdr.loadflags |= QUIET_FLAG;
 
+	puts ("screen_info dump:\n");
+	printf ("orig_x = 0x%x, orig_y =  0x%x\n", boot_params.screen_info.orig_x, boot_params.screen_info.orig_y);
+	printf ("ext_mem_k = 0x%x\n", boot_params.screen_info.ext_mem_k);
+	printf ("orig_video_page = 0x%x\n", boot_params.screen_info.orig_video_page);
+	printf ("orig_video_mode = 0x%x\n", boot_params.screen_info.orig_video_mode);
+	printf ("orig_video_cols = 0x%x\n", boot_params.screen_info.orig_video_cols);
+	printf ("orig_video_ega_bx = 0x%x\n", boot_params.screen_info.orig_video_ega_bx);
+	printf ("orig_video_lines = 0x%x\n", boot_params.screen_info.orig_video_lines);
+	printf ("orig_video_isVGA = 0x%x\n", boot_params.screen_info.orig_video_isVGA);
+	printf ("orig_video_points = 0x%x\n", boot_params.screen_info.orig_video_points);
+	printf ("lfb_width / lfb_height / lfb_depth = %dx%dx%d\n", boot_params.screen_info.lfb_width, boot_params.screen_info.lfb_height, boot_params.screen_info.lfb_depth);
+	printf ("lfb_base = 0x%x, lfb_size = 0x%x\n", boot_params.screen_info.lfb_base, boot_params.screen_info.lfb_size);
+	printf ("cl_magic = 0x%x, cl_offset = 0x%x\n", boot_params.screen_info.cl_magic, boot_params.screen_info.cl_offset);
+	printf ("lfb_linelength = 0x%x\n", boot_params.screen_info.lfb_linelength);
+	printf ("red_size = 0x%x, red_pos = 0x%x\n", boot_params.screen_info.red_size, boot_params.screen_info.red_pos);
+	printf ("green_size = 0x%x, green_pos = 0x%x\n", boot_params.screen_info.green_size, boot_params.screen_info.green_pos);
+	printf ("blue_size = 0x%x, blue_pos = 0x%x\n", boot_params.screen_info.blue_size, boot_params.screen_info.blue_pos);
+	printf ("rsvd_size = 0x%x, rsvd_pos = 0x%x\n", boot_params.screen_info.rsvd_size, boot_params.screen_info.rsvd_pos);
+	printf ("vesapm = 0x%x:0x%x\n", boot_params.screen_info.vesapm_seg, boot_params.screen_info.vesapm_off);
+	printf ("pages = 0x%x\n", boot_params.screen_info.pages);
+	printf ("vesa_attributes = 0x%x\n", boot_params.screen_info.vesa_attributes);
+	printf ("capabilities = 0x%x\n", boot_params.screen_info.capabilities);
+	die ();
+
 	/* Do the last things and invoke protected mode */
 	go_to_protected_mode();
 }

Reply via email to