GNU/Linux >> Linux の 問題 >  >> Linux

Linuxカーネルを最初から構築する方法{ステップバイステップガイド}

はじめに

Linuxカーネルは、Unixライクなオペレーティングシステムの基盤です。カーネルは、ハードウェアとソフトウェア間の通信と利用可能なリソースの割り当てを担当します。

すべてのLinuxディストリビューションは、事前定義されたカーネルに基づいています。ただし、いくつかのオプションとドライバーを無効にしたり、実験的なパッチを試したりする場合は、Linuxカーネルを構築する必要があります。

このステップバイステップガイドでは、Linuxカーネルを最初から構築およびコンパイルする方法を学習します。

前提条件

  • Linuxを実行しているシステム
  • 端末/コマンドラインへのアクセス
  • sudo / rootのユーザーアカウント 特権
  • ハードドライブに12GBの空き容量

Linuxカーネルの構築

Linuxカーネルを構築するプロセスは、7つの簡単なステップで完了します。ただし、システムの速度によっては、手順の完了にかなりの時間がかかります。

この記事の執筆時点で最新のLinuxカーネルを構築するには、以下の手順に従ってください。

注: カーネルWebサイトのバージョンが以下の手順のバージョンと一致しない場合は、これらのコマンドを使用して、カーネルのバージョン番号を置き換えてください。

ステップ1:ソースコードをダウンロードする

1.カーネルの公式Webサイトにアクセスして、最新のカーネルバージョンをダウンロードします。ダウンロードしたファイルには、圧縮されたソースコードが含まれています。

2.ターミナルを開き、wgetコマンドを使用してLinuxカーネルのソースコードをダウンロードします。

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.6.tar.xz

ダウンロードが完了すると、出力に「保存済み」メッセージが表示されます。

ステップ2:ソースコードを抽出する

ファイルの準備ができたら、tarコマンドを実行してソースコードを抽出します。

tar xvf linux-5.9.6.tar.xz

出力には、抽出されたカーネルソースコードが表示されます:

ステップ3:必要なパッケージをインストールする

カーネルを構築する前に、追加のパッケージをインストールしてください。これを行うには、次のコマンドを実行します:

sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

上記で使用したコマンドは、次のパッケージをインストールします。

パッケージ パッケージの説明
git 開発中のすべての変更をソースコードで追跡および記録します。また、変更を元に戻すこともできます。
fakeroot 偽のルート環境を作成するパッケージツール。
build-essential C、C ++、gcc、g++などの開発ツールをインストールします。
ncurses-dev テキストベースの端末にAPIを提供するプログラミングライブラリ。
xz-utils 高速のファイル圧縮と解凍を提供します。
libssl-dev データを暗号化してインターネット接続を安全にするSSLとTSLをサポートします。
bc (基本的な電卓) ステートメントのインタラクティブな実行をサポートする数学的スクリプト言語。
flex (高速字句解析ジェネレーター) 文字をトークンに変換する字句解析プログラムを生成します。
libelf-dev ELFファイル(実行可能ファイル、コアダンプ、オブジェクトコード)を管理するための共有ライブラリを発行します
bison 文法記述をCプログラムに変換するGNUパーサジェネレータ。

ステップ4:カーネルを構成する

Linuxカーネルのソースコードにはデフォルト設定が付属しています。ただし、必要に応じて調整できます。これを行うには、以下の手順に従います。

1.linux-5.9.6に移動します。 cdを使用するディレクトリ コマンド:

cd linux-5.9.6

2. cpを使用して既存の構成ファイルをコピーします コマンド:

cp -v /boot/config-$(uname -r) .config

3.構成ファイルに変更を加えるには、 makeを実行します コマンド:

make menuconfig

このコマンドはいくつかのスクリプトを起動し、それから設定メニューを開きます:

4.構成メニューには、ファームウェア、ファイルシステム、ネットワーク、メモリ設定などのオプションが含まれています。矢印を使用して選択するか、ヘルプを選択します オプションの詳細については、こちらをご覧ください。変更が完了したら、[保存]を選択します その後、メニューを終了します。

注: 一部のオプションの設定を変更すると、カーネルが機能しなくなる可能性があります。何を変更すればよいかわからない場合は、デフォルト設定のままにしてください。

ステップ5:カーネルを構築する

1.次のコマンドを実行して、カーネルの構築を開始します。

make

Linuxカーネルの構築とコンパイルのプロセスは、完了するまでに少し時間がかかります。

ターミナルには、メモリ管理、ハードウェアデバイスドライバー、ファイルシステムドライバー、ネットワークドライバー、プロセス管理など、すべてのLinuxカーネルコンポーネントが一覧表示されます。

2.次のコマンドで必要なモジュールをインストールします:

sudo make modules_install

3.最後に、次のように入力してカーネルをインストールします。

sudo make install 

出力には完了が表示されます 終了時:

ステップ6:ブートローダーを更新する(オプション)

GRUBブートローダーは、システムの電源がオンになったときに実行される最初のプログラムです。

make install コマンドはこのプロセスを自動的に実行しますが、手動で実行することもできます。

1.initramfsをインストールされているカーネルバージョンに更新します。

sudo update-initramfs -c -k 5.9.6

2.次のコマンドでGRUBブートローダーを更新します:

sudo update-grub

端末はプロセスと確認メッセージを出力します:

ステップ7:カーネルバージョンを再起動して確認する

上記の手順を完了したら、マシンを再起動します。

システムが起動したら、 unameを使用してカーネルのバージョンを確認します コマンド:

uname -mrs

ターミナルは現在のLinuxカーネルバージョンを出力します。


Linux
  1. rpmパッケージをビルドする方法

  2. AndroidからLinuxでSSH接続する方法

  3. Linuxでカーネルバージョンを確認する方法

  1. Linuxデスクトップでカーネルをアップグレードする方法

  2. Linux – Linuxからブートローダーを実行する方法は?

  3. Linux カーネルからメモリのブロックを予約するにはどうすればよいですか?

  1. CコードからLinuxカーネルモジュールをロードする方法は?

  2. Linux カーネルの copy_from_user は内部でどのように機能しますか?

  3. Linux カーネルモジュールのコーディング方法は?