forked from latentPrion/zambesii
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
1 parent
bf76856
commit 58c23ee
Showing
3 changed files
with
125 additions
and
75 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
- [Prerequisites](#orgheadline1) | ||
- [Get the Source](#orgheadline2) | ||
- [Ready!](#orgheadline5) | ||
- [ZUDI](#orgheadline3) | ||
- [Zambesii](#orgheadline4) | ||
- [Boot](#orgheadline6) | ||
|
||
|
||
# Prerequisites<a id="orgheadline1"></a> | ||
|
||
- 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<a id="orgheadline2"></a> | ||
|
||
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!<a id="orgheadline5"></a> | ||
|
||
## ZUDI<a id="orgheadline3"></a> | ||
|
||
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<a id="orgheadline4"></a> | ||
|
||
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<a id="orgheadline6"></a> | ||
|
||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |