เปลี่ยนความสว่างเมื่อเริ่มต้น


8

Lenovo T440 ของฉันเริ่มต้นพร้อมความสว่างสูงสุด ติดตามกระทู้นี้ฉันพยายามแก้ไขrc.localแต่ไม่ได้ผล

เมื่อฉันรันคำสั่งฉันได้รับการส่งออกcat /sys/class/backlight/acpi_video0/brightness 851จากนั้นฉันลดความสว่างลงโดยใช้ปุ่มลัดและดำเนินการคำสั่งอีกครั้ง - มันยังคงแสดง851อยู่

rc.localนำไปสู่การนี้ฉันเชื่อว่าฉันไม่สามารถควบคุมความสว่างของฉันในลักษณะนี้โดยเพิ่มคำสั่งไปยัง

มีอะไรอีกบ้างที่ฉันลองได้บ้าง


นี่คือเนื้อหาด้วง

# 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

คำตอบ:


6

คุณได้ลองใช้ซอฟต์แวร์เพื่อหลีกเลี่ยงการจัดการกับระบบไฟล์ sys ด้วยตนเองหรือไม่? ฉันแนะนำให้ใช้ xbacklight

xbacklight -set 10

คำสั่งนี้จะตั้งค่าความสว่างของหน้าจอเป็น 10% คุณสามารถเพิ่มมันเข้าไปใน rc.local ของคุณ

แก้ไข : หากขั้นตอนข้างต้นไม่ทำงานอาจมีปัญหาบางอย่างระหว่างเคอร์เนลและ bios acpi แก้ไขไฟล์:/boot/grub/menu.lst

เพิ่มพารามิเตอร์ต่อไปนี้เข้ากับการกำหนดค่าเริ่มต้น: thinkpad-acpi.brightness_enable=1 acpi_backlight=vendor

บรรทัดเริ่มต้น shoud มีลักษณะดังนี้:

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

บันทึกไฟล์ที่แก้ไขแล้วรัน:

sudo update-grub

รีบูตและตรวจสอบว่า xbacklight ทำงานหรือไม่


ฉันลองคำสั่งนั้นในเทอร์มินัลและไม่ได้เปลี่ยนแบ็คไลท์เลย (ลองหลายค่า 10, 40, ... ) ฉันยังเพิ่มเข้าไปrc.localด้วย แต่ไม่ได้เปลี่ยนแปลงอะไรเมื่อรีบูต
BillyJean

ดูเหมือนว่ามีบางสิ่งที่ "ปิดกั้น" ฉันจากการเปลี่ยนผ่านคำสั่ง
BillyJean

แก้ไขคำตอบตรวจสอบว่านี่ช่วยแก้ปัญหาของคุณได้หรือไม่
Swordfish90

ฉันไม่ได้มีไฟล์ชื่อmenu.lstใน/boot/grub
BillyJean

1
ขออภัยสำหรับการตอบกลับล่าช้า ... อย่างไรก็ตามด้วยเหตุผลบางอย่างฉันคิดว่าคุณกำลังใช้ Ubuntu รุ่น LST ในเวอร์ชันล่าสุดที่ไฟล์ถูกย้าย (เนื่องจากผ่านไปยัง GRUB2) เป็น "/ etc / default / grub" ... คุณสามารถลบไฟล์ที่คุณสร้างไว้ได้อย่างปลอดภัย ระบบจะไม่สนใจมัน
Swordfish90

1

หากคุณใช้ Gnome 3 หรือ Unity -

ชำระเงินสาขาหลักจากhttps://github.com/ishanthilina/setBrightness

หากคุณใช้ Gnome 2 -

ชำระเงินสาขา Gnome2 จากhttps://github.com/ishanthilina/setBrightness

นี่คือสคริปต์หลามแก้ปัญหาของคุณ

คำสั่งที่ให้ไว้ในแอปพลิเคชันเริ่มต้นคือ“ python ////setBrightness.py <ระดับความสว่าง>”

/home/ishan/.setBrightness/setBrightness.py 20ตัวอย่างจะเป็นงูหลาม หากคุณไม่ได้ระบุระดับความสว่างสคริปต์จะเปลี่ยนระดับความสว่างตามเวลาของวัน หากอยู่ระหว่าง 7.00 น. ถึง 20.00 น. สคริปต์จะทำให้ความสว่างถูกตั้งไว้ที่ 75

หากอยู่ระหว่าง 20.00 น. - 19.00 น. สคริปต์จะทำให้ความสว่างถูกตั้งไว้ที่ 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

