web-dev-qa-db-ja.com

特定のカーネルモジュールを構築する方法は?

公式のLinuxカーネルリポジトリ( http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.15.tar.bz2 )からカーネルソースをインストールし、再コンパイルしましたモビリティIPv6をサポートするために必要ないくつかのオプションがあります。一部のデータを暗号化するためのモジュールが必要なとき、すでに構築されている残りのモジュールの中にそれが見つかりませんでした。必要なモジュールは「echainiv」と「authenc」です。

1
melmansuri

最初のステップは、モジュールをビルドするために設定する必要のある構成オプションを決定することです。私が使う

make menuconfig

そのために; /の後に必要な構成オプションが続くと、それを見つける場所とその依存関係がわかります。 ECHAINIVの場合、CRYPTOを有効にしてから、ECHAINIVを有効にする必要があります(それが目的なので、モジュールとして— make menuconfigで、エントリに表示する必要があります<M>ではなく、<*>)。

モジュールをビルドするには、対応するソースコードを含むディレクトリを探します。

find . -name echainiv\*

コードはcryptoにあるので、

make crypto/echainiv.ko

(トップレベルディレクトリから)モジュールをビルドします。

モジュールをインストールするには、ターゲットカーネルを実行していると仮定して、

Sudo mkdir -p /lib/modules/$(uname -r)/kernel/crypto
Sudo cp -i crypto/echainiv.ko /lib/modules/$(uname -r)/kernel/crypto
4
Stephen Kitt