You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

华为MateBook 13在Ubuntu 23.04下无法修改charge_control_end_threshold的权限问题求助

华为MateBook 13在Ubuntu 23.04下无法修改charge_control_end_threshold的权限问题求助

看起来你遇到的这个权限问题确实挺让人头疼的,毕竟之前Ubuntu 22.04和Windows都能正常设置充电阈值,换到23.04就卡壳了。我来给你几个可能的排查和解决方向:

  • 修正Shell命令的语法问题
    你之前执行的命令存在一个常见的shell语法坑:bash -c echo 25 > /sys/class/power_supply/BAT0/charge_control_end_threshold 里的重定向操作> ...是在当前普通用户的Shell环境下执行的,而不是root权限,所以才会提示权限拒绝。正确的写法应该把整个命令用单引号包裹,让root环境处理重定向:

    sudo bash -c 'echo 25 > /sys/class/power_supply/BAT0/charge_control_end_threshold'
    

    或者更简洁地用tee命令绕过Shell重定向的问题:

    echo 25 | sudo tee /sys/class/power_supply/BAT0/charge_control_end_threshold
    
  • 检查内核模块与sysfs支持情况
    Ubuntu 23.04的内核版本比22.04更高,可能华为笔记本的电源管理模块兼容性有变化:

    1. 先查看是否加载了华为相关的电源模块:
      lsmod | grep -E 'huawei|battery'
      
      如果没找到huawei-wmihuawei-laptop这类模块,可以尝试手动加载:
      sudo modprobe huawei-wmi
      
    2. 确认内核是否支持充电阈值调节:查看是否存在阈值上限文件
      cat /sys/class/power_supply/BAT0/charge_control_end_threshold_max
      
      如果这个文件不存在,说明当前内核可能没有开启该功能,你可能需要升级内核或者检查是否有对应的补丁。
  • 排查TLP配置未生效的问题
    TLP没起作用大概率是配置没正确设置,按以下步骤检查:

    1. 确认TLP服务是否在运行:
      sudo systemctl status tlp
      
      如果未运行,先启动并设置开机自启:
      sudo systemctl start tlp && sudo systemctl enable tlp
      
    2. 编辑TLP配置文件,修改电池阈值:
      sudo nano /etc/tlp.conf
      
      找到以下两行,取消注释并设置你需要的阈值(比如停止充电阈值设为25,开始充电阈值设为20):
      START_CHARGE_THRESH_BAT0=20
      STOP_CHARGE_THRESH_BAT0=25
      
      保存退出后,重启TLP服务让配置生效:
      sudo systemctl restart tlp
      
    3. 验证配置是否生效:
      tlp-stat -b
      
      在输出里查看Charge Thresholds部分的数值是否和你设置的一致。
  • 检查是否有其他电源管理工具冲突
    系统里的其他电源管理工具(比如GNOME电源管理器、第三方电池工具)可能会锁定sysfs的电池配置文件,导致无法手动写入。你可以暂时关闭这些工具,或者查看内核日志里的相关报错:

    dmesg | grep -i battery
    

    看看有没有关于电池阈值设置失败的日志信息,帮助定位问题。

备注:内容来源于stack exchange,提问作者user1695193

火山引擎 最新活动