[PATCH] support ppc64le in lorax

Dan HorĂ¡k dan at danny.cz
Tue Mar 25 20:45:05 UTC 2014


On Tue, 25 Mar 2014 15:35:31 -0500
Mark Hamzy <hamzy at us.ibm.com> wrote:

> Add support for the ppc64le architecture in lorax.

Mark, how different the ppc64le template is against the ppc one? Can't
we have only one template with maybe couple %ifs?


		Dan

> 
> ---
>  share/ppc64le.tmpl         | 82 +++++++++++++++++++++++++++++++++++++
> +++++++++ share/runtime-install.tmpl |  2 +-
>  src/pylorax/__init__.py    |  2 +-
>  src/pylorax/treebuilder.py |  1 +
>  4 files changed, 85 insertions(+), 2 deletions(-)
>  create mode 100644 share/ppc64le.tmpl
> 
> diff --git a/share/ppc64le.tmpl b/share/ppc64le.tmpl
> new file mode 100644
> index 0000000..b63f8b3
> --- /dev/null
> +++ b/share/ppc64le.tmpl
> @@ -0,0 +1,82 @@
> +<%page args="kernels, runtime_img, basearch, libdir, inroot,
> outroot, product, isolabel"/> +<%
> +configdir="tmp/config_files/ppc"
> +BOOTDIR="ppc"
> +GRUBDIR="boot/grub"
> +LIVEDIR="LiveOS"
> +
> +## NOTE: yaboot freaks out and stops parsing its config if it sees a
> '\', +## so we can't use the udev escape sequences in the root arg.
> +## 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)
> +
> +## Anaconda finds the CDROM device automatically
> +rootarg = ""
> +%>
> +
> +mkdir ${LIVEDIR}
> +install ${runtime_img} ${LIVEDIR}/squashfs.img
> +treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img
> +
> +## install the bootloaders
> +##   ppc/chrp: for normal PPC systems.
> +##             uses /ppc/bootinfo.txt   in the iso root
> +##             uses /boot/grub/grub.cfg in the iso root
> +mkdir ${BOOTDIR}
> +## boot stuff for normal (CHRP/PREP) PPC systems
> +install ${configdir}/bootinfo.txt ${BOOTDIR}
> +
> +mkdir ${GRUBDIR}/powerpc-ieee1275
> +## "()" means the current device to grub2
> +runcmd grub2-mkimage --format=powerpc-ieee1275
> --directory=/usr/lib/grub/powerpc-ieee1275 --prefix="()/"${GRUBDIR} \
> +--output=${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@    "${rootarg}"
> ${GRUBDIR}/grub.cfg + +## copy mapping and magic files needed for
> isos +install ${configdir}/mapping ${BOOTDIR} +install
> ${configdir}/magic ${BOOTDIR} +
> +## Install kernel and bootloader config (in separate places for each
> arch) +%for kernel in kernels:
> +    <%
> +      bits = 64
> +      ## separate dirs/images for each arch
> +      KERNELDIR=BOOTDIR+"/ppc%s" % bits
> +    %>
> +    ## install kernel
> +    mkdir ${KERNELDIR}
> +    installkernel images-${kernel.arch} ${kernel.path}
> ${KERNELDIR}/vmlinuz
> +    installinitrd images-${kernel.arch} ${kernel.initrd.path}
> ${KERNELDIR}/initrd.img +
> +    %if doupgrade:
> +        ## upgrade image
> +        installupgradeinitrd images-${kernel.arch}
> ${kernel.upgrade.path} ${KERNELDIR}/upgrade.img
> +    %endif
> +
> +    treeinfo images-${kernel.arch} zimage
> +%endfor
> +
> +## make boot.iso, which gets renamed to Fedora-xx-xxxxx-netinst.iso
> +mkdir images/
> +runcmd mkisofs -v -U -J -R -T \
> +        -o ${outroot}/images/boot.iso \
> +        -part -hfs -r -l -sysid PPC \
> +        -A "${product.name} ${product.version}" -V '${isolabel}' \
> +        -volset "${product.version}" -volset-size 1 -volset-seqno 1 \
> +        -hfs-volid ${product.version} \
> +        -chrp-boot -map ${inroot}/${configdir}/mapping \
> +        -no-desktop -allow-multidot -graft-points \
> +        ${BOOTDIR}=${outroot}/${BOOTDIR} \
> +        ${GRUBDIR}=${outroot}/${GRUBDIR} \
> +        ${LIVEDIR}=${outroot}/${LIVEDIR}
> +
> +%for kernel in kernels:
> +    treeinfo images-${kernel.arch} boot.iso images/boot.iso
> +%endfor
> diff --git a/share/runtime-install.tmpl b/share/runtime-install.tmpl
> index e4c0336..0cc367d 100644
> --- a/share/runtime-install.tmpl
> +++ b/share/runtime-install.tmpl
> @@ -37,7 +37,7 @@ installpkg grubby
>  %if basearch in ("i386", "x86_64"):
>      installpkg grub2 grub2-tools biosdevname memtest86+ syslinux
>  %endif
> -%if basearch in ("ppc", "ppc64"):
> +%if basearch in ("ppc", "ppc64", "ppc64le"):
>      installpkg grub2 grub2-tools fbset hfsutils kernel-bootwrapper
> ppc64-utils %endif
>  %if basearch == "s390x":
> diff --git a/src/pylorax/__init__.py b/src/pylorax/__init__.py
> index 380a30d..f702949 100644
> --- a/src/pylorax/__init__.py
> +++ b/src/pylorax/__init__.py
> @@ -54,7 +54,7 @@ REMOVE_PPC64_DRIVERS = "floppy scsi_debug nouveau
> radeon cirrus mgag200" REMOVE_PPC64_MODULES = "drm plymouth"
>  
>  class ArchData(DataHolder):
> -    lib64_arches = ("x86_64", "ppc64", "s390x", "ia64", "aarch64")
> +    lib64_arches = ("x86_64", "ppc64", "ppc64le", "s390x", "ia64",
> "aarch64") bcj_arch = dict(i386="x86", x86_64="x86",
>                      ppc="powerpc", ppc64="powerpc",
>                      arm="arm", armhfp="arm")
> diff --git a/src/pylorax/treebuilder.py b/src/pylorax/treebuilder.py
> index d0fac4b..dc8bb48 100644
> --- a/src/pylorax/treebuilder.py
> +++ b/src/pylorax/treebuilder.py
> @@ -35,6 +35,7 @@ templatemap = {
>      'x86_64':  'x86.tmpl',
>      'ppc':     'ppc.tmpl',
>      'ppc64':   'ppc.tmpl',
> +    'ppc64le': 'ppc64le.tmpl',
>      's390':    's390.tmpl',
>      's390x':   's390.tmpl',
>      'aarch64': 'aarch64.tmpl',
> -- 
> 1.9.0
> 
> _______________________________________________
> anaconda-patches mailing list
> anaconda-patches at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/anaconda-patches


More information about the anaconda-patches mailing list