Skip to content

Commit 3af6b55

Browse files
fix: update README build instructions
Signed-off-by: Anhad Singh <[email protected]>
1 parent 6e784a4 commit 3af6b55

File tree

1 file changed

+11
-75
lines changed

1 file changed

+11
-75
lines changed

README.md

Lines changed: 11 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -40,36 +40,21 @@ No, Aero runs its own kernel that does *not* originate from Linux and does not s
4040

4141
# How to Build and Run Aero
4242

43-
Please make sure you have a **unix-like** host system before building
44-
Aero. If you are using windows, its highly recommended to use WSL 2.
43+
Please make sure you have a Linux host system before building
44+
Aero. If you are using windows, use WSL 2.
4545

4646
## Dependencies
4747

4848
Before building Aero, you need the following things installed:
4949
- `rust` (should be the **latest nightly**)
5050
- `nasm`
5151
- `qemu` (optional: required if you want to run it in the Qemu emulator)
52-
53-
If you are building Aero with sysroot, run the following helper script to install additional dependencies.
54-
```sh
55-
# make sure to run the script with root privileges!
56-
./tools/deps.sh
57-
```
58-
You can optionally set the environment variable `VERBOSE` to `true`, which will pass through the output of your package manager for troubleshooting.
59-
```sh
60-
VERBOSE=true ./tools/deps.sh
61-
```
62-
63-
Note: If your host operating system is not in the list below, you will need to determine the dependency packages' names for your package manager (contributions to this tool are welcome!)
64-
- Arch Linux/based (pacman)
65-
- Debian Linux/based (apt)
66-
- macOS (homebrew)
67-
52+
- `make`
6853

6954
## Hardware
7055

7156
The following are *not* requirements but are *recommendations*:
72-
- ~15GB of free disk space
57+
- ~15GB of free disk space (this will vary depending on the amount of packages you want to build)
7358
- \>= 8GB RAM
7459
- \>= 2 cores
7560
- Internet access
@@ -86,63 +71,14 @@ $ cd aero
8671

8772
## Building Aero
8873

89-
Aero uses a custom build system, that wraps `cargo` and takes care of building the kernel and
90-
userland for you. It also builds the initramfs and disk image for you.
91-
92-
The main command we will focus on is `./aero.py`. The source code can be found in the
93-
root of the repository and, as the file name states, it is written in Python.
94-
95-
By default if you run `./aero.py` without any arguments it will build the kernel and userland
96-
in release mode with debug symbols and run it in QEMU. You can configure the behavior of the
97-
build system though. If you want to, you can use the `--help` option to read a brief description
98-
of what it can do.
99-
100-
The build system acknowledges few different build modes, which cannot be used together
101-
and they are: `--clean`, `--check`, `--test` and `--document`.
102-
103-
- `--clean` option will clean all the build outputs.
104-
- `--check` will build the kernel and userland using cargo's `check` command,
105-
this build mode will not produce a disk image, if you want one without actually
106-
running Aero in the emulator read ahead
107-
- `--test` will run the built-in Aero test suite
108-
- `--document` will generate web-based docs using cargo's `doc` command
109-
- `--sysroot` will build the full userland sysroot. If not passed, then the sysroot will only contain
110-
the `aero_shell` and the `init` binaries.
111-
112-
**Note**: This command will require a relatively large amount of storage
113-
space. You may want to have upwards of 10 or 15 gigabytes available if building with full sysroot.
114-
115-
Each of these modes can be used with additional flags, that will alter the behavior in different
116-
ways, some of them will not work for some of these modes - for example: the `--la57` option
117-
will not have any effect when you are simply checking or documenting the build.
118-
119-
- `--debug` toggles off the release build flag when calling cargo.
120-
121-
**Summary**: If the `--debug` flag is not passed then it will build Aero in release mode
122-
and debug symbols will be available. On the other hand, if the debug flag is passed
123-
then it will be built in debug mode and debug symbols will be still available. By default
124-
Aero is built in release mode (with debug symbols) since it generates faster and smaller
125-
binaries which are easier to test.
126-
- `--no-run` prevents from running the built disk image in the emulator
127-
- `--bios` lets you choose the firmware the emulator will use when booting Aero,
128-
currently supported values are: `legacy` and `uefi`
129-
- `--features` accepts a single comma-separated list of kernel crate features, please
130-
keep in mind that there cannot be spaces in between the values
131-
- `--target` lets you override the target architecture for which the kernel is built,
132-
currently the default value is `x86_64-aero_os`
133-
- `--la57` tells the emulator to use 5 level paging, if it supports it
134-
135-
The built disk image is stored in the `build` directory under the name `aero.iso`. Both the
136-
disk root and initramfs root are preserved in case you want to inspect them manually.
137-
138-
## Running Aero in an emulator
139-
140-
If you haven't used the `--no-run` option and you aren't using the `--check` or `--document` build
141-
mode, the build system will run Aero in the emulator for you.
142-
143-
## Nightly Images
74+
```shell
75+
make distro-image
76+
make qemu
14477

145-
Want to give Aero a shot, without building it! You can go to the [latest job](https://github.com/Andy-Python-Programmer/aero/actions/workflows/build.yml?query=is%3Asuccess+branch%3Amaster) and download the latest nightly image (`aero.iso`), under artifacts.
78+
# To build documentation run the following command. The documentation will be outputed to the `target/doc` directory.
79+
make doc
80+
# The documentation will be available in the `target/doc` directory.
81+
```
14682

14783
# Contributing
14884

0 commit comments

Comments
 (0)