aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/disk-image-builder/nested/README.md
blob: 3c4968909c50f982e38aad3c5c9fc22ac9c05b2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Nested VM builder

## Summary

The files in this directory are used to build CSIT's "nested VM" image.
The Nested VM image is a mini Linux image that gets spun up inside the
main CSIT test VM for selected test cases.

Considering that this VM is:

- Very purpose-built; the ONLY thing it needs to do is run a bridge group,
- spun up and torn down repeatedly by an automated test case,
- is bundled within another VM image where resources are already limited,

this VM is designed to be minimalistic, small and efficient. For that reason
it is NOT build around any established Linux distribution (Ubuntu,
Red Hat, ...), but around "buildroot" (https://buildroot.org/) which is
aimed at building small Linux images for embedded systems.

Scripts in this directory are aimed at producing functionally identical VM
images each time they are run. That is, a given version of this package
will consistenly download the same buildroot version, and install the same
packages and the same kernel version with the same config.


### Prerequisites

This scripts have been tested on Ubuntu Linux. They should run on any platform
supported by buildroot, and where a standard bourne shell and Linux toolchain
are available.

## Files

### requirements.sh

(One-time) installs required Ubuntu packages for buildroot


### build.sh

Downloads all required packages source code and builds the nested VM image.
Is NOT intended to be run as root, but requires "sudo" privileges for a
handful of commands.

### clean.sh

Remove any object files and compiled files. Keep the downloaded source
packages, both of buildroot itself as well as any packages downloaded by
buildroot.

### deepclean.sh

Remove any compiled or downloaded files.

### CHANGELOG

A change log. This will also be copied onto the image itself.
Versions in the changelog MUST be tagged as follows:

~~~
## [MAJOR.MINOR] YYYY-MM-DD
~~~
eg.

~~~
## [1.0] 2016-05-16
~~~

This format will be used for auto-extracting the version
number, which will become part of the target image filename
and will also be copied onto the image itself.