grub-devel
[Top][All Lists]
Advanced

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

Native CD test results


From: Pavel Roskin
Subject: Native CD test results
Date: Wed, 26 Mar 2008 22:09:48 -0400
User-agent: Internet Messaging Program (IMP) H3 (4.1.4)

Hello!

I was installing Fedora 9 Beta on several systems and used that opportunity to test current GRUB as well. I've found several issues, and it's easier for me to put them into one message, so that it's a single story, but please feel free to change subject to discuss particular issues.

I remastered the network install CD to use GRUB. To do that, I extracted the disk contents to a separate directory, added /boot/grub/grub.cfg to it. I tried to emulate all functionality present in the isolinux menu.

It turned out that the splash image called isolinux/splash.jpg is actually a png file. What's worse, GRUB won't use it because it's not 8-bit:

$ identify splash.jpg
splash.jpg PNG 640x480 640x480+0+0 DirectClass 16-bit 436.441kb

If we want to support fancy Fedora logos with their subtle color changes across the screen, we may need to support 16-bit PNG images. I ended up converting that file to tga (which is always 8-bit), but I see now that converting to 8-bit PNG would work too. My monitors are not to good to see the difference, but some designers won't compromise, I'm afraid. While at that, It would be great to support XPM as well, as it's used in the patched GRUB 1 installed by Fedora.

To make the CD image, I used grub-mkrescue with the --overlay option. I tested the image on several machines, and it would boot with only one exception. One rather old system with a Syntax SV266A motherboard and 800 MHz AMD Duron would hang while showing "Welcome to GRUB!" That system is also unique for having 3 IDE CD drives (2 CD-RWs and one DVD+-RW), and GRUB would hang regardless of which drive the CD is in.

Other systems would boot. Older systems were showing large drive numbers for the CD, like hd37 or hd59 (I don't remember exact numbers), whereas newer systems would show the CD as hd2.

I was surprised to see that "ls" would not show partitions on the hard drives. It turns out the "pc" module wasn't loaded. Perhaps it should be preloaded, or maybe it would be autoloaded when a PC style partition table is detected.

Once I had Fedora 9 installed, I tried to install the latest GRUB on it. But I would get a strange message: "Warning: syntax error (missing slash) in `'"

It turned out that grub_parse_color_name_pair() was called from normal/menu.c, which didn't know a prototype for that function. Even though NULL was passed as the "name" argument, grub_parse_color_name_pair() would see some non-zero value. Adding the declaration to normal.h fixed the problem.

It's a 32-bit system (AMD 1.1 GHz) running 32-bit Fedora, and I'm surprised that lack of declaration caused such problem when no floats or 64-bit integers were involved. It's probably a bug in gcc 4.3.0 since it's essentially a silent change in the calling convention for the most popular architecture. But it's a bug I like to have, as it forces us to pay attention to function declarations. This would be much more important on 64-bit systems, such as IA-64.

Perhaps we should enable more warnings. Also, it would be great to make the build system less noisy by default, so that the warnings stand out as they should. And I'd like to be able to check GRUB with sparse one day.

--
Regards,
Pavel Roskin




reply via email to

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