Open P-Kichi opened 6 months ago
早速のご回答ありがとうございます。 結論から申し上げますと最終的にはビルドに成功しましたが、ご提示頂いた コードそのままでは同じエラーが発生しました。
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0)
ctx->class = class_create(name);
#else
ctx->class = class_create(THIS_MODULE, name);
#endif
で、カーネルバージョンが6.4以上かどうかでclass_create() の呼び方を変えていますが、Rocky Linux 9.4 のカーネルバージョンは
[root@rocky9 ~]# uname -r
5.14.0-427.16.1.el9_4.x86_64
の通り 5.14 ですので else 以降の処理に分岐し、結果として古い(?)呼び出し方が選択されます。 (因みにそれまでビルドに成功していた Rocky Linux 9.3 のカーネルバージョンは 5.14.0-362.24.1 です)。
そこでこの分岐処理をカットし、単純に
ctx->class = class_create(THIS_MODULE, name);
を
ctx->class = class_create(name);
に変更してみたところ、ビルドに成功しました。
当方で発生した問題はこれで解決しましたが、この方法では Rocky Linux 8 や 9.3 以前では逆にエラーになると思いますので、可能でしたら汎用性を持たせて頂きたく、お願い致します。
当方、Rocky Linux 9 で利用させて頂いております。 カーネルのバージョンが上がっても dkmsで自動ビルドする様にしていたのですが、先日 9.3 から 9.4 に バージョンアップして以降、ビルドに失敗する様になりました。
手動でmakeしてみたところ、以下の通りエラーが発生します。
尚、もう一台 Rocky Linux 8 で録画サーバーを稼働させていますが、こちらは問題ありません。
この問題を解決するにはどうすれば良いでしょうか?