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
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel