ツリー外部カーネルモジュールなどのツリー内部カーネルモジュールを構築するには?

ツリー外部カーネルモジュールなどのツリー内部カーネルモジュールを構築するには?

使いたいOracle Linux UEK7カーネルしかし、UEK7DRBDを無効にする、我々はそれに大きく依存しています。

しかし、.src.rpm 利用可能したがって、理論的には、kernel-uek-develパッケージを使用して、元の.src.rpmカーネルツリーからツリー外部モジュールにdrbd.koモジュールを構築することが可能です。/lib/modules/$(uname -r)/build

.config1つの方法はRPM全体を調整することですが、rpmbuild -bbOracleの元のカーネルを起動し続けますただdrbd.ko 同じバージョンのカーネルにきちんとロードされるようにモジュールを構築してください。

基本的に、私たちはツリーの外部カーネルモジュールであるかのようにツリー内のカーネルモジュールを構築しようとしています。 (私たちが望む.koのカーネルバージョンは、私たちが使用するカーネルバージョンとまったく同じです。)

質問:

  • .src.rpm提供カーネル用にパブリッシャが元々ビルドしていない特定のカーネルモジュールをビルドする方法は?

ベストアンサー1

これが私がUEK6でやったことです。

ビルド依存関係をインストールします。

yum group install Development\ Tools -y
yum install kernel-uek-devel kernel-rpm-macros kernel-abi-whitelists -y

LinbitからDRBDソースtarをダウンロードし、rpmを作成します。

DRBD_VER="9.1.11"
curl -LO https://pkg.linbit.com//downloads/drbd/9/drbd-${DRBD_VER}.tar.gz
tar xf drbd-${DRBD_VER}.tar.gz
(cd ./drbd-${DRBD_VER} && make kmp-rpm)

あなたのリビジョンはここにあります: /root/rpmbuild/RPMS/x86_64

独自のカーネルモジュールを構築する際の唯一の問題は、カーネルをアップグレードするたびに(マイナーなアップグレードでも)モジュールを再構築する必要があることです。

おすすめ記事