macOS で Linux kernel をビルド

mac

macOS は Linux ではないので、そのままでは Linux kernel のビルドはできません。

しかし、docker 上でならできます。

ubuntu の docker コンテナ上で Linux kernel をビルドしてみましょう。

macOS Ventura 13.1 (Apple Silicon) で動作確認済み。

docker コンテナ準備

ubuntu の docker image をダウンロード

% docker image pull ubuntu

test_container の名前で起動で ubuntu の docker imagek からコンテナを起動

% docker container run --name test_container -itd ubuntu

起動したコンテナのシェルに入る

% docker exec -it test_container bash

ubuntu バージョン確認

# cat /etc/os-release 
PRETTY_NAME="Ubuntu 22.04.1 LTS"
# uname -a
Linux e0b1f7482bbe 5.15.49-linuxkit #1 SMP PREEMPT Tue Sep 13 07:51:32 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

kernel ビルド

/root に移動

# cd

apt レポジトリを最新にする

# apt -y update  

wget インストール

# apt install -y wget

カーネルイメージ取得

# wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.1.1.tar.xz

解凍のための xz インストール

# apt install -y xz-utils

解凍

# xz -dc linux-6.1.1.tar.xz | tar xfv -
# cd linux-6.1.1

make 取得

# apt install -y make

config作成に必要なパッケージ取得

# apt install -y gcc flex bison

arch/$ARCH/defconfigをデフォルトとして、.configを生成します。

# make defconfig

ビルド必要なパッケージを取得

# apt install -y bc libssl-dev

ビルド

# make -j 4

20分くらいのビルドのあと

vmlinux.o ができました。

参考

Linuxカーネルビルド大全 – 2022年2月2日
https://qiita.com/progrunner/items/d2ab0a85b3881a4b7ed8

おすすめの Rust の本

詳解Rustプログラミング

実践Rustプログラミング入門

プログラミング言語Rust入門

実践Rust入門 [言語仕様から開発手法まで]

Rustで始めるネットワークプログラミング

RustではじめるOpenGL (技術の泉シリーズ(NextPublishing))

プログラミング言語Rust 公式ガイド

コメント

タイトルとURLをコピーしました