启动时改变亮度


8

我的Lenovo T440s以最大亮度启动。在此线程之后,我尝试更改rc.local,但这不起作用。

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

这使我相信我不能通过简单地向中添加命令来以这种方式控制亮度rc.local

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


这是g的内容

# 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

尝试我的回答者,它将起作用
nux 2014年

Answers:


6

您是否尝试过使用某些软件来避免手动处理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是否正常工作


我在终端中尝试了该命令,但它根本没有改变背光(尝试了许多值,例如10、40,...)。我还在中添加了它rc.local,但重新启动后未进行任何更改。
BillyJean 2014年

似乎某件事正在“阻止”我通过命令进行更改
BillyJean 2014年

编辑了答案,检查是否可以解决您的问题...
Swordfish90 2014年

我没有一个文件名为menu.lst/boot/grub
BillyJean

1
对不起,我的回复很晚...无论如何,由于某些原因,我认为您正在使用LST版本的ubuntu。在该文件的最新版本中(由于GRUB2的原因)已移至“ / etc / default / grub”...。您可以安全地删除已创建的文件。系统将忽略它。
Swordfish90 2014年

1

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

https://github.com/ishanthilina/setBrightness检出master分支。

如果您使用的是Gnome 2-

https://github.com/ishanthilina/setBrightness签出Gnome2分支。

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

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

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

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

资源


1

从问题的措辞来看,我认为您仅尝试使用来控制亮度/sys/class/backlight/acpi_video0/brightness,但是/sys/文件系统中可能还有其他亮度控制伪文件。在这里查看我的答案,下面总结一下:

  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. 调整亮度后,上述输出中输出编号已更改的文件是控制亮度的文件,因此您必须使用该文件。


这很有用!更改的字符串是/sys/class/backlight/thinkpad_screen/brightness。至少显示3,最大显示5。当我通过热键手动更改亮度时,即使物理亮度更改了10个级别,亮度栏长度也仅更改了一次?
BillyJean 2014年

1
@BillyJean然后,您只需在中使用那个rc.local。您可以按照我的链接答案获得有关整个过程的说明。我不知道亮度变化的图形反馈是如何显示的,这可能是错误的。您可以echo允许该伪文件中的值并查看亮度如何变化(只是不要回显大于最大值或小于0的值,但是即使这样做,我认为也不会造成任何问题。),这是也写在我的其他答案中。
falconer 2014年

只是尝试添加echo 3 > /sys/class/backlight/thinkpad_screen/brightness到我的rc.local-file中,但是重新启动后没有任何变化...当我运行sudo bash -c "echo 3 > /sys/class/backlight/thinkpad_screen/brightness"时,也没有任何反应。这两个观察结果之间可能有联系吗?
BillyJean 2014年

@BillyJean奇怪的是它不会改变亮度。假设您将亮度调到最大,那么请cat /sys/class/backlight/thinkpad_screen/brightness报告5 sudo bash -c "echo 3 > /sys/class/backlight/thinkpad_screen/brightness"。没有什么变化?再次运行cat /sys/class/backlight/thinkpad_screen/brightness,它仍然报告5还是更改为3?
falconer 2014年

1
@BillyJean奇怪。
falconer 2014年

0

显然这是某些Hardware内核兼容性问题,我只希望您尝试以下解决方法:

  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


谢谢,它没有用。将我的grub文件内容粘贴到OP中
BillyJean 2014年

@BillyJean:我没什么区别。您的grub文件与预期的一样。您是否尝试过第二种选择,即用替换行GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force"?我只是想确认一下。我还希望您在sudo update-grubcommand:之后执行此命令,sudo update-initramfs -u然后重新启动系统。回复发生的事情..
Saurav Kumar 2014年

是的,我也尝试过GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force"。也尝试在sudo update-initramfs -u之后运行sudo update-grub,但在重新启动后仍然
无效

1
@BillyJean:我希望有人能弄清楚并解决您的问题。在您的业余时间,您可以通过此链接。希望它会为你工作..
Saurav库马尔

0

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

你可以使用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:<percentage>

将亮度设置为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
    

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

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


尝试了第一个命令,它给了我method return sender=:1.7 -> dest=:1.137 reply_serial=2 uint32 100,什么都没发生
BillyJean 2014年

预期的产出method return sender=:1.6 -> dest=:1.111 reply_serial=2 uint32 30
totti 2014年

但是亮度没有改变,它只给了我输出
BillyJean 2014年

您对xrandr作品的最终建议。例如使用0.6降低它,而使用1.0最大化它。但是,如果我使用0.5,然后想通过热键将其调到最大,那么它将在ca停止。0.8。因此,仍然存在一个基本问题,但是至少现在有一些工作可以解决
BillyJean 2014年

我应该在哪里添加要在启动时执行的命令?我尝试过/etc/rc.local,但启动时亮度不会改变
BillyJean 2014年

0

从OpenSuse 12.3(3.7内核)升级到13.1(3.11内核)后,我在t430上遇到了类似的问题。开机时显示屏始终处于最大亮度,但我更大的担心是亮度功能键(通常)不起作用。Xbacklight通常会起作用,但并非总是如此。如果我使用xbacklight将亮度更改为80,那将起作用。如果将其更改为70,则在按下降低亮度功能键之前不会发生任何事情。然后它将下降到(大约?)70%。真的很奇怪。

由于不相关的原因,在找到解决方案之前,我改用Mint 16 Cinnamon。功能键现在可以正常工作,所以我没有进一步研究。(顺便说一句,我不建议切换发行版作为解决方案,顺便说一句!)在我切换之前,这是我学到的:

我读到某处3.8 +内核解决了与Windows 8相关的硬件趋势:Win8要求硬件报告101亮度级别。t430仅支持16。我猜测内核是在“要求”硬件,其“思考” 1/16的亮度更改为1/101!(请不要在此引用我的意思。)

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


@BillyJean-啊-您可能必须转义“!Windows2012”周围的引号或使用单引号。(我不知道!) GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=\"!Windows2012\""
Shane Steinfeld

谢谢你的建议。我尝试了两种选择(带引号/不带引号),但不幸的是没有奏效。应该随Mac一起走... :)
BillyJean 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.