启动时改变亮度
我的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系统中可能还有其他亮度控制伪文件。 请参阅我的答案,我在下面总结:
-
跑
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
-
现在像往常一样降低或增加亮度级别,然后再次运行:
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
-
调整亮度后更改上述输出中输出数字的文件是控制亮度的文件,因此您必须使用该文件。
这显然是一些硬件的内核兼容性问题 ,我只是想让你试试这个解决方法:
-
备份和打开grub文件。 打开终端( Ctrl + Alt + T )并键入:
sudo cp /etc/default/grub /etc/default/grub.bak sudo gedit /etc/default/grub
-
您将在新打开的窗口中找到此行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
将其更改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor"
-
保存并关闭窗口并更新您的grub:
sudo update-grub
-
重启系统:
sudo reboot
如果上面的过程不起作用,那么重复相同的步骤,但这次尝试用这个改变第2步中的行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force"
如果出现问题,请回复。 如果它不起作用,请编辑您的问题并粘贴您的grub文件内容: cat /etc/default/grub
然后我通过热键手动降低亮度并再次执行命令……
由于您可以使用Hokeys降低亮度,因此以下dbus
或xdotool
方法应该可以正常工作
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。 试一试。