diff options
author | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2017-11-10 11:25:31 +0000 |
---|---|---|
committer | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2017-12-06 14:45:25 +0000 |
commit | 6c27a98c6a5207a29bffaeeb486479a2c24cd26c (patch) | |
tree | b6955b8dec6fde8cd5837b8487dc66a0325ed23b /elements/bsp-generic | |
parent | 58d9422afe0191276109e2ecaeaec721d8816a88 (diff) | |
download | definitions-6c27a98c6a5207a29bffaeeb486479a2c24cd26c.tar.gz |
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.
Diffstat (limited to 'elements/bsp-generic')
-rw-r--r-- | elements/bsp-generic/linux.bst | 5 | ||||
-rw-r--r-- | elements/bsp-generic/nasm.bst | 20 | ||||
-rw-r--r-- | elements/bsp-generic/syslinux.bst | 43 |
3 files changed, 67 insertions, 1 deletions
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/** |