1
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?

More than 1 year has passed since last update.

Linux 「/usr/src/linux/」とmakeコマンドについて

Posted at

FHS(FileSystem Hierarchy Standard)は、ファイルシステムの標準的な階層配置を定めたもの。カーネルのソースは 「/usr/src/linux/」に展開するのが一般的。

●「/usr/src/linux/」内のファイル・ディレクトリ

ファイル
・.config カーネルのビルド設定ファイル
・Makefile makeの設定やカーネルバージョンが書いてある

ディレクトリ
・kernel/ カーネル本体
・Documentation/ ドキュメントの類
・arch/ アーキテクチャ固有のコード
・drivers/ デバイスドライバ
・fs/ ファイルシステム
・include/ インクルードファイル(他のファイルから呼び出すコードのまとまり)
・mm/ メモリ管理
・net/ ネットワーク

●make コマンド
ソースをコンパイルしてソフトウェアの実行ファイルを作る(ビルドする)

■カーネルをビルドする際の設定に関係する、代表的な make オプション(ターゲット)の一覧

・make config 対話的に(質問形式)設定を行う
・make menuconfig ターミナル上のGUIで設定を行う
・make xconfig X上のGUIで設定を行う
・make defconfig デフォルト状態の設定を引き継ぐ
・make oldconfig 現在のカーネルの設定を引き継ぐ
・make cloneconfig (oldconfigとほぼ同じ)
・make clean 設定ファイルを除いて一時ファイル等を削除
・make mrproper 設定ファイルを含めて一時ファイル等を削除

■ビルド対象に関連した動作を指定するターゲット

・make all カーネルとモジュールをビルド
・make install ビルドしたカーネルをインストール
・make modules カーネルモジュールをビルド
・make modules_install カーネルモジュールをインストール
・make rpm ビルド後にrpmパッケージ化
・make rpm-pkg ソースrpmパッケージを作る
・make binrpm-pkg バイナリrpmパッケージを作る
・make deb-pkg Debianパッケージを作る

●ソースからのカーネルのビルドとインストール(再構築)の基本的な手順

カーネルのソースは取得・展開済みであるとし、以下はすべてソースを展開したディレクトリ「/usr/src」直下で行う。

  1. make mrproper で設定を初期化
    make mrproper で設定ファイルを含めてディレクトリ内を初期化。

  2. make oldconfig で設定を行う
    初期化された設定を再構築用に設定。設定はカーネルをコンパイル(ビルド)する前に行なう。
    他には make config 、make menuconfig 、make xconfig などがある。

  3. makeでビルドを行う
    単に make とするか、make all とすることで、依存関係の解消、カーネル本体とモジュールのビルド、一時ファイルの削除を自動的に行ってくれる。

  4. システムにインストールする
    ビルドを行っただけではシステムに配置されてはいないので、インストールを行う。通常、make modules_install としてモジュールをインストールしてから、make install としてカーネル本体をインストールする。
    make install によって /boot 以下にカーネルイメージが配置され、ブートローダに新しいカーネルを使う起動設定が追加。

●DKMS(Dynamic Kernel Module Support)
カーネルとカーネルモジュールの依存関係による問題を解消し、カーネルのアップデート時に、自動的にカーネルモジュールを更新するための機能。
DKMSは、カーネルアップデートの際に、カーネルとは独立して自動的にカーネルモジュールをコンパイルし、インストール。
また、手動によりdkmsコマンドを使ってモジュールを構成したり、対象のカーネルモジュールの状態を表示することも可能。
主要な設定ファイルは各モジュールの設定を行うdkms.confと、全体の設定を行う/etc/dkms/framework.conf。

1
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
1
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?