カーネルヘッダファイルのコンパイルエラーの原因に関するアドバイスを探す

カーネルヘッダファイルのコンパイルエラーの原因に関するアドバイスを探す

私は現在プロジェクトの一部としてRedhat8でいくつかの排他的なデバイスドライバをコンパイルしようとしています(最初は、gccを呼び出すベンダーから提供されたMakefileを使用してRedhat6カーネルバージョン2.6.32-504.el6.x86_64用に正常にコンパイルされました)。私が使っているカーネルのバージョンは4.18.0-240.15.1.el8_3.x86_64です。

コンパイルすると、<linux/printk.h> や <linux/kernel.h> などのシステムヘッダファイルに多くのエラーが発生します。

私はこの投稿を特定のエラーで埋めたくありませんが、私が明確にしたいのは上記の以前のカーネルバージョンに正常にコンパイルできる同じドライバコードの最新のカーネルバージョンのカーネルヘッダファイルにコンパイルエラーが表示されるのはなぜですか?

どんなアイデアでも大いに感謝します。

ティア

ベストアンサー1

Linuxカーネル内部的に安定したABIやAPIはありません。これは、外部モジュールで使用されているインターフェイスの以前のバージョンとの互換性を維持するためにほとんど努力しないことを意味します。

たくさん2.6.32と4.18の間に変更が発生しました。 4.18 カーネルに 2.6.32 互換モジュールを構築するには、かなりの移植作業が必要です。

おすすめ記事