[rhel7-branch] livemedia-creator: Update ppc64 live to use grub2

Brian C. Lane bcl at redhat.com
Thu Aug 28 18:36:54 UTC 2014


Update the templates and configuration files to support grub2 live
image creation.

Related: rhbz#1102318
Related: rhbz#1131199
---
 share/live/config_files/ppc/bootinfo.txt |  9 +++---
 share/live/config_files/ppc/grub.cfg.in  | 34 +++++++++++++++++++++++
 share/live/ppc.tmpl                      | 47 ++++++++++----------------------
 3 files changed, 53 insertions(+), 37 deletions(-)
 create mode 100644 share/live/config_files/ppc/grub.cfg.in

diff --git a/share/live/config_files/ppc/bootinfo.txt b/share/live/config_files/ppc/bootinfo.txt
index ac766d4..6eac6c4 100644
--- a/share/live/config_files/ppc/bootinfo.txt
+++ b/share/live/config_files/ppc/bootinfo.txt
@@ -1,7 +1,8 @@
-<chrp-boot> <description>Linux</description> 
-<os-name>Linux</os-name> 
-<boot-script>boot &device;:\ppc\chrp\yaboot</boot-script> 
-<icon size=64,64 color-space=3,3,2> 
+<chrp-boot>
+<description>grub 2.00</description>
+<os-name>grub 2.00</os-name>
+<boot-script>boot &device;:\boot\grub\powerpc-ieee1275\core.elf</boot-script>
+<icon size=64,64 color-space=3,3,2>
 <bitmap> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
diff --git a/share/live/config_files/ppc/grub.cfg.in b/share/live/config_files/ppc/grub.cfg.in
new file mode 100644
index 0000000..30d9469
--- /dev/null
+++ b/share/live/config_files/ppc/grub.cfg.in
@@ -0,0 +1,34 @@
+set default=0
+set timeout=5
+
+echo -e "\nWelcome to the @PRODUCT@ @VERSION@ installer!\n\n"
+
+for BITS in 32 64; do
+  if [ -d "/ppc/ppc${BITS}" ]; then
+    menuentry "Start @PRODUCT@ @VERSION@ (${BITS}-bit kernel)"  $BITS --class fedora --class gnu-linux --class gnu --class os {
+      linux /ppc/ppc${2}/vmlinuz @ROOT@ ro rd.live.image quiet
+      initrd /ppc/ppc${2}/initrd.img
+    }
+
+    menuentry "Test this media & start @PRODUCT@ @VERSION@  (${BITS}-bit kernel)" $BITS --class fedora --class gnu-linux --class  gnu --class os {
+      linux /ppc/ppc${2}/vmlinuz @ROOT@ rd.live.image rd.live.check ro quiet
+      initrd /ppc/ppc${2}/initrd.img
+      }
+
+    menuentry "Rescue a @PRODUCT@ system (${BITS}-bit kernel)" $BITS  --class fedora --class gnu-linux --class gnu --class os {
+      linux /ppc/ppc${2}/vmlinuz @ROOT@ rd.live.image rescue ro
+      initrd /ppc/ppc${2}/initrd.img
+      }
+  fi
+done
+
+submenu 'Other options...' {
+  menuentry 'Reboot' {
+    reboot
+  }
+
+  menuentry 'Exit to Open Firmware' {
+    exit
+  }
+}
+
diff --git a/share/live/ppc.tmpl b/share/live/ppc.tmpl
index 3ff15da..790817a 100644
--- a/share/live/ppc.tmpl
+++ b/share/live/ppc.tmpl
@@ -2,6 +2,7 @@
 <%
 configdir="tmp/config_files/ppc"
 BOOTDIR="ppc"
+GRUBDIR="boot/grub"
 LIVEDIR="LiveOS"
 MACDIR=BOOTDIR+"/mac"
 NETBOOTDIR="images/netboot"
@@ -9,7 +10,6 @@ NETBOOTDIR="images/netboot"
 WRAPPER="usr/sbin/wrapper"
 WRAPPER_DATA="usr/"+libdir+"/kernel-wrapper"
 
-bitsizes = set()
 prepboot = ""
 
 ## NOTE: yaboot freaks out and stops parsing its config if it sees a '\',
@@ -17,8 +17,6 @@ prepboot = ""
 ## Instead we'll just replace any non-ASCII characters in the isolabel
 ## with '_', which means we won't need any udev escapes.
 isolabel = ''.join(ch if ch.isalnum() else '_' for ch in isolabel)
-
-rootarg = "root=live:CDLABEL=%s" % isolabel
 %>
 
 mkdir ${LIVEDIR}
