71.1. カーネルヘッダー ( /usr/src/ )

 ファイルシステムについてカーネルヘッダーをインストールする必要があります。

 インストールには apt を使います。

$ uname -r
4.18.16-041816-generic
$ sudo apt install linux-headers-$(uname -r)

 uname の結果は現在使っている Linux のバージョンを示しています。

 apt は linux-headers-(カーネルバージョン名)の名前で、現在使っているカーネルに対応するカーネルヘッダーをインストールできます。

 それで筆者の端末では、何度もヘッダーを導入した結果として以下のようになってます。

$ ls
gmock                                linux-headers-4.16.11-041611-generic  linux-headers-4.18.0-041800-generic
googletest                           linux-headers-4.16.18-041618          linux-headers-4.18.11-041811
gtest                                linux-headers-4.16.18-041618-generic  linux-headers-4.18.11-041811-generic
linux-headers-4.15.0-36              linux-headers-4.17.18-041718          linux-headers-4.18.16-041816
linux-headers-4.15.0-36-generic      linux-headers-4.17.18-041718-generic  linux-headers-4.18.16-041816-generic
linux-headers-4.16.0-041600          linux-headers-4.17.19-041719          linux-headers-4.18.7-041807
linux-headers-4.16.0-041600-generic  linux-headers-4.17.19-041719-generic  linux-headers-4.18.7-041807-generic
linux-headers-4.16.11-041611         linux-headers-4.18.0-041800           virtualbox-5.2.10
$ uname -r
4.18.11-041811-generic
$ cd /usr/src/linux-headers-$(uname -r)/include/linux
$ pwd
/usr/src/linux-headers-4.18.16-041816-generic/include/linux

 「 /usr/src/linux-headers-4.18.11-041811-generic/include/linux 」というのは「 /usr/src/linux-headers-$(uname -r)/include/linux 」と等しいです。

 このディレクトリーにはファイルシステムだけでなく基本的なヘッダーは全部入っています。

 ですが次の項目でチェックするのは以下の 2 つです。

fs.h
super_block / inode / file が宣言されてます。
dcache.h
dentry が宣言されてます。

 特に fs.h は巨大ですが、読んでみる価値はあると思いますよ。

Copyright 2018-2019, by Masaki Komatsu