カーネルヘッダーには、LinuxカーネルのCヘッダーファイルが含まれています。このファイルは、カーネルデバイスドライバーやモジュール、その他のユーザープログラムなど、カーネルとインターフェイスするコードをコンパイルするときに必要ないくつかの機能と構造の定義を提供します。
一般に、Linuxカーネルヘッダーは、カーネルにサポートを追加するドライバーとロード可能なモジュールをコンパイルするために習慣的に使用されるコンポーネントです。個別に配布されているにもかかわらず、カーネルヘッダーがカーネルの一部であるという事実に光を当てることも重要です。
注意すべきもう1つの重要な点は、カーネルヘッダーパッケージは、システムに現在インストールされているカーネルバージョンと一致する必要があるということです。カーネルバージョンがデフォルトのディストリビューションインストールであるか、Debianベースリポジトリからdpkgまたはaptパッケージマネージャーを介してカーネルをアップグレードしたとします。その場合、パッケージマネージャーのみを使用して一致するカーネルヘッダーを設定する必要があります。一方、ソースからカーネルをコンパイルした場合は、ソースからカーネルヘッダーも設定する必要があります。
その情報を読んだ後、記事のコア部分に注目しましょう。ここでは、Linux、特にデフォルトのパッケージマネージャーを使用してDebianLinuxディストリビューションにカーネルヘッダーをインストールする方法を説明します。
Debianにカーネルヘッダーをインストールする方法
ステップ1: まず最初に、起動する前に、次のコマンドを実行してrootユーザーとしてログインする必要があります。
su
その後、PCのパスワードを入力すると、上のスナップショットに示すように、rootユーザーとしてログインする必要があります。
ステップ2: 次に、次のコマンドを使用して、すでにインストールされているカーネルバージョンとカーネルバージョンに一致するヘッダーパッケージを確認します。
uname -r apt search linux-headers-$(uname -r)

ステップ3: すべてのカーネルヘッダーファイルは、 / usr / srcからアクセスできます。 Debianとその派生物のディレクトリ。また、カーネルバージョンに一致するカーネルヘッダーがシステムにすでにインストールされているかどうか、または後続のコマンドを使用していないかどうかを確認する柔軟性もあります。
ls -l /usr/src/linux-headers-$(uname -r)

上記の出力から、一致するカーネルヘッダーディレクトリが存在しないことは事実です。つまり、パッケージはまだインストールされていません。
ステップ4: カーネルヘッダーをインストールする前に、次のコマンドを使用して、パッケージのインデックスリストを更新し、最新リリースに関する情報を取得してください。
sudo apt update

ステップ5: updateコマンドを実行した後、アップグレードが必要なパッケージがあるかどうかが通知されます。ある場合は、次のコマンドを実行します。それ以外の場合は、この部分をスキップしてください。
sudo apt upgrade

ステップ6: 次に、次のコマンドを実行して、カーネルバージョンのLinuxカーネルヘッダーパッケージをインストールします
sudo apt install linux-headers-$(uname -r)

注: インストール中のある時点で、インストールを続行するという決定を確認するように求められます。入力するだけです「y/Y」 「Enter」を押します ボタンを押すか、「Enter」を押します ボタンだけで、それでうまくいくはずです。
ステップ7: 次に、次のコマンドを使用して、システムに一致するカーネルがインストールされているかどうかを確認します。
ls -l /usr/src/linux-headers-$(uname -r)

使用可能なすべてのヘッダーを一覧表示するには、次のコマンドを実行します。
sudo apt search linux-headers

次に、Debian 11 x64または2番目の方法を使用してヘッダーを見つけた後、次のコマンドを実行してヘッダーをインストールすることもできます。
sudo apt install linux-headers-5.10.0-10-amd64

Linuxヘッダーに関するFAQ
Linuxヘッダーはどこにありますか?
Linux-headersは、Linuxカーネルヘッダーを提供するパッケージです。これらは、個別に出荷されているにもかかわらず、カーネルの一部です。これらは、内部コンポーネント、ユーザースペース、およびカーネル間のインターフェースです。
Linuxヘッダーが必要ですか?
インストールしたマシンであるDebianで開発およびコンパイルする場合は、Linuxヘッダーが必要です。たとえば、特定のタスク専用のアプライアンスを構築する場合、おそらくそれをコンパイルする気はありません。アプリをコンパイルする必要があるとします。これは別のシステムで行います。
Unixでヘッダーを表示する方法
od -bc{filename}|を使用します頭 バイナリファイルのヘッダーを確認します。表示も機能しますが、当然、コマンドラインで直接出力を確認することをお勧めします。
カーネルヘッダーがインストールされているかどうかを確認する方法
ソフトウェアセンターまたはシナプスを開いて、パッケージ「Linux-headers-generic」がインストールされていることを確認できます。そのパッケージは、利用可能な最新のカーネルバージョンのヘッダーに応じてマークされているため、具体的には別のパッケージを1つまたは2つ取り込むことができます。
カーネルヘッダーをカーネルバージョンと同期させる必要がありますか?
答えはいいえだ。実行中のカーネルバイナリよりも新しいLinuxヘッダーバージョンを使用できます。たとえば、カーネル4.1をセットアップしている場合は、Linuxヘッダー4.4を使用できます。これらの新しいヘッダーを使用してGlibcをコンパイルし、後でカーネル4.4にアップグレードすると、Glibcを再コンパイルせずにこのカーネルの新機能を利用できるようになります。
Linuxでヘッダーが必要なのはなぜですか?
ヘッダーファイルはインターフェイスを説明します。これらは、ソースファイルの関数がどのように定義されるかを指定します。これらは、関数のシグネチャ(戻り値とパラメータ)がヘッダーファイルに存在するため、コンパイラが関数の使用法が正確かどうかを確認できるようにするために使用されます。
最終的な考え
ご覧のとおり、LinuxカーネルヘッダーをDebianにインストールすることは、初心者、中級者、専門家など、Linuxレベルのユーザーにとって非常に簡単です。さらに、Linuxレベルのユーザーは、少なくともカーネルヘッダーの機能とそのインストール方法を知っている必要があります。また、ダウンロードするカーネルヘッダーは、アーキテクチャだけでなくバージョンもシステムと互換性がある必要があるため、注意を払う必要があります。また、カーネルモジュールをコンパイルするにはLinuxカーネルヘッダーが必要になることに注意してください。