无法在 Fedora 37 上安装和使用 acpi_call

无法在 Fedora 37 上安装和使用 acpi_call

Fedora 37 工作站 6.0.7-301.fc37.x86_64

acpi_call这里,并rpm -qa | grep acpi_call返回acpi_call-1.1.0-1.noarch,因此已安装。

rpm -ql acpi_call返回 处的 acpi_call 文件列表/usr/src/,并且它们存在

/var/libs/dkms/也有acpi_call文件夹

然而/proc/acpi/call 不存在lsmod | grep -q acpi_call返回没有什么

尝试卸载 acpi_callsudo dnf remove acpi_call得到了:

Error! The module/version combo: %{module}-1.1.0 is not located in the DKMS tree.
error: %preun(acpi_call-1.1.0-1.noarch) scriptlet failed, exit status 3
error: acpi_call-1.1.0-1.noarch: erase failed
Error! The module/version combo: %{module}-1.1.0 is not located in the DKMS tree.
error: %preun(acpi_call-1.1.0-1.noarch) scriptlet failed, exit status 3
error: acpi_call-1.1.0-1.noarch: erase failed

相同rpm -e

 ❯ rpm -qa | grep acpi_call                                                                                !1622 zluka
acpi_call-1.1.0-1.noarch
acpi_call-1.1.0-1.noarch

 ❯ sudo rpm -e --allmatches acpi_call                                                                      !1623 zluka
Error! The module/version combo: %{module}-1.1.0 is not located in the DKMS tree.
error: %preun(acpi_call-1.1.0-1.noarch) scriptlet failed, exit status 3
error: acpi_call-1.1.0-1.noarch: erase failed
Error! The module/version combo: %{module}-1.1.0 is not located in the DKMS tree.
error: %preun(acpi_call-1.1.0-1.noarch) scriptlet failed, exit status 3
error: acpi_call-1.1.0-1.noarch: erase failed

但是,我没有收到错误sudo dnf --setopt=tsflags=noscripts remove acpi_call(但/var/lib/dkms/acpi_call/其后的文件夹仍然存在,因此我手动将其删除)并且它之后rpm -qa | grep acpi_call没有返回任何内容。

但是之后安装 acpi_call我又有这个了:

Creating symlink /var/lib/dkms/acpi_call/1.1.0/source -> /usr/src/acpi_call-1.1.0
Sign command: /lib/modules/6.0.7-301.fc37.x86_64/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Certificate or key are missing, generating self signed certificate for MOK...
Key file /var/lib/dkms/mok.key not found and can't be generated, modules won't be signed

Building module:
Cleaning build area...
make -j16 KERNELRELEASE=6.0.7-301.fc37.x86_64 -C /lib/modules/6.0.7-301.fc37.x86_64/build M=/var/lib/dkms/acpi_call/1.1.0/build...(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.0.7-301.fc37.x86_64 (x86_64)
Consult /var/lib/dkms/acpi_call/1.1.0/build/make.log for more information.
Sign command: /lib/modules/6.0.7-301.fc37.x86_64/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Certificate or key are missing, generating self signed certificate for MOK...
Key file /var/lib/dkms/mok.key not found and can't be generated, modules won't be signed

Building module:
Cleaning build area...
make -j16 KERNELRELEASE=6.0.7-301.fc37.x86_64 -C /lib/modules/6.0.7-301.fc37.x86_64/build M=/var/lib/dkms/acpi_call/1.1.0/build...(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.0.7-301.fc37.x86_64 (x86_64)
Consult /var/lib/dkms/acpi_call/1.1.0/build/make.log for more information.
warning: %post(acpi_call-1.1.0-1.noarch) scriptlet failed, exit status 10

/var/lib/dkms/acpi_call/1.1.0/build/make.log

DKMS make.log for acpi_call-1.1.0 for kernel 6.0.7-301.fc37.x86_64 (x86_64)
Thu Feb  9 03:37:07 PM EET 2023
make: Entering directory '/usr/src/kernels/6.0.7-301.fc37.x86_64'
  CC [M]  /var/lib/dkms/acpi_call/1.1.0/build/acpi_call.o
/var/lib/dkms/acpi_call/1.1.0/build/acpi_call.c: In function ‘init_acpi_call’:
/var/lib/dkms/acpi_call/1.1.0/build/acpi_call.c:355:53: error: passing argument 4 of ‘proc_create’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  355 |                                                     &proc_acpi_operations);
      |                                                     ^~~~~~~~~~~~~~~~~~~~~
      |                                                     |
      |                                                     struct file_operations *
In file included from /var/lib/dkms/acpi_call/1.1.0/build/acpi_call.c:6:
./include/linux/proc_fs.h:110:122: note: expected ‘const struct proc_ops *’ but argument is of type ‘struct file_operations *’
  110 | struct proc_dir_entry *proc_create(const char *name, umode_t mode, struct proc_dir_entry *parent, const struct proc_ops *proc_ops);
      |                                                                                                   ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
cc1: some warnings being treated as errors
make[1]: *** [scripts/Makefile.build:249: /var/lib/dkms/acpi_call/1.1.0/build/acpi_call.o] Error 1
make: *** [Makefile:1856: /var/lib/dkms/acpi_call/1.1.0/build] Error 2
make: Leaving directory '/usr/src/kernels/6.0.7-301.fc37.x86_64'

答案1

您将无法在 5.6+ 内核上使用 acpi_call-1.1.0。请使用 5.6 之后的版本此补丁. 理想情况下 1.2.2

相关内容