lorax/share/ppc.tmpl

100 lines
3.5 KiB
Cheetah
Raw Normal View History

<%
ANABOOTDIR="usr/share/anaconda/boot"
BOOTDIR="ppc"
MACDIR=BOOTDIR+"/mac"
NETBOOTDIR="images/netboot"
WRAPPER="usr/sbin/wrapper"
WRAPPER_DATA="usr/"+libdir+"/kernel-wrapper"
MAPPING=ANABOOTDIR+"/mapping"
MAGIC=ANABOOTDIR+"/magic"
bitsizes = set()
prepboot = ""
macboot = ""
%>
mkdir images
install ${runtime_img} images/install.img
mkdir ${BOOTDIR} ${BOOTDIR}/chrp etc
install ${ANABOOTDIR}/bootinfo.txt ${BOOTDIR}
install boot/efika.forth ${BOOTDIR}
install usr/lib/yaboot/yaboot ${BOOTDIR}/chrp
## Mac boot stuff
mkdir ${MACDIR}
install usr/lib/yaboot/yaboot ${MACDIR}
install ofboot.b ${MACDIR}
<%
macboot = "-hfs-volid {0}".format(product.version)
macboot += "-hfs-bless {0}/isopath/{1}".format(outroot,MACDIR)
%>
%for kernel in kernels:
<%
bits = 64 if kernel.arch == "ppc64" else 32
KERNELDIR=BOOTDIR+"/ppc%s" % bits
NETIMG=NETBOOTDIR+"/ppc%s.img" % bits
bitsizes.add(bits)
%>
mkdir ${KERNELDIR}
install ${ANABOOTDIR}/yaboot.conf.in ${KERNELDIR}/yaboot.conf
installkernel images-${kernel.arch} ${kernel.path} ${KERNELDIR}/vmlinuz
installinitrd images-${kernel.arch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
## FIXME: anaconda has the initrd name hard-coded as "ramdisk.img.gz"
replace ramdisk.image.gz initrd.img ${KERNELDIR}/yaboot.conf
replace %PRODUCT% ${product.name} ${KERNELDIR}/yaboot.conf
replace %VERSION% ${product.version} ${KERNELDIR}/yaboot.conf
replace %BITS% ${bits} ${KERNELDIR}/yaboot.conf
## FIXME: root=%ROOT% should really be in the config somewhere
replace "read-only" "read-only\n\tappend=\"root=live:CDLABEL=PBOOT\""
## kernel-wrapper magic that makes the netboot combined ppc{32,64}.img
runcmd ${inroot}/${WRAPPER} -D ${inroot}/${WRAPPER_DATA} \
-i ${KERNELDIR}/initrd.img ${KERNELDIR}/vmlinuz \
-p openfirmware -o ${outroot}/${NETIMG}
treeinfo images-${kernel.arch} zimage ${NETIMG}
%if exists(NETIMG) and bits == 32:
<% prepboot="-prep-boot " + NETIMG %>
%endif
%endfor
runcmd usr/lib/yaboot/addnote ${outroot}/${BOOTDIR}/chrp/yaboot
%if len(bitsizes) == 2:
## magic ppc biarch tree! we need magic ppc biarch config.
install ${ANABOOTDIR}/yaboot.conf.3264 etc/yaboot.conf
## FIXME: hardcoded image name (see above)
replace ramdisk.image.gz initrd.img etc/yaboot.conf
replace %PRODUCT% ${product.name} etc/yaboot.conf
replace %VERSION% ${product.version} etc/yaboot.conf
replace %BITS% 32 etc/yaboot.conf
## FIXME: see above about root=%ROOT%
replace "read-only" "read-only\n\tappend=\"root=live:CDLABEL=PBOOT\""
%else:
copy ${KERNELDIR}/yaboot.conf etc/yaboot.conf
%endif
## XXX why don't we use graft-points here?
## is it because of the scary warnings in mkisofs(1)?
mkdir isopath
copy ${BOOTDIR} isopath
copy etc isopath
mkdir isopath/LiveOS
hardlink images/install.img isopath/LiveOS/squashfs.img
runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U \
${prepboot} -part -hfs -T -r -l -J \
-A "${product.name} ${product.version}" -sysid PPC -V "PBOOT" \
-volset "${product.version}" -volset-size 1 -volset-seqno 1 \
${macboot} -map ${MAPPING} -magic ${MAGIC} \
-no-desktop -allow-multidot -graft-points ${outroot}/isopath
remove isopath
%if len(bitsizes) == 2:
treeinfo images-ppc boot.iso images/boot.iso
treeinfo images-ppc64 boot.iso images/boot.iso
%else:
treeinfo images-${kernel.arch} boot.iso images/boot.iso
%endif