diff --git a/.gitignore b/.gitignore index b19d015..5b7a8e7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ build/ toolchain/ +.toolchains/ *.err bx_enh_dbg.ini .vscode/*.log diff --git a/README.md b/README.md index a6155f4..7726727 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ +# basic_os + +My work in progress. First step is getting the keyboard controller fully operational, then I can start working on parsing user input into something interesting. + +--- + # nanobyte_os This repository contains the code from the ["Building an OS"](https://www.youtube.com/watch?v=9t-SPC7Tczc&list=PLFjM7v6KGMpiH2G-kT781ByCNC_0pKpPN) series on the ["Nanobyte"](https://www.youtube.com/channel/UCSPIuWADJIMIf9Erf--XAsA) YouTube channel. @@ -19,6 +25,11 @@ paru -S gcc make bison flex libgmp-static libmpc mpfr texinfo nasm mtools qemu-s ``` NOTE: to install all the required packages on Arch, you need an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers). +I had to run this to get guestmount to work without sudo: +```bash +sudo dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-`uname -r` +``` + Then you must run `python3 -m pip install -r requirements.txt` After that, run `scons toolchain`, this should download and build the required tools (binutils and GCC). If you encounter errors during this step, you might have to modify `build_scripts/config.mk` and try a different version of **binutils** and **gcc**. Using the same version as the one bundled with your distribution is your best bet. @@ -29,3 +40,4 @@ Finally, you should be able to run `scons`. Use `scons run` to test your OS usin * [Discord channel](https://discord.gg/RgHc5XrCEw) * [Patreon](https://www.patreon.com/nanobyte) + diff --git a/build_scripts/config.py b/build_scripts/config.py index b1c75a0..17ab25e 100644 --- a/build_scripts/config.py +++ b/build_scripts/config.py @@ -1,6 +1,8 @@ +import os + #config = 'release' #arch = 'i686' imageType = 'disk' imageFS = 'fat32' imageSize = '250m' -toolchain='../.toolchains' \ No newline at end of file +toolchain = os.path.abspath(os.path.join(os.getcwd(), '.toolchains'))