使用 ddcutil 控制显示器硬件亮度(推荐)

ddcutil 可以直接通过 DDC/CI 协议控制显示器硬件亮度(需要显示器支持)。

安装 ddcutil

sudo apt update
sudo apt install ddcutil

检查显示器是否支持 DDC/CI

sudo ddcutil detect

如果出现以下信息(我这里的HKC显示器的DDC/CI(VCP 2.1))说明支持 DDC/CI,可以继续。

Invalid display
  I2C bus:             /dev/i2c-30
    EDID synopsis:
       Mfg id:               B0E
       Model:              
       Serial number:      
       Manufacture year:   2021
       EDID version:       1.4
    DDC communication failed
    This is an eDP laptop display. Laptop displays do not support DDC/CI.

Display 1
  I2C bus:             /dev/i2c-31
    EDID synopsis:
       Mfg id:               HKC
       Model:                X410
       Serial number:        0000000000000
       Manufacture year:   2024
       EDID version:       1.4
    VCP version:         2.1

确保用户有权限访问 I2C 设备

sudo usermod -a -G i2c $USER  # 将当前用户加入 i2c 用户组
newgrp i2c                    # 立即生效(无需重启)

调节亮度(无需 sudo)

ddcutil setvcp 10 70  # 将亮度设为 70%(范围 0-100)

常用命令

ddcutil getvcp 10      # 查看当前亮度值
ddcutil setvcp 10 50   # 设为 50% 亮度

说明

  • VCP 代码 10:代表显示器的亮度控制
  • 范围:通常是 0-100,具体取决于显示器
  • 优势:直接控制硬件亮度,效果最好,不影响色彩
  • 限制:需要显示器支持 DDC/CI 协议(大多数现代显示器都支持)

故障排除

如果 ddcutil detect 没有检测到显示器

  1. 确保显示器通过 HDMI/DisplayPort 连接(VGA 不支持 DDC/CI)
  2. 在显示器 OSD 菜单中启用 DDC/CI 功能
  3. 尝试重新加载 i2c 模块:
    sudo modprobe i2c-dev
    

如果提示权限错误

确保已将用户添加到 i2c 组,并重新登录或执行 newgrp i2c

参考资料

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