summaryrefslogtreecommitdiff
path: root/elements/bsp-generic
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2017-11-10 11:25:31 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2017-12-06 14:45:25 +0000
commit6c27a98c6a5207a29bffaeeb486479a2c24cd26c (patch)
treeb6955b8dec6fde8cd5837b8487dc66a0325ed23b /elements/bsp-generic
parent58d9422afe0191276109e2ecaeaec721d8816a88 (diff)
downloaddefinitions-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.bst5
-rw-r--r--elements/bsp-generic/nasm.bst20
-rw-r--r--elements/bsp-generic/syslinux.bst43
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/**