0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[作業ログ] KVM+QEMUでLinux Kernel Buildにチャレンジ

Posted at

TL;DR

  • ubuntuで,KVM, QEMUを使って壊れてもいい仮想マシンを構築する
  • 特になにもカスタマイズせずにただLinux kernelのビルド&インストールする

system

  • AL14-72-5GU1
  • Corei5-12450H
  • 16GB RAM
  • Ubuntu 24.04 LTS

vmの準備

まず,kvmが使える環境であることを確認する.
以下が0じゃなければcpuが仮想化機能を持ってるらしい.

$ egrep -c '(vmx|svm)' /proc/cpuinfo

以下のコマンドで必要なパッケージをインストール

sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
sudo kvm-ok

KVM acceleration can be usedが表示されればokらしい

仮想マシンを構築する

まず,仮想ディスクイメージを作る.
以下のコマンドでゲストOSのディスクイメージを作成する.
今回は適当にubuntu-disk.qcow2というイメージを作成する.
一回20Gくらいで作成したところ,ビルドの途中でディスクが埋まったのででかめにとる.

qemu-img create -f qcow2 ~/qemu/ubuntu-disk.qcow2 128G

wgetとかで好きなubuntuのisoイメージをダウンロードしてください.

wget https://releases.ubuntu.com/22.04/ubuntu-22.04.3-live-server-amd64.iso
qemu-system-x86_64 \
    -enable-kvm \
    -m 12G \
    -smp 8 \
    -drive file=ubuntu-disk.qcow2,format=qcow2 \
    -cdrom ubuntu-22.04.3-live-server-amd64.iso \
    -boot d \
    -vga virtio \
    -display sdl \
    -netdev user,id=net0 -device e1000,netdev=net0

ubuntuのインストールが終わったら,カーネルビルドが始まります.

vm内の作業

git clone --depth=1 https://github.com/torvalds/linux.git
cd linux
cp /boot/config-$(uname -r) .config
make menuconfig

option:カーネルのバージョン文字列を変更

MakefileのEXTRAVERSIONの文字列をわかりやすい文字列に変更しておくと,インストールしたあとにカーネルが更新されたことがわかりやすくなります.

ビルド

使えるcpuコアを使ってビルド

make -j$(nproc)

インストール

カーネルモジュール&本体をインストール

sudo make modules_install
sudo make install

GRUB更新&再起動

sudo update-grub
sudo reboot

再起動後,バージョンが変わっているかチェック

uname -r

現場からは以上です.
お疲れ様でした.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?