$ ./build-arm64
for making a pair of kernel and initrd.gz installer for an arm64
-architectire. This may then be tested in a qemu VM by running:
+architecture. This may then be tested in a qemu VM by running:
$ ./vm.sh arm64
The script `./build-installer.sh` is run by a non-root user on the
command line. It prepares three `build` subdirectories:
-1. `$TARGET_ARCH/build/sources` contains the Packages file for the
+1. `$TARGET_ARCH/build/sources` contains the Packages files for the
sources, which are the `main`, `non-free-firmware` and
`main/debian-installer` components of the Devuan `$DISTNAME`
- repository (`daedalus` by default).
+ repository.
2. `$TARGET_ARCH/build/media` is a media filesystem with a repository
pool of slightly bespoke structure. It includes in particular
+
* `.../dists` with a "standard" repository structure of meta files
describing the media as repository; and
- * `.../pool` with a bespoke layout containing the packages.
-+
- The `pool` directory contains both all udeb packages (see below)
- and the packages mentioned in `pool-packages-$TARGET_ARCH.list`
- plus their depends and recommends packages (using a first choice
- principle for alternatives)
-+
- The directory tree at `$TARGET_ARCH/build/media` gets packed up as
- `$TARGET_ARCH/build/initrd/pool.squashfs` to be included in the
- final `$TARGET_ARCH/initrd.gz`.
+
+ * `.../pool` with a bespoke layout containing the packages. The
+ `pool` directory contains both all udeb packages (see below) and
+ the packages mentioned in `pool-packages-$TARGET_ARCH.list` plus
+ their depends and recommends packages (using a first choice
+ principle for alternatives)
+
+ * The directory tree at `$TARGET_ARCH/build/media` gets packed up
+ as `$TARGET_ARCH/build/initrd/pool.squashfs` to be included in
+ the final `$TARGET_ARCH/initrd.gz`.
3. `$TARGET_ARCH/build/initrd` is the installer's core execution
filesystem, which gets populated by unpacking and configuring the
udeb packages enumerated in `installer-packages-$TARGET_ARCH.list`.
-+
- The `initrd` directory is augmented with the media squashfs and an
- `.../init` script copied from `initrd-init`; that's the script that
- runs the installer on boot.
-+
- The directory tree at `$TARGET_ARCH/build/initrd` gets packed up at
- end into `$TARGET_ARCH/initrd.gz`. Further, the linux kernel at
- `build/initrd/boot/vmlinuz` is also copied up to project to level.
-
-At end, the `$TARGET_ARCH/` toplevel has got the files `vmlinuz` and
-`initrd.gz` with the installer for the target architecture. The latter
-includes the media pool as `/pool.squasfs` and is therefore rather
-large. The target system needs to have enough RAM to accomodate the
-unpacking of `initrd.gz` as well as additional free RAM for the
-installation process. I would suggest it needs at least 2Gib RAM.
+
+ * The `.../initrd` directory is augmented with the media squashfs
+ and an `.../init` script copied from toplevel `initrd-init`;
+ that's the script that runs the installer on boot.
+
+ * The directory tree at `../initrd` gets packed up at end into
+ `$TARGET_ARCH/initrd.gz`. Further, the linux kernel at
+ `build/initrd/boot/vmlinuz` is also copied up to project to
+ level.
+
+**At the end**, the `$TARGET_ARCH/` directory has got the files
+`vmlinuz` and `initrd.gz` with the installer for the target
+architecture, in addition to the `build/` directory tree.
+
+The `$TARGET_ARCH/initrd.gz` file includes the media pool as
+`/pool.squasfs` and is therefore rather large. The target system needs
+to have enough RAM to accomodate the initrd unpacking as well as
+additional free RAM for the installation process. I would suggest it
+needs at least 2Gib RAM.
== Running vm.sh
Note that `dnsmasq` might need other/more configuration to work well
in your setup.
+
+'''
+Copyright (C) 2024 Ralph Ronnquist <rrq@rrq.au>
+.
+