diff --git a/docs/build.htm b/docs/build.htm deleted file mode 100755 index 404b2517..00000000 --- a/docs/build.htm +++ /dev/null @@ -1,75 +0,0 @@ - - - - Zambesii Kernel Documentation::Building the kernel. - - - -

-

Requirements

- -

-

-

Procedure

-
    -
  1. Set the following 'Z' toolchain environment - variables (globally); They should be set to the - corresponding tools to invoke your chosen cross - toolchain. The kernel will set these to GNU - Make's implict rule vars while building. Of - course, you should add any flags to the *FLAGS - vars. - -
  2. -
  3. Then set these environment variables as well; These - are required to point your local machine's - compiler: the kernel builds a utility called - 'ekfsutil' which must be able to run on the - machine on which you are building. When - compiling a native program, the kernel will - temporarily switch GNU Make's implicit rule vars - to point to the values you give here. - -
  4. -
  5. Now set up the architecture, chipset and firmware - for which you're about to build by setting these - environment variables; The kernel uses these to - determine which sub-directories to build for - your platform. - -
  6. -
  7. Enter a shell prompt on the machine on which you're - building Zambesii.
  8. -
  9. Type make.
  10. -
  11. That is all.
  12. -
-

- - - - diff --git a/docs/build.md b/docs/build.md new file mode 100644 index 00000000..43957213 --- /dev/null +++ b/docs/build.md @@ -0,0 +1,64 @@ +- [Prerequisites](#orgheadline1) +- [Get the Source](#orgheadline2) +- [Ready!](#orgheadline5) + - [ZUDI](#orgheadline3) + - [Zambesii](#orgheadline4) +- [Boot](#orgheadline6) + + +# Prerequisites + +- Git +- A GCC cross-compiler configured for i586-elf target +- cdrtools or cdrkit + +For the BSDs and other \*nixen you'll also need GNU Make and Bash. + +Set your PATH to include where you built the cross-compiler: + + export PATH="~/toolchain/bin:$PATH" + +That's all! Zambesii has no other dependencies and is very easy to build. + +# Get the Source + +There are two parts to the Zambesii source: Zambesii and ZUDI. Clone their repositiories: + + git clone https://github.com/latentPrion/zambesii + git clone https://github.com/latentPrion/zudi + +# Ready! + +## ZUDI + +ZUDI is a small set of utilities that Zambesii uses to build. + +Note: substitute `gmake` in place of `make` if you're on the BSDs or another system with a default non-GNU Make. + + cd ~/zudi # Or whever you cloned ZUDI to + make + sudo make install + +That's all there is to it. + +## Zambesii + +Now that you have all the dependencies installed, building Zambesii is a snap. No mucking around with dependencies or autotools necessary. + +Start with `./configure` and answer ‘gnu’ to the toolchain questions. For the architecture questions, just enter the only option it gives (since Zambesii is x86-only currently). When you get to the toolchain target question, enter i586-elf. + +Then simply + + make + +And you're done! + +# Boot + +After the ISO is made, you can test that it boots with + + qemu-system-i386 -boot d -cdrom zambesii.iso -m 256M + +NUMA support can be tested with QEMU as well: + + qemu-system-i386 -boot d -cdrom zambesii.iso -m 1G -smp 8 -numa node,mem=512M,cpus=0-3 -numa node,mem=256M,cpus=4-5 -numa node,mem=256M,cpus=6-7 diff --git a/docs/build.org b/docs/build.org new file mode 100644 index 00000000..e90d3651 --- /dev/null +++ b/docs/build.org @@ -0,0 +1,61 @@ +#+TITLE: Building Zambesii + +*Note: if you don't have a cross-compiler targeting i586-elf, see +cross-compile.md in this repo to get set up.* + +* Prerequisites +- Git +- A GCC cross-compiler configured for i586-elf target +- cdrtools or cdrkit + +For the BSDs and other *nixen you'll also need GNU Make and Bash. + +Set your PATH to include where you built the cross-compiler: +: export PATH="~/toolchain/bin:$PATH" + +That's all! Zambesii has no other dependencies and is very easy to build. + +* Get the Source +There are two parts to the Zambesii source: Zambesii and ZUDI. Clone their +repositiories: + +#+BEGIN_EXAMPLE +git clone https://github.com/latentPrion/zambesii +git clone https://github.com/latentPrion/zudi +#+END_EXAMPLE + +* Ready! +** ZUDI +ZUDI is a small set of utilities that Zambesii uses to build. + +Note: substitute ~gmake~ in place of ~make~ if you're on the BSDs or another +system with a default non-GNU Make. + +#+BEGIN_EXAMPLE +cd ~/zudi # Or whever you cloned ZUDI to +make +sudo make install +#+END_EXAMPLE + +That's all there is to it. + +** Zambesii +Now that you have all the dependencies installed, building Zambesii is a snap. +No mucking around with dependencies or autotools necessary. + +Start with ~./configure~ and answer ‘gnu’ to the toolchain questions. For the +architecture questions, just enter the only option it gives (since Zambesii is +x86-only currently). When you get to the toolchain target question, enter +i586-elf. + +Then simply +: make + +And you're done! + +* Boot +After the ISO is made, you can test that it boots with +: qemu-system-i386 -boot d -cdrom zambesii.iso -m 256M + +NUMA support can be tested with QEMU as well: +: qemu-system-i386 -boot d -cdrom zambesii.iso -m 1G -smp 8 -numa node,mem=512M,cpus=0-3 -numa node,mem=256M,cpus=4-5 -numa node,mem=256M,cpus=6-7