笔记本插拔电源不能更新状态的临时解决办法
Tofloor
poster avatar
russrao
deepin
2019-05-31 04:03
Author
个人做了些研究,应该问题出在acpi 上,运行 acpi_listen,插拔电源没有监听到socket事件。查了些资料,应该和Bios有关,应该暂时无解。临时解决方案是,写个cron脚本,用tlp-stat -s 命令看电源状态,如果Mode 和 Power source值不一致,一个是AC,一个是 battery,说明电源线插拔过。然后运行 tlp start && systemctl restart upower.service命令,电源状态更新完成,dock图标也更新了。有资料说可以通过 udev rules 解决,没来得及试
Reply Favorite View the author
All Replies
avatar
russrao
deepin
2019-06-01 05:36
#1
#!/bin/bash
#check existing power status, whether cable is unplugged

while true;do
   p1=`tlp-stat -s | tail -n 3 |awk  -F '='  '{print $2}'`
   mode=`echo $p1 | awk -F ' ' '{print $1}'`
   pwr=`echo $p1 | awk -F ' ' '{print $2}'`   

   if [ $mode != $pwr ]

   then
    sudo tlp start > /dev/null
    sudo systemctl restart upower.service
   fi
sleep 2
done
Reply View the author
avatar
russrao
deepin
2019-06-04 05:11
#2
继续做了一些研究,udev rules 的方法也不行 https://bugzilla.kernel.org/show_bug.cgi?id=109891 根据这个帖子,这个是一个 BIOS 问题,要修改 DSDT 才行
Reply View the author