启动时改变亮度

我的Lenovo T440s以最大亮度启动。 在这个post之后我试图改变rc.local ,但这不起作用。

当我执行命令cat /sys/class/backlight/acpi_video0/brightness我得到输出851 。 然后我通过热键手动降低亮度并再次执行命令 – 它显示851

这让我相信通过简单地向rc.local添加命令,我无法以这种方式控制亮度。

还有什么我可以尝试的吗?


这是grub的内容

 # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT="0" GRUB_HIDDEN_TIMEOUT="0" GRUB_HIDDEN_TIMEOUT_QUIET="true" GRUB_TIMEOUT="2" GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`" #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor" GRUB_CMDLINE_LINUX="" # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL="console" # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE="640x480" # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID="true" # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1" GRUB_DISABLE_OS_PROBER="true" 

这是rc.local内容

 #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. #echo 2 > /sys/class/backlight/acpi_video0/brightness #echo 2 > /sys/class/backlight/intel_backlight/brightness #xrandr --output eDP1 --brightness 0.3 rfkill block bluetooth #echo 3 > /sys/class/backlight/thinkpad_screen/brightness exit 0 

您是否尝试过使用某些软件来避免手动处理sys文件系统? 我建议使用xbacklight。

 xbacklight -set 10 

此命令将屏幕亮度设置为10%。 您可以将它添加到您的rc.local。

编辑 :如果上述过程不起作用,则内核和bios acpi之间可能存在一些问题。 编辑文件: /boot/grub/menu.lst

将以下参数添加到默认配置: thinkpad-acpi.brightness_enable=1 acpi_backlight=vendor

默认行看起来像这样:

 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash thinkpad-acpi.brightness_enable=1 acpi_backlight=vendor" 

保存修改后的文件并运行:

 sudo update-grub 

重新启动并检查xbacklight是否正常工作

如果您使用的是Gnome 3或Unity –

从https://github.com/ishanthilina/setBrightness查看主分支。

如果您正在使用Gnome 2 –

从https://github.com/ishanthilina/setBrightness查看Gnome2分支。

这是一个python脚本解决你的问题。

在启动应用程序中给出的命令是“python ////setBrightness.py <亮度级别>”。

一个例子是python /home/ishan/.setBrightness/setBrightness.py 20 。 如果未指定亮度级别,脚本将根据一天中的时间更改亮度级别。 如果是在早上7点到晚上8点之间,脚本会将亮度设置为75。

如果是在晚上8点到早上7点之间,脚本将亮度设置为20.您可以通过分别更改变量day_level和night_level来编辑这些亮度级别。

资源

从你的问题的措辞我想你只尝试用/sys/class/backlight/acpi_video0/brightness brightness控制/sys/class/backlight/acpi_video0/brightness ,但/sys/ file系统中可能还有其他亮度控制伪文件。 请参阅我的答案,我在下面总结:

  1.  tail /sys/class/backlight/*/brightness 

    会输出类似的东西

     ==> /sys/class/backlight/acpi_video0/brightness <== 7 ==> /sys/class/backlight/radeon_bl/brightness <== 255 ==> /sys/class/backlight/toshiba/brightness <== -5 
  2. 现在像往常一样降低或增加亮度级别,然后再次运行: tail /sys/class/backlight/*/brightness ,将输出新值,例如:

     ==> /sys/class/backlight/acpi_video0/brightness <== 6 ==> /sys/class/backlight/radeon_bl/brightness <== 255 ==> /sys/class/backlight/toshiba/brightness <== -5 
  3. 调整亮度后更改上述输出中输出数字的文件是控制亮度的文件,因此您必须使用该文件。

这显然是一些硬件内核兼容性问题 ,我只是想让你试试这个解决方法:

  1. 备份和打开grub文件。 打开终端( Ctrl + Alt + T )并键入:

     sudo cp /etc/default/grub /etc/default/grub.bak sudo gedit /etc/default/grub 
  2. 您将在新打开的窗口中找到此行: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

    将其更改为:

     GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor" 
  3. 保存并关闭窗口并更新您的grub:

     sudo update-grub 
  4. 重启系统:

     sudo reboot 

