Previously, this code was being confused by the re-use/overloading of
existing keywords in the ifcpu64.c module and not producing any menu
entries. Now, explicitly parse the new options and pick out just the
64-bit menus as they're a strict superset of the menus in isolinux.
This may enable some more issues, e.g. people trying to load a 64-bit
kernel on a 32-bit system, but until we get some auto-detection of CPU
in grub there's not much we can do about that. Let's get *something*
working at least.
Currently the ins loader (mostly HMC loading into an LPAR) only
supports kernels up to 8 MiB. The jessie kernel has 11 MiB, which
does not fit and hence gets its tail overwritten by the initrd
(root.bin) loaded at this address. This change bumps the load
address to 16 MiB, which should allow for some more growth of
the kernel.
Signed-off-by: Philipp Kern <pkern@debian.org>
Object code only modules date back to 2.2 and 2.4 kernel times, when
IBM did not release the source to certain kernel modules. Since many
years everything needed to boot and run the machine is actually
open source. It also got broken due to the kernel growing larger and
adding the oco.bin would overwrite parts of the kernel.
It's safe to say that nobody is actually using this.
Even if they won't boot directly from CD/DVD, make it easy for people
using our images by giving them all the bits they'll need to get them
booting somehow.
Replace "alpha" with "a" and "beta" with "b". We've only got 32
characters to use here, so we need to shorten this. This way we can
specify DEBVERSION as a useful long string like "stretch-DI-alpha1" as
a version to appear in file/directory names, but without overflowing
at the VOLID level. May need more tweaks later here, but for now this
seems to do what we need.
FTAOD: this won't change "alpha" in the architecture name, as that is
added later.
Make sure that the package we're told about exists before we look for
its size - a number of the dependencies and recommends may not exist
and this will cause errors for us.
Also list the configured max_pkg_size at the top of the script, to
help with debugging later.
Previously, the code would only check sizes for packages explicitly
listed but packages brought in due to dependency resolution would not
be checked. Now fixed.
Call cpp directly on our input task file instead of using it in a
pipeline. Not clear why this was ever done, and it obscures errors
like ENOENT (if the specified task file is missing).
When we've got multiple copies of the same initramfs hard-linked
together, gzip gets unhappy when we start modifying things
later. Explicitly break the links to fix that.