为内核 3.16 编译 i8ukutils 1.42

为内核 3.16 编译 i8ukutils 1.42

我正在尝试在装有 Linux 3.16 (amd64) 的 Debian 上运行 i8k,

我有来自存储库(1.41)的 deb,并且服务正在启动,i8kmon 显示正确的统计信息,但风扇控制不起作用,我认为问题是系统中没有 smm。 ./smm-test 脚本抛出“没有 smm 程序”。

我知道最后的 i8kutils 1.43 不包括 smm,因为内核 4.* 的最近更改,但 1.41(来自 repo)和 1.42 应该适合我的 3.16 内核。那么为什么repo包中没有smm文件呢?

我下载了 1.42 存档并运行“make”,但它编译了我:{18kmon,i8kctl,i8kfan),并且对 smm 没有执行任何操作。

我尝试单独编译 smm.c 文件 'gcc smm.c -o smm' 但它显示:

htt@woodhost:~/Downloads/i8kutils$ gcc -Wall smm.c -o smm
smm.c: Assembler messages:
smm.c:50: Error: invalid instruction suffix for `push'
smm.c:52: Error: operand type mismatch for `push'
smm.c:58: Error: invalid instruction suffix for `pop'
smm.c:67: Error: invalid instruction suffix for `pop'

当使用 'gcc -g -O2 -Wall -I 运行时。 -o smm -m32 smm.c' 它给出:

htt@woodhost:~/Downloads/i8kutils$ gcc -g -O2 -Wall -I. -o smm -m32 smm.c
In file included from /usr/include/stdio.h:27:0,
                 from smm.c:27:
/usr/include/features.h:364:25: fatal error: sys/cdefs.h: No such file or directory
 #  include <sys/cdefs.h>
                         ^
compilation terminated.

需要什么才能让 smm 工作?

相关内容