GRUB Boot Picture
Posted: Sat Oct 25, 2008 6:39 pm
I have been looking for a way to show a picture during boot like Ubuntu or most OS. I heard there is a way using GRUB but I cannot recall. Any hints?
You still need the setvbe patch or a similar patch. AFAIK support for the Multiboot video fields newer made it into GRUB Legacy.whiteOS wrote:I just want graphical boot screen. GRUB has VBE functions built-in, why would I build a vesa driver? Any one using GRUB to load an image at boot? Link, Sample, Hint?
I mentioned this to him on his blog, I'm sure he'll get around to fixing it.. until then I'll attach the patches here.whiteOS wrote:Anyone know where I get grub 0.94 vbe patch. this link dead: http://www.smk.co.za/software/vbe-grub/ the site runs but link to patch is dead.
How can I apply the patch? And to use it, must I change something in my menu.lst?Brynet-Inc wrote:I mentioned this to him on his blog, I'm sure he'll get around to fixing it.. until then I'll attach the patches here.whiteOS wrote:Anyone know where I get grub 0.94 vbe patch. this link dead: http://www.smk.co.za/software/vbe-grub/ the site runs but link to patch is dead.
Note; It cannot set a "boot image" as requested by the OP, that's a different patch.. it's typically found in the repositories of Linux distributions.
Looking back though, I realize I forgot to add the *.texi files as mentioned in the ChangeLog, whoops, not sure what happened to them.
Have fun.
Try something like this:Jeko wrote:How can I apply the patch? And to use it, must I change something in my menu.lst?
Code: Select all
patch -p0 < patch-file
Code: Select all
@echo off
set PATH=path_to_patch.exe;%PATH%
chdir path_to_patch.exe
patch.exe -p0 < file.patch
pause
I found a patch for GRUB 0.97 in the Debian source files. I attached it. Be aware that it conflicts with the setvbe patch, but it's only two lines of code, so you can easily fix it. You also need automake in order to create a successful build using the Debian patch. I never used automake before. I just read the Debian patch script and saw what it did. I hope you can get automake for Windows (Cygwin?). Well, I did something like this:whiteOS wrote:any luck finding splashimage patch for 0.94 grub?
Code: Select all
tar xzvf grub-0.97.tar.gz # Extract GRUB source code.
patch -p0 < grub_0.97-27etch1_debian_graphics.patch
patch -p0 < vbe_grub-0.97.patch
# Here I fixed the patch conflict. Use your favourite editor.
mkdir grubinst # Folder for installing GRUB files.
cd grub-0.97/
aclocal-1.9
automake-1.9
autoconf
./configure --disable-auto-linux-mem-opt --prefix=../grubinst
make
make check
make install
cd ../grubinst/lib/grub/i386-pc/ # Here you find the built GRUB stages.
try setting this line at the end of your menu.lst:Walling wrote:although they don't seem to work. When I use vbematch it displays "vbematch <resolution>" when loading my kernel, but it doesn't change the resolution or anything. The built-in vbeprobe command also gives me an error. Strange. I have only tested in Bochs/QEMU. I need to test it on a real computer.
Many distributions enable splashimage, but I haven't seen any use the vbeset patch for Multiboot kernels. Why should they? They only have to load the Linux kernel I have seen some distributions (openSUSE) that just pass a VBE mode number as a kernel argument and then it is up to the kernel to set the VBE mode.Snake wrote:Can't we just use the grub supplied with various distributions to make another floppy drive grub bootable by using grub-install command?
Does it work for you in Bochs/QEMU too? I have to try on a real machine, but I just had the time yet. The only pc I have (IBM X41 laptop) does not have a cd-drive, so I have to install the patched GRUB in order to test it. I will eventually.whiteOS wrote:try setting this line at the end of your menu.lst:
vbeset 0x117
that should be 1024X768X16 mode, and it works for me.
Hmm... it seems the vbeset patch isn't "finished". It does not transfer the VBE info to the kernel. Look in the patch file. There's a comment saying "give it to the kernel", but no code:whiteOS wrote:I of course see nothing sense i no have vbe address mapped, still trying to find a way to get address from grub.
Code: Select all
--- grub-0.97/stage2/boot.c Tue Mar 30 11:44:08 2004
+++ grub-0.97/stage2/boot.c Thu Nov 23 20:26:17 2006
@@ -87,6 +87,13 @@
}
type = KERNEL_TYPE_MULTIBOOT;
str2 = "Multiboot";
+
+ /* Check to see if the kernel wants a video mode */
+ if ( (flags & MULTIBOOT_VIDEO_MODE) != 0 )
+ {
+ // ... give it to the kernel
+ }
+
break;
}
}