mirror of
https://git.launchpad.net/livecd-rootfs
synced 2026-02-21 09:23:28 +00:00
Use consistent formatting across all architectures: 4-space indent, two spaces after "linux", one space after "initrd". Also fix an extra blank line before "fi" in amd64's UEFI section caused by f-string interpolation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
75 lines
2.2 KiB
Python
75 lines
2.2 KiB
Python
"""PowerPC 64-bit Little Endian architecture boot configuration."""
|
|
|
|
import pathlib
|
|
import shutil
|
|
|
|
from .grub import (
|
|
copy_grub_common_files,
|
|
copy_grub_modules,
|
|
GrubBootConfigurator,
|
|
)
|
|
from .base import default_kernel_params
|
|
|
|
|
|
class PPC64ELBootConfigurator(GrubBootConfigurator):
|
|
"""Boot setup for PowerPC 64-bit Little Endian architecture."""
|
|
|
|
def mkisofs_opts(self) -> list[str | pathlib.Path]:
|
|
"""Return mkisofs options for PPC64EL."""
|
|
return []
|
|
|
|
def extract_files(self) -> None:
|
|
"""Download and extract bootloader packages for PPC64EL."""
|
|
self.logger.log("extracting PPC64EL boot files")
|
|
|
|
grub_pkg_dir = self.scratch.joinpath("grub-pkg")
|
|
|
|
# Download and extract bootloader packages
|
|
self.download_and_extract_package("grub2-common", grub_pkg_dir)
|
|
self.download_and_extract_package("grub-ieee1275-bin", grub_pkg_dir)
|
|
|
|
# Add common files for GRUB to tree
|
|
copy_grub_common_files(grub_pkg_dir, self.iso_root)
|
|
|
|
# Add IEEE1275 ppc boot files
|
|
ppc_dir = self.iso_root.joinpath("ppc")
|
|
ppc_dir.mkdir()
|
|
|
|
src_grub_dir = grub_pkg_dir.joinpath("usr", "lib", "grub", "powerpc-ieee1275")
|
|
|
|
# Copy bootinfo.txt to ppc directory
|
|
shutil.copy(
|
|
src_grub_dir.joinpath("bootinfo.txt"), ppc_dir.joinpath("bootinfo.txt")
|
|
)
|
|
|
|
# Copy eltorito.elf to boot/grub as powerpc.elf
|
|
shutil.copy(
|
|
src_grub_dir.joinpath("eltorito.elf"),
|
|
self.iso_root.joinpath("boot", "grub", "powerpc.elf"),
|
|
)
|
|
|
|
# Copy GRUB modules
|
|
copy_grub_modules(
|
|
grub_pkg_dir, self.iso_root, "powerpc-ieee1275", ["*.mod", "*.lst"]
|
|
)
|
|
|
|
def generate_grub_config(self) -> str:
|
|
"""Generate grub.cfg for PPC64EL."""
|
|
kernel_params = default_kernel_params(self.project)
|
|
|
|
result = self.grub_header()
|
|
|
|
# Main menu entry
|
|
result += f"""\
|
|
menuentry "Try or Install {self.humanproject}" {{
|
|
set gfxpayload=keep
|
|
linux /casper/vmlinux quiet {kernel_params}
|
|
initrd /casper/initrd
|
|
}}
|
|
"""
|
|
|
|
# HWE kernel option if available
|
|
result += self.hwe_menu_entry("vmlinux", kernel_params, extra_params="quiet ")
|
|
|
|
return result
|