/mikanos-build

Build and run scripts for MikanOS

Primary LanguageShellApache License 2.0Apache-2.0

mikanos-build (aarch64)

MikanOS オレオレ AArch64対応版 AArch64対応版のビルド環境を構築します。

Ubuntu20.10で動作確認をしています。

オリジナルのビルド環境構築についてはこちらを参照してください。

ビルド環境の構築

まず作業ディレクトリを作成します。
作業ディレクトリに移り、このリポジトリをosbookという名前でクローンします。

mkdir aarch64-mikanos
cd aarch64-mikanos
git clone https://github.com/kaz399/mikanos-build.git osbook

例として作業ディレクトリをaarch64-mikanosとします。
ディレクトリ構成は下記になります。

aarch64-mikanos
 └── osbook/

osbook/aarch64-buildenv/に移動し、環境構築スクリプトbootstrap.shを実行します。
作業ディレクトリに開発環境一式が構築されます。

cd osbook/aarch64-buildenv
./bootstrap.sh

環境構築が終了すると下記の構成になります。

aarch64-mikanos
├── aarch64-linux-gnu -> gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu
├── activate.sh
├── clang+llvm-11.0.0-aarch64-linux-gnu/
├── downloads/
├── edk2/
├── freetype2/
├── gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/
├── mikanos/
├── musl/
├── osbook/
└── seabios/

10 directories, 1 file

ビルド

作業ディレクトリにあるactivate.sh をsourceします。
activate.shの引数でビルドするアーキテクチャを選択します。

別アーキテクチャに切り替えるときはdeactivateを実行してから再度activate.shをsourceしなおしてください。

aarch64バイナリをビルドする場合

. ./activate.sh

x86_64バイナリをビルドする場合

. ./activate.sh x86_64

loaderとkernelのビルド

mikanos/kernelディレクトリに移り、loaderとkernelをビルドします。

cd mikanos/kernel
make loader
make

注:loaderはビルド時に他アーキテクチャのバイナリを消してしまうので、アーキテクチャを切り替えたときには再ビルドが必要になります

QEMUでの実行

下記コマンド(エイリアス)を実行するとkernelをEMUで実行します。
disk.imgを作成するためにsudoを実行するので、パスワードを聞いてきます。

aarch64バイナリを実行する場合

ra

x86_64バイナリを実行する場合

rk