1
@BillyJean แล้วคุณต้องใช้อันrc.localนั้น คุณสามารถทำตามคำตอบที่เชื่อมโยงของฉันสำหรับคำแนะนำกับกระบวนการทั้งหมด ฉันไม่ทราบวิธีการแสดงความคิดเห็นกราฟิกสำหรับการเปลี่ยนแปลงความสว่างที่สามารถบั๊ก คุณสามารถechoอนุญาตให้ค่ากับไฟล์หลอกนี้และดูว่าการเปลี่ยนแปลงความสว่าง (แค่ไม่สะท้อนค่าสูงสุดหรือต่ำกว่า 0 แต่ถึงแม้ว่าคุณจะทำเช่นนั้นฉันคิดว่ามันจะไม่ทำให้เกิดปัญหาใด ๆ ) นี่คือ เขียนด้วยคำตอบอื่น ๆ ของฉัน
falconer

เพิ่งลองเพิ่มecho 3 > /sys/class/backlight/thinkpad_screen/brightnessในrc.local-file ของฉันแต่ไม่มีอะไรเปลี่ยนแปลงเมื่อรีบูต ... เมื่อฉันรันsudo bash -c "echo 3 > /sys/class/backlight/thinkpad_screen/brightness"ไม่มีอะไรเกิดขึ้นเลย อาจจะมีการเชื่อมต่อระหว่างการสำรวจทั้งสองนี้?
BillyJean

@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

1
@BillyJean แปลก
falconer

0