@@ -35,14 +33,18 @@ treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img
 mkdir ${BOOTDIR}
 ## boot stuff for normal (CHRP/PREP) PPC systems
 install ${configdir}/bootinfo.txt ${BOOTDIR}
-install boot/efika.forth ${BOOTDIR}
-mkdir ${BOOTDIR}/chrp
-install usr/lib/yaboot/yaboot ${BOOTDIR}/chrp
-runcmd ${inroot}/usr/lib/yaboot/addnote ${outroot}/${BOOTDIR}/chrp/yaboot
-## special boot dir for PowerMacs
-mkdir ${MACDIR}
-install usr/lib/yaboot/yaboot ${MACDIR}
-install ${configdir}/ofboot.b ${MACDIR}
+
+mkdir ${GRUBDIR}/powerpc-ieee1275
+runcmd grub2-mkimage -O powerpc-ieee1275 -d  /usr/lib/grub/powerpc-ieee1275 -p '()/boot/grub' \
+-o ${outroot}/${GRUBDIR}/powerpc-ieee1275/core.elf iso9660 ext2 ofnet net tftp http
+install /usr/lib/grub/powerpc-ieee1275/*.mod ${GRUBDIR}/powerpc-ieee1275
+install /usr/lib/grub/powerpc-ieee1275/*.lst ${GRUBDIR}/powerpc-ieee1275
+
+
+install ${configdir}/grub.cfg.in     ${GRUBDIR}/grub.cfg
+replace @PRODUCT@ '${product.name}'  ${GRUBDIR}/grub.cfg
+replace @VERSION@ ${product.version} ${GRUBDIR}/grub.cfg
+replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${GRUBDIR}/grub.cfg
 
 ## copy mapping and magic files needed for isos
 install ${configdir}/mapping ${BOOTDIR}
@@ -58,20 +60,12 @@ install ${configdir}/magic ${BOOTDIR}
       ## separate dirs/images for each arch
       KERNELDIR=BOOTDIR+"/ppc%s" % bits
       NETIMG=NETBOOTDIR+"/ppc%s.img" % bits
-      bitsizes.add(bits)
     %>
     ## install kernel
     mkdir ${KERNELDIR} ${NETBOOTDIR}
     installkernel images-${kernel.arch} ${kernel.path} ${KERNELDIR}/vmlinuz
     installinitrd images-${kernel.arch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
 
-    ## install arch-specific bootloader config
-    install ${configdir}/yaboot.conf.in  ${KERNELDIR}/yaboot.conf
-    replace @BITS@    ${bits}            ${KERNELDIR}/yaboot.conf
-    replace @PRODUCT@ '${product.name}'  ${KERNELDIR}/yaboot.conf
-    replace @VERSION@ ${product.version} ${KERNELDIR}/yaboot.conf
-    replace @ROOT@    "${rootarg}"       ${KERNELDIR}/yaboot.conf
-
     ## kernel-wrapper magic that makes the netboot combined ppc{32,64}.img
     runcmd ${inroot}/${WRAPPER} -p of \
            -D ${inroot}/${WRAPPER_DATA} \
@@ -86,19 +80,6 @@ install ${configdir}/magic ${BOOTDIR}
     %endif
 %endfor
 
-## choose correct yaboot.conf
-mkdir etc
-%if len(bitsizes) == 2:
-    ## both kernels means hybrid - use the magic hybrid config
-    install ${configdir}/yaboot.conf.3264  etc/yaboot.conf
-    replace @PRODUCT@ ${product.name}      etc/yaboot.conf
-    replace @VERSION@ ${product.version}   etc/yaboot.conf
-    replace @ROOT@    "${rootarg}"         etc/yaboot.conf
-%else:
-    ## single arch - use the arch-specific yaboot.conf from above
-    copy ${KERNELDIR}/yaboot.conf etc/yaboot.conf
-%endif
-
 ## make boot.iso
 runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U \
         ${prepboot} -part -hfs -T -r -l -J \
@@ -107,8 +88,8 @@ runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U \
         -hfs-volid ${product.version} -hfs-bless ${outroot}/${MACDIR} \
         -map ${inroot}/${configdir}/mapping \
         -no-desktop -allow-multidot -graft-points \
-        etc=${outroot}/etc \
         ${BOOTDIR}=${outroot}/${BOOTDIR} \
+        ${GRUBDIR}=${outroot}/${GRUBDIR} \
         ${NETBOOTDIR}=${outroot}/${NETBOOTDIR} \
         ${LIVEDIR}=${outroot}/${LIVEDIR}
 
-- 
1.9.3



More information about the anaconda-patches mailing list