From 6c27a98c6a5207a29bffaeeb486479a2c24cd26c Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Fri, 10 Nov 2017 11:25:31 +0000 Subject: Add minimal-system-image-x86_64 This element produces a disk image that boots in QEMU. It has a kernel, BusyBox, and little else; but should be suitable as a basis for more grand endeavours. This disk image we produce is 53MB. I spent a while trying to get this as small as possible and this is as far as I got: * The boot partition seems to have a minimum size just over 32MB; lower than that and SYSLINUX fails to write the boot sector. The combined size of the initramfs and kernel is about 32MB, so I imagine that's what limits us. * The main partition is limited in size only by the amount of binaries that we put there. * We have a useless 40KB swap partition, which the x86image plugin insists on creating for us. Again 40KB is the minimum size that `mkswap` will allow. It's possible to override or modify the x86image plugin to avoid swap altogether but I'm not sure of the best way to proceed. There are a few dependency cleanups in the bsp-generic stack; previously we'd build the whole 'foundation' stack which took ages and wasn't needed at all. --- elements/bsp-generic/linux.bst | 5 ++++- elements/bsp-generic/nasm.bst | 20 ++++++++++++++++++ elements/bsp-generic/syslinux.bst | 43 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 elements/bsp-generic/nasm.bst create mode 100644 elements/bsp-generic/syslinux.bst (limited to 'elements/bsp-generic') diff --git a/elements/bsp-generic/linux.bst b/elements/bsp-generic/linux.bst index 536d6c1d..bac015a3 100644 --- a/elements/bsp-generic/linux.bst +++ b/elements/bsp-generic/linux.bst @@ -1,6 +1,9 @@ kind: manual + depends: -- docutils.bst +- filename: core.bst + type: build + sources: - kind: git url: upstream:linux diff --git a/elements/bsp-generic/nasm.bst b/elements/bsp-generic/nasm.bst new file mode 100644 index 00000000..e78d422d --- /dev/null +++ b/elements/bsp-generic/nasm.bst @@ -0,0 +1,20 @@ +kind: autotools + +depends: +- gnu-toolchain.bst +- filename: core/autoconf.bst + type: build +- filename: docutils/asciidoc.bst + type: build +- filename: docutils/xmlto.bst + type: build + +sources: +- kind: git + url: upstream:nasm + track: nasm-2.11.08 + ref: 8fa0fe16408afc76ce1ae4387e1a9d46893cfda6 + +config: + install-commands: + - make INSTALLROOT="%{install-root}" install diff --git a/elements/bsp-generic/syslinux.bst b/elements/bsp-generic/syslinux.bst new file mode 100644 index 00000000..4ac1f98a --- /dev/null +++ b/elements/bsp-generic/syslinux.bst @@ -0,0 +1,43 @@ +kind: manual + +depends: +- gnu-toolchain.bst +- filename: core/perl.bst + type: build +- filename: python2-core.bst + type: build +- filename: bsp-generic/nasm.bst + type: build + +sources: +- kind: git + url: upstream:syslinux + track: baserock/syslinux-4.06-gcc7 + ref: 02ab5d34ba0a90e3b6dd78034d7c470c77500119 + +config: + build-commands: + - make clean + - make NO_WERROR=1 + - make NO_WERROR=1 installer + install-commands: + - make INSTALLROOT="%{install-root}" MANDIR="%{mandir}" install + +public: + bst: + split-rules: + runtime: + (>): + - | + %{datadir}/syslinux + - | + %{datadir}/syslinux/* + - | + %{datadir}/syslinux/diag/* + - | + %{datadir}/syslinux/dosutil/* + + devel: + (>): + - | + %{datadir}/syslinux/com32/** -- cgit v1.2.1