ウェブサイト検索

CentOS 7 にカーネル ヘッダーをインストールする方法


CentOS システム上でデバイス ドライバーなどのカスタム カーネル モジュールをコンパイルする場合は、カーネル ヘッダー ファイルをシステムにインストールする必要があります。これには、C ヘッダー ファイルが含まれます。 Linux カーネル。カーネル ヘッダー ファイルは、カーネルとインターフェイスするコードをインストールまたはコンパイルするときに必要な、さまざまな種類の関数と構造の定義を提供します。

カーネル ヘッダー をインストールするときは、システムに現在インストールされているカーネル バージョンと一致していることを確認してください。カーネル バージョンがデフォルトの配布インストールに付属している場合、またはシステム ベース リポジトリから yum パッケージ マネージャーを使用してカーネルをアップグレードした場合は、パッケージ マネージャーのみを使用して一致するカーネル ヘッダーをインストールする必要があります。ソースからカーネルをコンパイルした場合は、ソースからのみカーネル ヘッダーをインストールできます。

こちらもお読みください: Ubuntu および Debian にカーネル ヘッダーをインストールする方法

この記事では、デフォルトのパッケージ マネージャーを使用してCentOS/RHEL 7 およびFedora ディストリビューションにカーネル ヘッダーをインストールする方法について説明します。

CentOS 7 にカーネル ヘッダーをインストールする

まず、次のコマンドを使用して、一致するカーネル ヘッダーがシステムの /usr/src/kernels/ の場所にすでにインストールされていることを確認します。

cd /usr/src/kernels/
ls -l

一致するカーネル ヘッダーが /usr/src/kernels/ ディレクトリにない場合は、kernel-devel パッケージによって提供されるカーネル ヘッダーをインストールしてください。図に示すように、デフォルトのパッケージ マネージャーを使用してインストールできます。

yum install kernel-devel   [On CentOS/RHEL 7]
dnf install kernel-devel   [On Fedora 22+]

kernel-devel パッケージをインストールした後、次のコマンドを使用して、/usr/src/kernels ディレクトリにあるすべてのカーネル ヘッダー ファイルを見つけることができます。

ls -l /usr/src/kernels/$(uname -r) 

VPS (Linode VPS など) では、カーネルのバージョン名がカスタマイズされている可能性があることに注意してください。そのようなシナリオでは、カーネルのバージョンを手動で特定し、次のコマンドを使用してインストールされているカーネル ヘッダー ファイルを確認する必要があります。 。

uname -r	
ls -l /usr/src/kernels/3.10.0-862.2.3.el7.x86_64

サンプル出力
total 4544
drwxr-xr-x.  32 root root    4096 May 16 12:48 arch
drwxr-xr-x.   3 root root    4096 May 16 12:48 block
drwxr-xr-x.   4 root root    4096 May 16 12:48 crypto
drwxr-xr-x. 119 root root    4096 May 16 12:48 drivers
drwxr-xr-x.   2 root root    4096 May 16 12:48 firmware
drwxr-xr-x.  75 root root    4096 May 16 12:48 fs
drwxr-xr-x.  28 root root    4096 May 16 12:48 include
drwxr-xr-x.   2 root root    4096 May 16 12:48 init
drwxr-xr-x.   2 root root    4096 May 16 12:48 ipc
-rw-r--r--.   1 root root     505 May  9 19:21 Kconfig
drwxr-xr-x.  12 root root    4096 May 16 12:48 kernel
drwxr-xr-x.  10 root root    4096 May 16 12:48 lib
-rw-r--r--.   1 root root   51205 May  9 19:21 Makefile
-rw-r--r--.   1 root root    2305 May  9 19:21 Makefile.qlock
drwxr-xr-x.   2 root root    4096 May 16 12:48 mm
-rw-r--r--.   1 root root 1093137 May  9 19:21 Module.symvers
drwxr-xr-x.  60 root root    4096 May 16 12:48 net
drwxr-xr-x.  14 root root    4096 May 16 12:48 samples
drwxr-xr-x.  13 root root    4096 May 16 12:48 scripts
drwxr-xr-x.   9 root root    4096 May 16 12:48 security
drwxr-xr-x.  24 root root    4096 May 16 12:48 sound
-rw-r--r--.   1 root root 3409102 May  9 19:21 System.map
drwxr-xr-x.  17 root root    4096 May 16 12:48 tools
drwxr-xr-x.   2 root root    4096 May 16 12:48 usr
drwxr-xr-x.   4 root root    4096 May 16 12:48 virt
-rw-r--r--.   1 root root      41 May  9 19:21 vmlinux.id

さらに、glibc で使用する Linux カーネルのヘッダー ファイルが必要な場合は、次のコマンドを使用してkernel-header パッケージをインストールします。

yum install kernel-headers   [On CentOS/RHEL 7]
dnf install kernel-headers   [On Fedora 22+]

これで、VirtualBox などのソフトウェア用に独自のカーネル モジュールまたは既存のカーネル モジュールをコンパイルできるようになりました。

それでおしまい!この記事では、CentOS/RHEL 7Fedora< に kernel-devel パッケージと kernel-header パッケージをインストールする方法を説明しました。 システム。 Linux システム上でデバイス ドライバーなどのカーネル モジュールをコンパイルする前に、必要なカーネル ヘッダー ファイルがインストールされている必要があることに注意してください。ご質問がある場合は、以下のコメントフォームを使用してご連絡ください。