我有一台 VAIO 笔记本电脑(VPCS116FG,S 系列)。它的键盘有传感器,可以检测周围的亮度,因此它会自动在飞机客舱等黑暗的地方打开背光。自从我从 Windows 7 转到 Ubuntu 后,背光传感器就完全不工作了。
通过谷歌搜索这个问题,我发现本网站并按照说明进行操作,但在编译步骤中,我遇到了以下错误:
sa/file_funcs.c: In function ‘get_first_backlight_device_name’:
sa/file_funcs.c:44:9: warning: format ‘%li’ expects argument of type ‘long int’, but argument 2 has type ‘unsigned int’ [-Wformat]
/tmp/ccIhKx5v.o: In function `handle_acpi_events':
acpi_funcs.c:(.text+0xf8): undefined reference to `log'
acpi_funcs.c:(.text+0x109): undefined reference to `log'
acpi_funcs.c:(.text+0x120): undefined reference to `pow'
collect2: ld returned 1 exit status
我怎样才能让它工作?
答案1
我最终通过对文件进行轻微的调整成功编译了它compile
:
第 16 行内容如下:
$CC $CFLAGS $LDFLAGS $DEFINES -o $OUTPUT $SRC_DIR/*.c
更改为:
$CC $CFLAGS $DEFINES -o $OUTPUT $SRC_DIR/*.c $LDFLAGS
或者,您可以发出以下两个命令跑步前./compile
:
echo -e "16c16\n< \$CC \$CFLAGS \$LDFLAGS \$DEFINES -o \$OUTPUT \$SRC_DIR/*.c\n---\n> \$CC \$CFLAGS \$DEFINES -o \$OUTPUT \$SRC_DIR/*.c \$LDFLAGS" >compile.patch
patch compile compile.patch
答案2
我在 VAIOVPCS123FG S 系列。在 Google 上搜索了同样的问题,并找到了适合我的机器的解决方案。
在终端中输入以下命令:
echo 1 | sudo tee /sys/devices/platform/sony-laptop/kbd_backlight
谢谢TechArena 社区。
答案3
这些log()
是pow()
数学函数,您需要对compile
文件做一些微小的更改才能使其正常工作。
具体来说,打开compile
文件并替换
CFLAGS="-Wall -W -O2 -march=native -pipe"
和
CFLAGS="-Wall -W -O2 -lm -march=native -pipe"
此更改将启用数学库“libm”,并且程序将顺利编译!