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


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

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

この記事では、デフォルトのパッケージマネージャを使って 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/kernel ディレクトリにすべてのカーネルヘッダーファイルを見つけることができます。

# 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 7 Fedoraに kernel-devel kernel-header パッケージをインストールする方法を説明しました。システム。 Linuxシステムでデバイスドライバなどのカーネルモジュールをコンパイルする前に、必要なカーネルヘッダファイルをインストールしておく必要があります。ご質問がある場合は、下記のコメントフォームを使用してご連絡ください。