技術ノート Linux および macOS ターミナル Ubuntu カーネルをカスタマイズする方法

Ubuntu カーネルをカスタマイズする方法

カーネルのカスタマイズは誰にでも適しているわけではありません。これらのいずれかを試す前に、システムが破損する可能性があることに注意してください。カーネルをカスタマイズしたい理由はたくさんあります。特に必要なものだけを必要とするサーバーまたは専用デバイスを実行している場合は、カーネルを必要なサービスのみにトリミングすることをお勧めします。また、実行しているカーネルで現在サポートされていないハードウェアをサポートするには、カーネルにパッチを適用する必要がある場合もあります。この記事では、カーネルにパッチを適用する方法については説明せず、現在のカーネルをカスタマイズする方法についてのみ説明します。カーネルにパッチを適用する方法と、パッチを適用する実際的な理由について説明する別のフォローアップ記事を作成する予定です。まず、現在実行しているカーネルのバージョンを把握する必要があります。それには uname コマンドを使用します

Ubuntu カーネルをカスタマイズする方法

$ uname -r 2.6.17-10-generic

ここで、カーネルの Linux ソースをインストールする必要があります。私は 2.6.17-10 カーネルを実行しているため、インストーラの行にはそれが反映されていることに注意してください。この記事では、実行しているものをカーネル番号に置き換えることができます。また、curses ライブラリとコンパイルに役立つその他のツールをインストールする必要があります。

sudo apt-get install linux-source-2.6.17 kernel-package libncurses5-dev fakeroot

Linux ソースがどこにインストールされるか知りたい場合は、dpkg コマンドを使用してパッケージ内のファイルを確認できます。私のシステムでの出力は次のとおりです。

$ dpkg -L linux-source-2.6.17
/。
/usr
/usr/src
/usr/src/linux-source-2.6.17.tar.bz2
/usr/共有
/usr/share/doc
/usr/share/doc/linux-source-2.6.17
(トリミング)

Ubuntu カーネルをカスタマイズする方法

ソースが zip ファイルで /usr/src ディレクトリにインストールされていることがわかります。作業を簡単にするために、sudo を使用して新しいシェルを開き、root モードにします。他にも方法はありますが、私はこの方法の方が好きです。

sudo /bin/bash

インストールできるように、ディレクトリをソースの場所に変更します。 bunzip ユーティリティがインストールされていない場合は、インストールが必要になる場合があることに注意してください。 (それは私のものでした)

cd /usr/src bunzip2 linux-source-2.6.17.tar.bz2 tar xvf linux-source-2.6.17.tar ln -s linux-source-2.6.17 linux

カスタム コンパイル プロセスに使用する既存のカーネル構成のコピーを作成します。 ` 文字はチルダ ~ の下にあることに注意してください。

Ubuntu カーネルをカスタマイズする方法

cp /boot/config-`uname -r` /usr/src/linux/.config

ここで、カーネルをカスタマイズできるユーティリティを起動します。

cd /usr/src/linux make menuconfig

まず、「代替構成ファイルのロード」に進み、.config ファイルをロードします。 (Enter キーを押すだけです) ユーティリティ内に入ったので、カスタム カーネルのオプションを設定できます。ナビゲーションは非常にシンプルで、迷った場合は上部に凡例が表示されます。 「ネットワーク」を選択し、Enter キーを押してそのカテゴリに移動することにしました。

アマチュア無線のサポート?それは一体何のために設置されているのでしょうか? * によって、これがカーネルに組み込まれていることがわかります。

Ubuntu カーネルをカスタマイズする方法

?を押すとキーを押すと、その特定の項目のヘルプが表示されます。説明は次のとおりです。

そうですね、すぐに無効にします。それにしても、一体なぜそれが私のカーネルにインストールされているのでしょうか? Esc キーを押してヘルプ画面を終了し、N キーを押してカーネルから除外しました。必要な選択を完了したら、「終了」を押し、プロンプトが表示されたら構成を保存します。これで、コンパイルの準備が整った構成が完成しました。まず、コンパイルの準備がすべて整っていることを確認するために、make clean を実行します。

make-kpkgをクリーンにする

次に実際にカーネルをコンパイルしてみます。これには非常に長い時間がかかるので、何か面白いことを見つけてください。

fakeroot make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers

Ubuntu カーネルをカスタマイズする方法

このプロセスにより、カーネルを含む 2 つの .deb ファイルが /usr/src に作成されます。 linux-image**** ファイルは実際のカーネル イメージであり、もう 1 つのファイルには、dpkg を使用して両方をインストールできます。ファイル名はシステムによって異なる可能性があります。次のコマンドを実行すると、新しいカーネルが新しいデフォルト カーネルとして設定されることに注意してください。これでは物が壊れる可能性があります。マシンが起動しない場合は、GRUB 読み込みメニューで Esc キーを押し、古いカーネルを選択します。その後、/boot/grub/menu.lst でカーネルを無効にするか、再度コンパイルしてみてください。

dpkg -i linux-image-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb dpkg -i linux-headers-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom -10.00.Custom_i386.deb

次に、マシンを再起動します。すべてが機能する場合は、新しいカスタム カーネルが実行されているはずです。これは uname を使用して確認できます。正確な数はマシンによって異なることに注意してください。

uname -r 2.6.17.14-ubuntu1-custom

カーネルのカスタマイズに関する一連の記事を書く予定なので、最新情報を入手するには RSS フィードを購読してください。また、完全な開示のために、私は HowtoForge の記事からこれを行う方法を学びました。HowtoForge は、Linux に関するいくつかの非常に高度なチュートリアルを提供する優れた Web サイトです。この記事をより「Ubuntu」らしくすることを試みましたが、この記事の手順の多くは似ていることに気づくでしょう。

「 Ubuntu カーネルをカスタマイズする方法」に関するベスト動画選定!

その61 18行のLinuxカーネルモジュールを作ってみる
Linuxとは?|Linuxの成り立ちや、UNIXとの違いをまじえて3分でわかりやすく解説します