如果上面的过程不起作用,那么重复相同的步骤,但这次尝试用这个改变第2步中的行:

 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force" 

如果出现问题,请回复。 如果它不起作用,请编辑您的问题并粘贴您的grub文件内容: cat /etc/default/grub

然后我通过热键手动降低亮度并再次执行命令……

由于您可以使用Hokeys降低亮度,因此以下dbusxdotool方法应该可以正常工作

xbacklight

 $ xbacklight +30% # increases brightness by 30 percent $ xbacklight -30% # decreases brightness by 30 percent 

dbus方式

 $ dbus-send --session --print-reply \ --dest="org.gnome.SettingsDaemon" \ /org/gnome/SettingsDaemon/Power \ org.gnome.SettingsDaemon.Power.Screen.SetPercentage \ uint32: 

将亮度设置为30%:

 $ dbus-send --session --print-reply \ --dest="org.gnome.SettingsDaemon" \ /org/gnome/SettingsDaemon/Power \ org.gnome.SettingsDaemon.Power.Screen.SetPercentage \ uint32:30 

要么
通过一步(~7)降低亮度

 $ dbus-send --session --print-reply \ --dest="org.gnome.SettingsDaemon" \ /org/gnome/SettingsDaemon/Power \ org.gnome.SettingsDaemon.Power.Screen.StepDown 

通过一步(~7)增加亮度

 $ dbus-send --session --print-reply \ --dest="org.gnome.SettingsDaemon" \ /org/gnome/SettingsDaemon/Power \ org.gnome.SettingsDaemon.Power.Screen.StepUp 

如果它如下所示,您的操作系统可能太旧了。 然后使用xdotool

 Error org.freedesktop.DBus.Error.UnknownMethod: Method "SetPercentage" with signature "u" on interface "org.gnome.SettingsDaemon.Power.Screen" doesn't exist 

xdotool

  • 增加亮度:

     $ xdotool key XF86MonBrightnessUp 
  • 降低亮度:

     $ xdotool key XF86MonBrightnessDown 

成功测试上述方法的ant后,您可以将其添加到/etc/rc.local

软件方式
如果您无法使用以下任何一种方法来调整硬件后盖亮度,请调整显示器的软件亮度。
xrandr --output OUTPUT --brightness VALUE
为了exapmle
xrandr --output LVDS1 --brightness 0.9
您可以使用xrandr | grep connected找到连接的显示器 xrandr | grep connected

从OpenSuse 12.3(3.7内核)升级到13.1(3.11内核)之后,我的t430上出现了类似的问题。 显示器在启动时始终处于最大亮度,但我更关心的是亮度function键(通常)不起作用。 Xbacklight会(通常)工作,但并非总是如此。 如果我使用xbacklight将亮度更改为80,那就行了。 如果我将其更改为70,则在按下reduce-brightnessfunction键之前不会发生任何事情。 然后它会下降到(约?)70%。 这真的很奇怪。

出于无关的原因,我在找到解决方案之前切换到Mint 16 Cinnamon。 function键现在正常工作,所以我没有进一步研究。 (我不是建议将发行版转换为解决方案,BTW!)在我切换之前,这是我学到的东西:

我读到(某处?)3.8 +内核解决了与Windows 8相关的硬件趋势:Win8要求硬件报告101个亮度级别; t430只支持16.我猜测内核正在“询问”硬件“1/16”的“思考”亮度变化为1/101! (请不要引用我这个。)

您可以尝试使用acpi_backlight="!Windows 2012" – 而不是在/ etc / default / grub中使用acpi_backlight=vendor ,即告诉它“我没有使用Windows 8!” 一些OpenSuse人员在这方面取得了成功,尽管他们都没有使用Thinkpad。 试一试。