เห็นได้ชัดว่านี่เป็นปัญหาความเข้ากันได้ของเคอร์เนลกับฮาร์ดไดรฟ์บางตัวและฉันต้องการให้คุณลองใช้วิธีแก้ปัญหานี้:

  1. สำรองและเปิดไฟล์ด้วง เปิดเทอร์มินัล ( 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. บันทึกและปิดหน้าต่างและอัพเดตด้วงของคุณ:

    sudo update-grub
    
  4. รีสตาร์ทระบบของคุณ:

    sudo reboot
    

หากขั้นตอนข้างต้นไม่ทำงานให้ทำซ้ำขั้นตอนเดียวกัน แต่ครั้งนี้ลองเปลี่ยนบรรทัดในขั้นตอนที่ 2ด้วยวิธีนี้:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force"

ตอบถ้ามีอะไรผิดพลาด หากไม่ได้ผลโปรดแก้ไขคำถามของคุณและวางเนื้อหาด้วงของคุณไว้:cat /etc/default/grub


ขอบคุณมันใช้งานไม่ได้ วางเนื้อหาด้วงไฟล์ใน OP
BillyJean

@BillyJean: ฉันไม่เห็นความแตกต่าง ไฟล์ด้วงของคุณคือสิ่งที่คาดหวัง คุณลองตัวเลือกที่สอง i, e แทนที่บรรทัดด้วยGRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force"หรือไม่? เพียงเพื่อยืนยัน .. ฉันต้องการให้คุณรันคำสั่งนี้หลังจากsudo update-grubคำสั่ง: sudo update-initramfs -uและรีสตาร์ทระบบของคุณ ตอบกลับสิ่งที่เกิดขึ้น ..
Saurav Kumar

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force"ใช่ฉันยังพยายาม ยังลองวิ่งsudo update-initramfs -uตามsudo update-grubแต่ก็ยังไม่มีอะไรหลังจากรีบูต
BillyJean

1
@BillyJean: ฉันหวังว่าจะมีคนคิดออกและแก้ปัญหาของคุณ ในเวลาว่างคุณสามารถไปที่ลิงค์นี้ หวังว่ามันจะใช้ได้ผลสำหรับคุณ ..
Saurav Kumar

0

จากนั้นฉันลดความสว่างด้วยตนเองผ่านปุ่มลัดและดำเนินการคำสั่งอีกครั้ง ...

ในขณะที่คุณสามารถลดความสว่างโดยใช้ 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:<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
สำหรับ exapmle
xrandr --output LVDS1 --brightness 0.9
คุณสามารถค้นหาจอแสดงผลที่เชื่อมต่อโดยใช้xrandr | grep connected


ลองใช้คำสั่งแรกมันทำให้ฉันmethod return sender=:1.7 -> dest=:1.137 reply_serial=2 uint32 100ไม่มีอะไรเกิดขึ้นอีกเลย
BillyJean

ผลลัพธ์ที่คาดหวังmethod return sender=:1.6 -> dest=:1.111 reply_serial=2 uint32 30
totti

แต่ความสว่างไม่เปลี่ยนแปลงมันให้ผลลัพธ์แค่นั้น
BillyJean

ข้อเสนอแนะสุดท้ายของคุณเกี่ยวกับxrandrผลงาน ตัวอย่างเช่นการใช้ 0.6 จะลดมันลงและ 1.0 จะขยายให้ใหญ่สุด แต่ถ้าฉันใช้ 0.5 แล้วอยากเปลี่ยนให้มากที่สุดด้วยปุ่มลัดมันจะหยุดที่แคลิฟอร์เนีย 0.8 ดังนั้นยังคงมีปัญหาพื้นฐาน แต่อย่างน้อยตอนนี้บางสิ่งบางอย่างทำงานได้ดี
BillyJean

ฉันควรเพิ่มคำสั่งให้ดำเนินการอย่างไรเมื่อเริ่มต้น? ฉันลองด้วย/etc/rc.localแต่ก็ไม่เปลี่ยนความสว่างเมื่อเริ่มต้น
BillyJean

0

ฉันมีปัญหาที่คล้ายกันใน t430 ของฉันหลังจากฉันอัพเกรดจาก OpenSuse 12.3 (เคอร์เนล 3.7) เป็น 13.1 (3.11 เคอร์เนล) จอแสดงผลมีความสว่างสูงสุดในการบู๊ตอยู่เสมอ แต่สิ่งที่ฉันกังวลยิ่งกว่าคือปุ่มฟังก์ชั่นความสว่างนั้น (ปกติ) ไม่ทำงาน Xbacklight จะทำงานเป็นปกติ แต่ไม่เสมอไป ถ้าฉันจะเปลี่ยนความสว่างเป็น 80 โดยใช้ xbacklight นั่นจะใช้ได้ หากฉันเปลี่ยนเป็น 70 จะไม่มีอะไรเกิดขึ้นจนกว่าฉันจะกดแป้นฟังก์ชันลดความสว่าง จากนั้นจะลดลงเหลือประมาณ 70% มันแปลกจริง ๆ

ด้วยเหตุผลที่ไม่เกี่ยวข้องฉันเปลี่ยนเป็นมิ้นต์ 16 อบเชยก่อนที่จะพบวิธีแก้ปัญหา ปุ่มฟังก์ชั่นทำงานได้ดีในตอนนี้ดังนั้นฉันจึงไม่ได้มองไปไกลกว่านี้ (ฉันไม่แนะนำให้เปลี่ยน distros เป็นวิธีแก้ปัญหา BTW!) ก่อนที่ฉันจะเปลี่ยนนี่คือสิ่งที่ฉันเรียนรู้:

ฉันอ่าน (บางที่) ว่าเมล็ดข้าว + 3.8 ที่อยู่แนวโน้มของฮาร์ดแวร์ที่เกี่ยวข้องกับ Windows 8: Win8 ต้องใช้ฮาร์ดแวร์เพื่อรายงานกลับ 101 ระดับความสว่าง; t430 รองรับ 16 เท่านั้นฉันเดาว่าเคอร์เนลคือ "ถาม" ฮาร์ดแวร์ที่ "คิดว่า" ใน 1 / 16th สำหรับการเปลี่ยนความสว่างที่ 1/101! (โปรดอย่าอ้างฉันในสิ่งนี้)

แทนที่จะใช้acpi_backlight=vendorใน / etc / default / grub คุณสามารถลองacpi_backlight="!Windows 2012"- เช่นบอกว่า "ฉันไม่ได้ใช้ Windows 8!" กลุ่ม OpenSuse บางคนประสบความสำเร็จในเรื่องนี้แม้ว่าจะไม่มีใครใช้ Thinkpads ลองยิงดู


@BillyJean - Aah - คุณอาจต้องหลีกเลี่ยงเครื่องหมายคำพูดรอบ "! Windows2012" หรือใช้เครื่องหมายคำพูดเดี่ยวแทน (ฉันไม่ใช่คน / s!) GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=\"!Windows2012\""
Shane Steinfeld

ขอบคุณสำหรับคำแนะนำ ฉันลองใช้ตัวเลือกทั้งสอง (พร้อม / ไม่ใส่เครื่องหมายอัญประกาศ) แต่ก็ไม่ได้ผล ควรไปกับ Mac ... :)
BillyJean
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.