ทำไมการควบคุมความสว่างของ Thinkpad ถึงข้ามขั้นตอน


15

ปัญหาที่เกิดขึ้น: มี 16 ระดับความสว่างบนแล็ปท็อปของฉัน แต่กดองFn+Home, Fn+Endปรับความสว่าง3 ขั้นตอนในเวลา (เช่น 0-3 หรือ 15-12)

ฉันคิดว่ามันสำคัญที่จะต้องแจ้งให้ทราบว่าที่หน้าจอเข้าสู่ระบบองปรับการทำงาน แต่หลังจากเข้าสู่ระบบพฤติกรรมที่แปลกจะปรากฏขึ้น

นอกจากนี้ถ้าฉันให้โฟกัสไปที่เมนู (เช่นคลิกที่ไฟล์เมนูใน Firefox) องปรับการทำงาน

xdotool key XF86MonBrightnessDownทำงานได้ดีปรับความสว่างได้ 1 ขั้น (ตรวจสอบด้วยcat /sys/devices/pci0000:00/0000:00:02.0/backlight/acpi_video0/brightness)

ฉันติดตั้งแล้วindicator-brightness- มันแสดงให้เห็นถึง 16 leves (0-15)

ฉันพยายามตั้งค่าacpi_backlight=vendorด้วง (ได้รับแรงบันดาลใจจากหัวข้อนี้: http://ubuntuforums.org/showthread.php?t=1909184ด้วยปัญหาที่คล้ายกัน) มันทำงานได้ในคีย์ลัดนั้นทำงานได้ดี แต่ปัญหาเกี่ยวกับการแจ้งเตือน OSD, xdotool และตัวบ่งชี้ความสว่างเกิดขึ้น ดังนั้นฉันคิดว่ามันไม่ใช่ทางออกที่ถูกต้อง

ดูเหมือนว่าหลังจากเข้าสู่ระบบบางสิ่งรบกวนในรูปแบบการประมวลผลปุ่มลัด ความคิดใด ๆ

แก้ไข (ข้อมูลเพิ่มเติม)

  • ฉันสังเกตว่าปุ่มลัดทำงานที่ระดับฮาร์ดแวร์ - ฉันสามารถปรับความสว่างได้ทันทีหลังจากเปิดแล็ปท็อป (เช่นที่หน้าจอ BIOS)

  • หลังจาก$ killall gnome-settings-daemonปุ่มลัดปรับความสว่างทีละขั้นตอน แต่ไม่มีการแจ้งเตือนปรากฏขึ้น ไม่นานgnome-settings-daemonกู้และสามขั้นตอนผลตอบแทนปัญหา

  • acpi_listen ให้เอาต์พุตต่อไปนี้ (ปุ่มทั้งสองเรียงตามลำดับ):

    $ acpi_listen
    ibm/hotkey HKEY 00000080 00001010
    video LCD0 00000086 00000000
    ibm/hotkey HKEY 00000080 00001011
    video LCD0 00000087 00000000
    

    ณ จุดนี้ฉันคิดว่า (1) ปุ่มลัดทำงานในระดับฮาร์ดแวร์ (2) ibm/hotkeyดูแลฮอตคีย์ (3) videoดูแลเช่นกัน ดังนั้นปัญหาสามขั้นตอนจะปรากฏขึ้น

    ฉันลองทำบัญชีดำ (ฉันคาดว่าสิ่งนี้จะนำไปสู่พฤติกรรมสองขั้นตอน) แต่ไม่มีอะไรเปลี่ยนแปลง

เพื่อเป็นการหลีกเลี่ยงปัญหาฉันสร้างฮ็อตคีย์ของตัวเองใน CompizConfig Settings Manager - ตามที่อธิบายไว้ที่นี่แต่มีการ--clearmodifiersโต้แย้ง:

xdotool key --clearmodifiers XF86MonBrightnessUp
xdotool key --clearmodifiers XF86MonBrightnessDown

ดังนั้นตอนนี้ฉันสามารถใช้ปุ่มลัดเริ่มต้นหรือปุ่มใหม่สำหรับการปรับปลีกย่อย

เปิดคำถาม

มีการหารือเกี่ยวกับกรณีที่มีสองขั้นตอนแล้ว: Lenovo ThinkPads, ปุ่มฟังก์ชั่นความสว่างทำสองขั้นตอนแทนหนึ่งโดยมองหาวิธีแก้ปัญหา :

ฮาร์ดแวร์ทำมันและส่งสัญญาณบอกว่ากดปุ่มแล้ว เป็นไปได้ว่าคุณสามารถยกเลิกการตั้งค่าทางลัดในระบบ -> การตั้งค่า -> แป้นพิมพ์ลัดสำหรับการกระทำนี้?

แต่ฉันอยากรู้

  1. ทำไมฉันถึงได้รับปัญหาสามขั้นตอน?
  2. ฉันจะยกเลิกการประมวลผลคีย์ลัดนี้ได้อย่างไร?

ฉันจะขอบคุณมากถ้ามีคนอธิบาย

คำตอบ:


14

3 ขั้นตอนสำหรับ 1 ปุ่มกดมาจากไหน?

คุณได้สามขั้นตอนความสว่างสำหรับหนึ่งปุ่มกดเนื่องจาก:

  1. ACPI / ไดรเวอร์วิดีโอมาตรฐานปรับขั้นตอนที่ 1
  2. thinkpad_acpiคนขับบอก BIOS เพื่อปรับขั้นตอนที่ 2แต่ยังคงส่งต่อเหตุการณ์ปุ่มกด
  3. power daemon ของ GNOME ดักจับปุ่มกดนี้และบอกให้ ACPI ปรับอีกครั้งในขั้นตอนที่ 3

1. ปิดการใช้งานไดรเวอร์วิดีโอจากการปรับความสว่างด้วยตัวเอง

สิ่งนี้จะกำจัดหนึ่งในสามขั้นตอน (ขั้นตอนที่ 1) ด้านบน

  • เปิดเครื่อง
  • ชนิด sudo sh -c 'echo -n 0 > /sys/module/video/parameters/brightness_switch_enabled'
  • ทดสอบตอนนี้คุณควรมีการควบคุมความสว่างในขั้นตอนที่สอง
  • หากต้องการปิดใช้งานสิ่งนี้โดยอัตโนมัติเมื่อเริ่มต้นให้เปิด/etc/rc.localในโปรแกรมแก้ไขรายการโปรดและก่อนบรรทัดสุดท้าย ( exit 0) ให้เพิ่ม:

    echo -n 0> / sys / โมดูล / วิดีโอ / พารามิเตอร์ / brightness_switch_enabled

2. คอมไพล์thinkpad_acpiโมดูลใหม่เพื่อแก้ปัญหาการกดสองครั้ง

  • เราต้องหยุดthinkpad_acpiจากการปรับความสว่างผ่าน BIOS และมีมันเพียงไปข้างหน้ากดปุ่มเพื่อ GNOME เพื่อให้ GNOME ทำให้ขั้นตอนการปรับเท่านั้น
  • นี่เป็นข้อผิดพลาดที่รู้จักซึ่งได้รับการแก้ไขในเคอร์เนล 3.4+
  • เพื่อแก้ไขสำหรับ Ubuntu 12.04 / แม่นยำเราจะมีการแก้ไขรุ่นthinkpad_acpiและคอมไพล์ใหม่:

    1. ติดตั้งส่วนหัวเคอร์เนล: sudo apt-get install linux-headers-$(uname -r)
    2. ติดตั้งเครื่องมือสร้าง sudo apt-get install build-essential
    3. สร้างไดเร็กทอรีชั่วคราวและเปลี่ยนเป็น:
      mkdir ~ / tpacpi-bright && cd ~ / tpacpi-bright
    4. ดาวน์โหลดและแก้ไขไฟล์ต้นฉบับthinkpad_acpi.cจากที่เก็บ git ของ Ubuntu Kernel:

      wget -O- "http: //kernel.ubuntu.com/git? p = ubuntu / ubuntu-precision.git; \
      A = blob_plain; f = ไดรเวอร์ / แพลตฟอร์ม / x86 / thinkpad_acpi.c; HB = HEAD "\
      | sed -e 's / tp_features.bright_acpimode && acpi_video / acpi_video / g' \
      > thinkpad_acpi.c
    5. ในโฟลเดอร์เดียวกันกับที่thinkpad_acpi.cดาวน์โหลดมาคุณจะต้องมี "Makefile" คุณสามารถดาวน์โหลดได้โดยตรงจากPastebinนี้โดยใช้:

      wget -OMakefile http://pastebin.com/raw.php?i=ybpnxeUT

    หรือวางด้านล่างลงในไฟล์ที่เรียกว่าMakefile:

    obj-m + = thinkpad_acpi.o
    ทั้งหมด: ทำให้โมดูล -C / lib / modules / $ (shell uname -r) / build M = $ (PWD) โมดูล
    สะอาด ทำให้ -C / lib / modules / $ (shell uname -r) / build M = $ (PWD) ล้าง
    1. ตอนนี้พิมพ์makeเพื่อสร้างโมดูล คุณจะเห็นthinkpad_acpi.koไฟล์ในโฟลเดอร์เมื่อเสร็จสิ้น
  • ทดสอบโมดูลที่ได้รับการติดตั้งหลังจากโหลดด้วย:

    sudo rmmod thinkpad_acpi && sudo lsmod thinkpad_acpi.ko
  • หากความสว่างคงที่และให้การควบคุมเต็มที่ให้เปลี่ยนโมดูลหุ้นด้วยโมดูลที่ได้รับการแก้ไขแล้ว:

    TPDIR = / lib / modules / $ (uname -r) / kernel / drivers / platform / x86
    sudo mv $ TPDIR / thinkpad_acpi.ko $ TPDIR / thinkpad_acpi.ko.stock
    sudo mv ~ / tpacpi-bright / thinkpad_acpi.ko $ TPDIR / thinkpad_acpi.ko
    
  • คุณสามารถล้างโฟลเดอร์บิลด์ด้วยmake clean; เก็บไว้เพื่อการอัปเกรดเคอร์เนลในอนาคต!


ขอบคุณสำหรับคำตอบ! โซลูชันของคุณใช้ได้ผลกับฉันอย่างสมบูรณ์ ปัญหาเดียว - การควบคุมความสว่างยังไม่สามารถใช้งานได้ที่หน้าจอเข้าสู่ระบบ (ฉันดูเหมือนจะเข้าใจว่าทำไม - เพราะthinkpad_acpiมีการใช้งานใหม่ แต่ Power daemon GNOME นั้นยังไม่ได้ใช้งาน)
Andrey

เพื่อประโยชน์ในการเรียนรู้คุณช่วยบอกฉันหน่อยได้ไหมว่ามีวิธีที่จะบอก daemon พลังงานของ GNOME ว่าไม่ให้ประมวลผลปุ่มลัดความสว่างเหมือนกับที่เราทำกับvideoคนขับหรือไม่ Ubuntu มี GUI ( All Settings -> Keyboard -> Shortcuts) สำหรับปรับแต่งปุ่มลัดเสียง (เพิ่ม / ลดเสียง, ปิดเสียง) แต่ฉันไม่พบตำแหน่งที่ฉันสามารถเปลี่ยนหรือปิดใช้งานปุ่มปรับความสว่าง
Andrey

@Andrey: ยินดีต้อนรับ! ฉันมี Thinkpad T520 ดังนั้นนี่จึงเป็นโอกาสที่ดีในการแก้ไขปัญหา สำหรับหน้าจอการเข้าสู่ระบบฉันคิดว่าวิธีการแก้ปัญหาคือการปิดใช้งานไม่ได้อยู่ในrc.localแต่~/.profileเพียงเพื่อเปิดใช้งานหลังจากที่คุณเข้าสู่ระบบเท่านั้น หากมีวิธีง่ายๆในการปิดใช้งานดีมอนภูตพลังงานจากการประมวลผลปุ่มลัดความสว่างก็จะปิดการใช้งาน OSD ด้วย (เช่นbacklight=vendor); การทำถูกต้องอาจจำเป็นต้องแก้ไขซอร์สโค้ด ... ฉันจะลองดูสิ อย่างไรก็ตามเมื่อ 12.10 ออกมาพวกเขาจะปล่อยเคอร์เนล backported ที่คงที่สำหรับ 12.04 ดังนั้นจึงจะทำงานได้
ish

2

ฉันมีปัญหาเดียวกันกับที่คุณบวกกับระบบของฉันเริ่มต้นเสมอเมื่อปิดหน้าจอ

ฉันอยากจะขอบคุณที่ชี้ให้ฉันในทิศทางที่ถูกต้องacpi_backlight=vendorได้ทำเคล็ดลับสำหรับฉันโดยไม่มีปัญหาใด ๆ ที่คุณพบ ฉันใช้ HP G7 1116sg กับกราฟิกไฮบริด (Intel HD3000 (ปัจจุบันใช้เฉพาะ intel เนื่องจากปัญหาไฮบริดในอูบุนตูฉันพูดแบบนี้เท่านั้นเพราะ X220 มีการระบุว่ามีอะแดปเตอร์กราฟิกเดียวกัน) / Radeon HD6870) และ Ubuntu 12.04

แค่อยากจะบอกว่าการเปลี่ยนแปลงด้วงใช้ได้ผลสำหรับฉันโดยไม่มีปัญหาใด ๆ

ขอให้โชคดีในการหาทางออก


ดีใจที่มันเหมาะกับคุณ!
Andrey

0

การตั้งค่า/sys/module/video/parameters/brightness_switch_enabledที่จะ0ทำให้ผมไม่สามารถที่จะควบคุมความสว่างที่ทั้งหมดใน Thinkpad X230 ของฉันผ่านทางแป้นพิมพ์ลัดทั้งใน TTY และ Xfce 4.10 ฉันต้องบอก xfce4-power-manager ไม่ให้เปลี่ยนความสว่างของเหตุการณ์สำคัญ คุณสามารถทำได้โดยการตั้งค่าหนึ่งในสองคีย์การกำหนดค่าที่ซ่อนอยู่ คนแรกคือ:

xfconf-query -c xfce4-power-manager -n -t bool -p /xfce4-power-manager/change-brightness-on-key-events -s false

และอันที่สอง:

xfconf-query -c xfce4-power-manager -n -t bool -p /xfce4-power-manager/show-brightness-popup -s false

หมายเหตุ: การตั้งค่าทั้งสองนี้ปิดการใช้งานหน้าจอป๊อปอัพความสว่างในระบบของฉัน แต่อย่างน้อยฉันจะได้รับความสว่างทั้งหมด 16 ระดับกลับคืนมา!

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับปัญหานี้ในหน้านี้และที่ด้านล่างของหน้านี้


0

ในแล็ปท็อป Lenovo S205 ของฉันฉันมีปัญหานี้ทั้งไดรเวอร์วิดีโอและคำพังเพยปรับความสว่าง

แต่ประสบการณ์การปิดใช้งานbrightness_switch_enabledคุณสมบัติของฉันคือ gnome นั้นช้าและดูเหมือนว่ามีชีวิตชีวาเมื่ออัปเดตแบ็คไลท์ --- เช่นถ้าฉันปล่อยปุ่มค้างไว้สองสามวินาทีแล้วปล่อยต่อไป gnome ยังใช้เวลา 5-10 วินาทีในการประมวลผลเหตุการณ์

ดังนั้นฉันต้องการปล่อยให้โปรแกรมควบคุมวิดีโอทำการปรับเปลี่ยนและหยุด gnome แทน

sudo chmod -x /usr/lib/gnome-settings-daemon/gsd-backlight-helper

ปิดการใช้งานgsd-backlight-helperได้หลอกลวงสำหรับฉัน ฉันคลาน internets และดูเหมือนจะไม่มีตัวเลือกที่ผู้ใช้มองเห็นได้ทำแบบเดียวกัน

ฉันสูญเสียความสว่าง OSD แต่ตอนนี้การเปลี่ยนแปลงความสว่างได้รับการประมวลผลทันทีและเป็นโบนัสฉันยังคงมีการควบคุมความสว่างบน tty

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