agama/live/PXE.md
Ladislav Slezák d4f44b8a8e
Add Live ISO sources to Git (#1160)
## Problem

The Live ISO sources are not maintained at GitHub, that makes the
development complicated:

- Cannot track the changes easily, working with history in OBS is
limited and more complicated than with Git
- Changing files in tarballs is difficult, you have to unpack it, modify
a file and then manually compress back with correct parameters
- Building the Live ISO locally is not trivial

## Solution

- Move the sources into the `/live` subdirectory
- Add GitHub action for automatic submission from `master` to the
[systemsmanagement:Agama:Staging](https://build.opensuse.org/project/show/systemsmanagement:Agama:Staging)
OBS project
- Allow running the ISO build locally via `make build`

## Changes

The individual files were not touched, I just copied them from the
current OBS project. I only moved the `fw_cleanup.rb` script to the
`/tmp` directory as the script is temporary and it is deleted at the end
of the ISO build.

- All Kiwi tarballs were unpacked to Git
- Simple `make` builds the sources to the `dist` subdirectory and builds
the tarballs
- The ISO can be built locally using `make build`
- Updated/extended the documentation in README.md (There are two
README.md files, the main in `/live` which documents the details and the
`/live/src/README.md` which is copied to OBS. Mostl importantly it says
"do not touch this in OBS, use GitHub".)

## Testing

- Tested manually
- The autosubmission works (see the [GitHub action
log](https://github.com/lslezak/agama/actions/runs/8780447151/job/24090382501))
- The built ISO works (tested in my [agama-live
branch](https://build.opensuse.org/package/show/home:lslezak:branches:systemsmanagement:Agama:Staging/agama-live)
project)
- Local build works as well

---------

Co-authored-by: Imobach González Sosa <igonzalezsosa@suse.com>
2024-04-23 10:03:43 +02:00

1.1 KiB

Agama Network Installation (PXE)

Prerequisites

The PXE boot infrastructure should already exist:

  • TFTP/DHCP running (usually dnsmasq)
  • FTP server running (usually vsftp)

Setup

Extract the Linux kernel and the initrd from the archive:

osc getbinaries images x86_64 -M ALP-PXE
tar -C /srv/ftp/image -xf \
    binaries/agama-live.x86_64-5.0.0-ALP-PXE-Build4.1.install.tar

cp /srv/ftp/image/pxeboot.agama-live.x86_64-5.0.0.initrd /srv/tftpboot/boot
cp /srv/ftp/image/pxeboot.agama-live.x86_64-5.0.0.kernel /srv/tftpboot/boot

Update the PXE boot configuration in the /srv/tftpboot/pxelinux.cfg/default file:

default menu.c32
prompt 0
timeout 120

menu title PXE Menu

label live
    menu label ^Agama
    kernel /boot/pxeboot.agama-live.x86_64-5.0.0.kernel
    append initrd=/boot/pxeboot.agama-live.x86_64-5.0.0.initrd rd.kiwi.install.pxe rd.kiwi.install.image=ftp://X.X.X.X/image/agama-live.x86_64-5.0.0.xz console=ttyS0,115200 rd.kiwi.ramdisk ramdisk_size=2097152

Testing

To test booting Agama in QEMU run these commands:

qemu-img create mydisk 20g
qemu -boot n -m 4096 -hda mydisk