fglrx 和损坏的 atieventsd 守护进程(+可能可以延长 AMD 卡用户的电池寿命)

fglrx 和损坏的 atieventsd 守护进程(+可能可以延长 AMD 卡用户的电池寿命)

我最近一直在研究这些东西,并发现了一些有关fglrxUbuntu 驱动程序的东西,我认为值得在更广泛的问题背景下分享。

该守护进程是在安装AMD 的专有驱动程序(用于 ATI 独立 GPU)atieventsd时安装的守护进程。据我所知,其目的是监控各种事件,例如笔记本电脑盖关闭或交流电连接/断开,大概是为了让 GPU 知道以节省电量。请参阅fglrxacpi手册页了解更多信息。

在我的系统上,Ubuntu 13.10并且使用 Catalyst 的最新驱动程序 13.12,守护进程会自行安装在 ,/etc/alternatives/x86_64-linux-gnu_atieventsd并使用指向 的符号链接/usr/bin/atieventsd

问题1:

Sys-V-init 脚本/etc/init.d/atieventsd认为符号链接在其他地方,即/usr/sbin/atieventsd(即sbin不在实际所在位置,bin

因此,为了atieventsd在启动时成功启动,我必须进行以下更改:

 DAEMONPATH=/usr/bin/atieventsd

同时,添加调试选项也很方便,目前还有第二个附加日志:

DAEMONOPTS="--debug --logfile=/var/log/atieventsd.log"

然后删除/重新生成运行级别:

cd /etc/init.d
mv atieventsd atieventsd.temp
update-rc.d atieventsd remove
mv atieventsd.temp atieventsd
update-rc.d atieventsd defaults

这至少应该可以让守护进程正确启动/停止。你可以用 进行测试service atieventsd start

问题2:

每次启动时,守护进程都会尝试启动一个脚本/etc/ati/authatieventsd.sh(默认情况下),其目的是授予atieventsd daemon对 X 服务器显示的授权访问权限,以便它可以向其发送各种命令。

此脚本被atieventd类似地调用(ps aux | grep atieventsd启动服务或引导后查看)

 /etc/ati/authatieventsd.sh grant :0 /tmp/atieventsdGWt098

这里的第一个参数($1)是动作:授予/撤销 ,第二个参数($2)是 X 显示编号(例如:0),第三个参数($3)是需要权限的文件。请参阅xauth 手册页了解更多背景信息。

问题是,如果你看一下脚本,/etc/ati/authatieventsd.sh你会发现它不支持lightdm,你需要在函数中添加代码块GetServerAuthFile()

#Check lightdm     
 LIGHTDM_AUTH_FILE=/var/run/lightdm/root/$1
 if [ -e $LIGHTDM_AUTH_FILE ]; then
     SERVER_AUTH_FILE=$LIGHTDM_AUTH_FILE
     DISP_SEARCH_STRING="unix$1"
     return 0
 fi

以允许它找到正确的服务器身份验证文件。保存此文件,下次停止/启动(或下次重新启动)时,您应该会在/tmp目录中看到一个文件,格式为atieventsdGWt098atieventd

xauth -f /tmp/atievntX.Dh1AJV list

你应该得到类似

yourHostname/unix:0  MIT-MAGIC-COOKIE-1  98deg034234kkn34234mmm3242

表明守护进程确实已被授予权限。

您还可以查看/var/log/atieventsd.log日志,您应该看到现在一切都正常工作,并且守护进程正在响应诸如拔掉空调和盖子关闭等事件。例如:

<Dbg>: ACPI event: ac_adapter AC 00000080 00000000
<Dbg>: ACPI event: processor CPU0 00000081 00000000
processor CPU1 00000081 00000000
processor CPU2 00000081 00000000
processor CPU3 00000081 00000000

更广泛的问题

atieventsd在现代驱动程序中真的有必要吗?电源管理方式是否有所不同?守护进程是否已成功,并且这个东西损坏并非偶然?它真的是故意损坏的吗?

相关内容