Update bootsplash for grub
authorMichael Prokop <mika@grml.org>
Mon, 2 Mar 2009 12:32:07 +0000 (13:32 +0100)
committerMichael Prokop <mika@grml.org>
Mon, 2 Mar 2009 12:32:07 +0000 (13:32 +0100)
debian/rules
grml2usb
grub/grml.png [new file with mode: 0644]

index c52c6a1..43d3a94 100755 (executable)
@@ -41,6 +41,7 @@ install: build
        install -m 755 lilo/lilo.static.amd64 debian/grml2usb//usr/share/grml2usb/lilo/lilo.static.amd64
        install -m 644 grub/splash.xpm.gz     debian/grml2usb/usr/share/grml2usb/grub/splash.xpm.gz
        install -m 644 grub/stage2_eltorito   debian/grml2usb/usr/share/grml2usb/grub/stage2_eltorito
+       install -m 644 grub/grml.png          debian/grml2usb/usr/share/grml2usb/grub/grml.png
        install -m 644 mbr/mbrmgr             debian/grml2usb/usr/share/grml2usb/mbr/mbrmgr
        install -m 644 mbr/mbrldr             debian/grml2usb/usr/share/grml2usb/mbr/mbrldr
 
index 55f24bb..28a09df 100755 (executable)
--- a/grml2usb
+++ b/grml2usb
@@ -214,7 +214,7 @@ def mkfs_fat16(device):
     proc = subprocess.Popen(["mkfs.vfat", "-F", "16", device])
     proc.wait()
     if proc.returncode != 0:
-        raise Exception("error executing mkfs.vfat")
+        raise CriticalException("error executing mkfs.vfat")
 
 
 def generate_main_grub2_config(grml_flavour, install_partition, bootoptions):
@@ -233,13 +233,20 @@ set timeout=5
 
 insmod fat
 
-insmod png
-if background_image (hd0, %(install_partition)s)/boot/grub/grml.png ; then
+if font (hd0,%(install_partition)s)/boot/grub/ascii.pff ; then
+   insmod png
+   set gfxmode=640x480
+   insmod gfxterm
+   insmod vbe
+   terminal gfxterm
+fi
+
+if background_image (hd0,%(install_partition)s)/boot/grub/grml.png ; then
   set color_normal=black/black
-  set color_highlight=magenta/black
+  set color_highlight=red/black
 else
-  set menu_color_normal=cyan/blue
-  set menu_color_highlight=white/blue
+  set menu_color_normal=white/black
+  set menu_color_highlight=black/yellow
 fi
 
 menuentry "%(grml_flavour)s (default)" {
@@ -265,7 +272,7 @@ menuentry "FreeDOS" {
     initrd  /boot/addons/balder10.imz
 }
 
-menuentry "Boot Operating System on first partition of first disk" {
+menuentry "Boot OS of first partition on first disk" {
     set root=(hd0,1)
     chainloader +1
 }
@@ -972,6 +979,20 @@ def copy_bootloader_files(iso_mount, target):
                                 grub_target + 'splash.xpm.gz'])
         proc.wait()
 
+    # grml splash in grub
+    if os.path.isfile("/usr/share/grml2usb/grub/grml.png"):
+        logging.debug("cp /usr/share/grml2usb/grub/grml.png to %s" % grub_target + 'grml.png')
+        proc = subprocess.Popen(["install", "--mode=664", '/usr/share/grml2usb/grub/grml.png',
+                                grub_target + 'grml.png'])
+        proc.wait()
+
+    # font file for graphical bootsplash in grub
+    if os.path.isfile("/usr/share/grub/ascii.pff"):
+        logging.debug("cp /usr/share/grub/ascii.pff to %s" % grub_target + 'ascii.pff')
+        proc = subprocess.Popen(["install", "--mode=664", '/usr/share/grub/ascii.pff',
+                                grub_target + 'ascii.pff'])
+        proc.wait()
+
     if not os.path.isfile("/usr/share/grml2usb/grub/stage2_eltorito"):
         logging.critical("Error: /usr/share/grml2usb/grub/stage2_eltorito can not be read.")
         raise
@@ -1278,10 +1299,14 @@ def handle_vfat(device):
             sys.exit(1)
 
         # make sure the user is aware of what he is doing
-        f = raw_input("Are you sure you want to format the device with a fat16 filesystem? y/N ")
+        f = raw_input("Are you sure you want to format the specified partition with fat16? y/N ")
         if f == "y" or f == "Y":
             logging.info("Note: you can skip this question using the option --force")
-            mkfs_fat16(device)
+            try:
+                mkfs_fat16(device)
+            except CriticalException, error:
+                logging.critical("Execution failed: %s", error)
+                sys.exit(1)
         else:
             sys.exit(1)
 
diff --git a/grub/grml.png b/grub/grml.png
new file mode 100644 (file)
index 0000000..9506495
Binary files /dev/null and b/grub/grml.png differ