-
Notifications
You must be signed in to change notification settings - Fork 60
Open
Description
当方、Rocky Linux 9 で利用させて頂いております。
カーネルのバージョンが上がっても dkmsで自動ビルドする様にしていたのですが、先日 9.3 から 9.4 に
バージョンアップして以降、ビルドに失敗する様になりました。
[root@rocky9 driver]# cat /etc/rocky-release
Rocky Linux release 9.4 (Blue Onyx)
[root@rocky9 driver]# uname -a
Linux rocky9 5.14.0-427.16.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Wed May 8 17:48:14 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
手動でmakeしてみたところ、以下の通りエラーが発生します。
[[root@rocky9 driver]# pwd
/usr/src/px4_drv/driver
[root@rocky9 driver]# make
'revision.h' was updated.
make[1]: ディレクトリ '/usr/src/kernels/5.14.0-427.16.1.el9_4.x86_64' に入ります
CC [M] /usr/src/px4_drv/driver/driver_module.o
CC [M] /usr/src/px4_drv/driver/ptx_chrdev.o
次のファイルから読み込み: ./include/linux/linkage.h:7,
次から読み込み: ./include/linux/preempt.h:10,
次から読み込み: ./include/linux/spinlock.h:56,
次から読み込み: ./include/linux/kref.h:16,
次から読み込み: /usr/src/px4_drv/driver/ptx_chrdev.h:13,
次から読み込み: /usr/src/px4_drv/driver/ptx_chrdev.c:9:
/usr/src/px4_drv/driver/ptx_chrdev.c: 関数 ‘ptx_chrdev_context_create’ 内:
./include/linux/export.h:17:22: エラー: 互換性のないポインタ型から 1 番目の ‘class_create’ の引数に渡しています [-Werror=incompatible-pointer-types]
17 | #define THIS_MODULE (&__this_module)
| ~^~~~~~~~~~~~~~~
| |
| struct module *
/usr/src/px4_drv/driver/ptx_chrdev.c:573:35: 備考: in expansion of macro ‘THIS_MODULE’
573 | ctx->class = class_create(THIS_MODULE, name);
| ^~~~~~~~~~~
次のファイルから読み込み: ./include/linux/device.h:31,
次から読み込み: ./include/linux/cdev.h:8,
次から読み込み: /usr/src/px4_drv/driver/ptx_chrdev.h:16,
次から読み込み: /usr/src/px4_drv/driver/ptx_chrdev.c:9:
./include/linux/device/class.h:230:54: 備考: expected ‘const char *’ but argument is of type ‘struct module *’
230 | struct class * __must_check class_create(const char *name);
| ~~~~~~~~~~~~^~~~
/usr/src/px4_drv/driver/ptx_chrdev.c:573:22: エラー: 関数 ‘class_create’ への引数が多すぎます
573 | ctx->class = class_create(THIS_MODULE, name);
| ^~~~~~~~~~~~
次のファイルから読み込み: ./include/linux/device.h:31,
次から読み込み: ./include/linux/cdev.h:8,
次から読み込み: /usr/src/px4_drv/driver/ptx_chrdev.h:16,
次から読み込み: /usr/src/px4_drv/driver/ptx_chrdev.c:9:
./include/linux/device/class.h:230:29: 備考: ここで宣言されています
230 | struct class * __must_check class_create(const char *name);
| ^~~~~~~~~~~~
cc1: いくつかの警告はエラーとして取り扱われます
make[2]: *** [scripts/Makefile.build:299: /usr/src/px4_drv/driver/ptx_chrdev.o] エラー 1
make[1]: *** [Makefile:1934: /usr/src/px4_drv/driver] エラー 2
make[1]: ディレクトリ '/usr/src/kernels/5.14.0-427.16.1.el9_4.x86_64' から出ます
make: *** [Makefile:19: px4_drv.ko] エラー 2
[[root@rocky9 driver]#
尚、もう一台 Rocky Linux 8 で録画サーバーを稼働させていますが、こちらは問題ありません。
[root@rocky8 ~]# cat /etc/rocky-release
Rocky Linux release 8.9 (Green Obsidian)
[root@rocky8 ~]# uname -a
Linux rocky8 4.18.0-513.24.1.el8_9.x86_64 #1 SMP Thu Apr 4 18:13:02 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
この問題を解決するにはどうすれば良いでしょうか?
Metadata
Metadata
Assignees
Labels
No labels