Skip to content

Commit

Permalink
meta: genext2fs is no longer required (but still useful)
Browse files Browse the repository at this point in the history
  • Loading branch information
klange committed Dec 13, 2018
1 parent 495d4b3 commit 0f9e847
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 12 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ The following projects are currently in progress:

To build ToaruOS from source, it is currently recommended you use a recent Debian- or Ubuntu-derived Linux host environment.

Several packages are necessary: `build-essential` (to build the cross-compiler), `xorriso` (to create CD images), `genext2fs` (to build ramdisks), `python3` (various build scripts), `mtools` (for building FAT EFI system partitions), `gnu-efi` (for building the EFI loaders).
Several packages are necessary: `build-essential` (to build the cross-compiler), `xorriso` (to create CD images), `python3` (various build scripts), `mtools` (for building FAT EFI system partitions), `gnu-efi` (for building the EFI loaders).

Beyond package installation, no part of the build needs root privileges.

Expand All @@ -70,7 +70,7 @@ The `Makefile` first checks to see if a toolchain is available and activates it

The `Makefile` then uses a Python tool, `auto-dep.py`, to generate additional Makefiles for the userspace applications libraries, automatically resolving dependencies based on `#include` directives.

In an indeterminate order, C library, kernel, modules, userspace librares and applications are built. Three boot loaders (one BIOS ATAPI CD loader for emulators, and both a 32-bit and 64-bit EFI loader for general use) are then built. Deployed binaries are stored in `base` which is converted into an EXT2 filesystem image with `genext2fs`. This image, along with the bootloader files and kernel are then placed in `fatbase` which is converted into a FAT image for use as the EFI boot payload. That image is then placed in `cdbase` along with shadow files representing each of the files in the FAT image, and `cdbase` is compiled into an ISO 9660 CD El Torito image. The CD image is then passed through a tool to map the shadow files to their actual data from the FAT image, creating a hybrid ISO 9660 / FAT.
In an indeterminate order, C library, kernel, modules, userspace librares and applications are built. Three boot loaders (one BIOS ATAPI CD loader for emulators, and both a 32-bit and 64-bit EFI loader for general use) are then built. Deployed binaries are stored in `base` which is then compiled into a tar archive to use as a ramdisk image. This image, along with the bootloader files and kernel are then placed in `fatbase` which is converted into a FAT image for use as the EFI boot payload. That image is then placed in `cdbase` along with shadow files representing each of the files in the FAT image, and `cdbase` is compiled into an ISO 9660 CD El Torito image. The CD image is then passed through a tool to map the shadow files to their actual data from the FAT image, creating a hybrid ISO 9660 / FAT.

### Clang

Expand Down
10 changes: 0 additions & 10 deletions util/check-reqs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,6 @@ if ! which python3 >/dev/null; then
RET=1
fi

if ! which genext2fs >/dev/null; then
echo "genext2fs is needed to build ramdisk images"
RET=1
else
if [ -z "$(genext2fs --help 2>&1 | grep -- "block-size")" ]; then
echo "genext2fs must support the -B (--block-size) argument; try building with Debian patches"
RET=1
fi
fi

if ! which mkfs.fat >/dev/null; then
echo "mkfs.fat is required (and should be in your PATH) to build EFI file systems"
RET=1
Expand Down

0 comments on commit 0f9e847

Please sign in to comment.