ปัญหาความสว่างของแสงไฟ nvidia


8

ปัญหา

Unity แสดงการควบคุมในขณะที่ฉันกดความสว่าง Fn + เพิ่ม / Descrese แต่ไม่มีอะไรเกิดขึ้น ในความสว่างของคอนโซลไม่ทำงานเกินไปในขณะที่เซิร์ฟเวอร์ X กำลังทำงาน

ตรวจสอบโซลูชั่น

ฉันได้ลองวิธีแก้ปัญหาที่เป็นไปได้ทั้งหมดของปัญหานี้ใน google และไม่มีอะไรทำงาน:

  1. เขียน acpi_backlight ในด้วง
  2. ติดตั้งไดรเวอร์ใหม่ด้วย apt purge nvidia *
  3. เขียน "EnableBrightnessControl = 1" ใน xorg.conf
  4. ติดตั้ง nvidia-375.66, nvidia-378.13, 381.22, 384.47
  5. "xbacklight -set X" ไม่ทำงาน
  6. การเปลี่ยน / sys / คลาส / แสงไฟ / ความสว่าง
  7. อัปเดตเคอร์เนล linux จาก 4.8 เป็น 4.10 และ 4.12
  8. แทนที่ EDID จากเมทริกซ์เก่า (มันทำลายทุกอย่าง)
  9. setpci -v -H1 -s 00: 01.0 3e.W = 0 แล้วเปลี่ยนแสงไฟโดยใช้ปุ่ม Fn +
  10. xrandr - เอาท์พุท DP-0 - ความสว่าง 0.5 --- ทางออกที่ไม่ดี

ระบบและสถานการณ์ของฉัน

ฉันใช้เมทริกซ์การแสดงผล N173HHE-G32 ในแล็ปท็อปของฉันมาก่อนและทุกอย่างก็โอเค แต่วันนี้ฉันแทนที่มันเป็น B173HAN01.2 และปัญหานี้ได้เริ่มขึ้นแล้ว ใน Windows 10 ฉันแก้ไขได้โดยติดตั้งไดรเวอร์ใหม่บน nvidia-376 จากเว็บไซต์ MSI อย่างเป็นทางการ

ดังนั้นฉันสามารถดูลำดับต่อไป: ที่ความสว่างเริ่มแล็ปท็อปคือสูงสุดแล้วเป็นขั้นต่ำ (และทำงาน) ในขณะที่ข้อความ "initramfs ... " แสดงในคอนโซล และหลังจากที่เซิร์ฟเวอร์ X เริ่มความสว่างก็จะมากที่สุด (แตก) อีกครั้ง เมื่อเซิร์ฟเวอร์ X หยุดความสว่างจะทำงานอีกครั้ง!

MSI GT73VR 7RF, Ubuntu 16.04.2 LTS, NVidia GeForce GTX1080, B173HAN01.2 display matrix

uname -a 
4.8.0-58-generic #63~16.04.1-Ubuntu SMP Mon Jun 26 18:08:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

lspci | grep -i vga
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1be0 (rev a1)

แต่!

แต่เมื่อผมใช้ nvidia-378 มันWORKS ! น่าเสียดายที่ 378 มีข้อบกพร่องที่สำคัญหลังจากโหมด Suspend ในอินเตอร์เฟส Unity: (((

โปรดช่วยดวงตาของฉันมีเลือด (มันสดใสมากสำหรับพวกเขา) และฉันไม่รู้จะทำอย่างไร ...

Updated! หลังจากสองปีฉันเข้าใจว่าปัญหาอยู่ภายใน lightdm (หรือเซิร์ฟเวอร์ X) เมื่อฉันหยุดมันทุกอย่างก็โอเค ...


บางทีหลักสูตรที่ดีที่สุดคือไดรเวอร์ 378 และแก้ไขข้อผิดพลาด suspend / resume ด้วย ข้อบกพร่องคืออะไร?
WinEunuuchs2Unix

บักพร้อมอินเตอร์เฟส Unity - สิ่งประดิษฐ์บางอย่างรอบขอบหน้าต่างและเมนู มีคำอธิบาย - bugs.launchpad.net/ubuntu/+source/unity/+bug/1675597
Max Tkachenko

ฉันคิดว่ามีคนบอกว่าหนึ่งหรือสองเดือนที่ผ่านมามันได้รับการแก้ไขในรุ่น 381 หรืออะไรทำนองนั้น ฉันคิดว่ามันคือaskubuntu.com/users/15811/rinzwindที่พูดถึงมัน แต่askubuntu.com/users/167850/pilot6ฉันเชื่อว่าเป็นผู้เชี่ยวชาญอีกคน
WinEunuuchs2Unix

1
บั๊กที่มีกับการระงับได้รับการแก้ไขแล้ว แต่แบ็คไลท์ไม่ทำงาน :( ฉันได้ลอง 381 .. และรุ่นอื่น ๆ อีกมากมาย ..
Max Tkachenko

คุณสามารถอัปเดตคำถามของคุณด้วยผลลัพธ์ของ:for i in /sys/class/backlight/*; do echo $i; cat $i/brightness; cat $i/actual_brightness; cat $i/max_brightness; done
WinEunuuchs2Unix

คำตอบ:


8

อัปเดต 16 มิถุนายน 2019

เมื่อเดือนที่แล้วรายงานปัญหา 2 ปี OP พบว่า LightDM (Ubuntu Unity Desktop Manager) เป็นสาเหตุของปัญหา ที่กล่าวไว้นอกเหนือจากรายการด้านล่างมีgrubพารามิเตอร์อื่นที่สามารถลองได้:

video.use_native_backlight=1

ดูคำตอบนี้มากขึ้น


คำตอบเดิม

การอ้างอิงขั้นสุดท้ายดูเหมือนว่าจะอยู่ในArch Linuxซึ่งเป็นเว็บไซต์ที่ฉันได้หันไปหลายครั้งเพื่อแก้ไขปัญหาที่ยาก

พารามิเตอร์เคอร์เนล

ดูที่คุณcat /proc/cmdlineไม่มีพารามิเตอร์เคอร์เนลเพิ่มเติมผ่าน สถานะลิงก์ข้างต้น:

บางครั้ง ACPI ทำงานได้ไม่ดีนักเนื่องจากมีการติดตั้งมาเธอร์บอร์ดและ ACPI ที่ไม่เหมือนกัน ซึ่งรวมถึงแล็ปท็อปบางตัวที่มีกราฟิกคู่ (เช่น Nvidia / Radeon GPU เฉพาะที่มี Intel / AMD รวม GPU) สำหรับแล็ปท็อป Nvidia Optimus พารามิเตอร์เคอร์เนล nomode สามารถรบกวนความสามารถในการปรับแสงไฟ นอกจากนี้บางครั้ง ACPI จำเป็นต้องลงทะเบียนของตัวเองacpi_video0 backlightแม้ว่าจะมีอยู่แล้ว (เช่นintel_backlight) ซึ่งสามารถทำได้โดยการเพิ่มหนึ่งในพารามิเตอร์เคอร์เนลต่อไปนี้:

acpi_backlight=video
acpi_backlight=vendor
acpi_backlight=native

หากคุณพบว่าการเปลี่ยนacpi_video0ไฟหน้าจอไม่ได้จริงเปลี่ยนความสว่าง, acpi_backlight=noneคุณอาจจำเป็นต้องใช้

ลองใช้acpi_backlight=xxxxตัวเลือกแต่ละตัวในบรรทัด paremeters ของ grub kernel

เมื่อxbacklightไม่ทำงาน

คุณได้ลองxbacklightแล้วและลิงค์ด้านบนพูดถึงสิ่งนี้:

ในบางระบบปุ่มลัดความสว่างบนแป้นพิมพ์ของคุณจะปรับเปลี่ยนค่าของอินเตอร์เฟซ acpi ใน/sys/class/backlight/acpi_video0/actual_brightness( อย่างที่เราลองในความคิดเห็น ) อย่างถูกต้องแต่ความสว่างของหน้าจอจะไม่เปลี่ยนแปลง แอปเพล็ต Brigthness จากสภาพแวดล้อมเดสก์ท็อป (เช่นแถบเลื่อนการตั้งค่าความสว่างของ Ubuntu ) อาจแสดงการเปลี่ยนแปลงที่ไม่มีผล

หากคุณได้ทดสอบพารามิเตอร์เคอร์เนลที่แนะนำและใช้xbacklightงานได้เท่านั้นคุณอาจประสบปัญหาความไม่ลงรอยกันระหว่าง BIOS และเคอร์เนลไดรเวอร์

ในกรณีนี้ทางออกเดียวคือรอการแก้ไขจากผู้ผลิต BIOS หรือ GPU

วิธีแก้ปัญหาคือการใช้inotifyเคอร์เนล api เพื่อทริกเกอร์xbacklightแต่ละครั้งที่มูลค่าของ /sys/class/backlight/acpi_video0/actual_brightnessการเปลี่ยนแปลง

ก่อนติดตั้ง inotify-tools จากนั้นสร้างสคริปต์รอบค่า inotify ที่จะเปิดใช้ในการบู๊ตแต่ละครั้งหรือผ่านระบบเริ่มอัตโนมัติ

ด้านล่างเป็นสคริปต์ที่คุณต้องสร้างชื่อ: /usr/local/bin/xbacklightmon

#!/bin/sh

path=/sys/class/backlight/acpi_video0

luminance() {
    read -r level < "$path"/actual_brightness
    factor=$((100 / max))
    printf '%d\n' "$((level * factor))"
}

read -r max < "$path"/max_brightness

xbacklight -set "$(luminance)"

inotifywait -me modify --format '' "$path"/actual_brightness | while read; do
    xbacklight -set "$(luminance)"
done

มีมากขึ้นในลิงค์ข้างต้น แต่ขั้นตอนเหล่านี้เป็นจุดเริ่มต้นที่ดี


ฟอรัมเฉพาะ

สำหรับการสนับสนุนเพิ่มเติมมีฟอรัม Linux กราฟิกเฉพาะ:


ขอบคุณสำหรับคำตอบที่ยอดเยี่ยมมาก! 1) ลองใช้ตัวเลือก acpi_backlight = xxxx แต่ละตัวบนบรรทัด paremeters grub kernel ของคุณ --- ใช่ฉันได้ลองมาหลายครั้งแล้วโดยไม่มีผลใด ๆ
Max Tkachenko

น่าเสียดายที่ xbacklight ใช้งานไม่ได้ด้วย :(
Max Tkachenko

ฉันคิดว่ามันเป็นข้อผิดพลาดของไดรเวอร์ .. และฉันต้องการใครสักคนจากทีม dev ของ nvidia :)
Max Tkachenko

ถ้าฉันจำได้อย่างถูกต้องทีม nVidia ซึ่งปกติทำงานกับไดรเวอร์ลินุกซ์เพิ่งเปลี่ยนไปแล้วและอาจไม่มีการสนับสนุนลินุกซ์เดียวกันในวันข้างหน้า
ben-Nabiy Derush

@ ben-NabiyDerush ฉันจำได้ว่าเมื่อปีที่แล้ว Nvidia เปิดตัวฟอรัมที่มีจุดประสงค์เพื่อค้นหาปัญหาที่ผู้ใช้มีและทำงานร่วมกับพวกเขาเพื่อแก้ไขปัญหา ฉันเชื่อว่า Linux ให้ความสำคัญ ฉันไปหาฟอรัมอีกครั้งวันนี้ แต่หาไม่เจอ ฉันหาฟอรัมสนับสนุนอีกสองแห่งแล้วและตอบคำถามเหล่านี้ด้วย
WinEunuuchs2Unix

2

สวัสดีฉันขอโทษถ้านี่เป็นสิ่งที่คนฉลาดได้ตัดออกไปแล้วเนื่องจากฉันไม่คุ้นเคยกับบรรทัดคำสั่ง แต่หลังจากติดตั้งใหม่ฉันพบปัญหานี้และวิธีแก้ไขทั้งหมดข้างต้นไม่ได้ผลสำหรับฉัน (MSI pe706QE nvidia 960m )

ฉันแก้ไข/etc/default/grubโดย:

gksudo 'insert editor of choice not in quotes' /etc/default/grub

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

บันทึกไฟล์และเรียกใช้:

sudo update-grub 

ทั้งหมดทำงานอีกครั้งด้วยปุ่มลัด # noobie ล้มเหลวหวังว่านี่จะช่วยได้บ้าง


2

ฉันมีโน๊ตบุ๊ค Sony VPCEH ฉันมีปัญหาเดียวกัน ฉันลองใช้วิธีแก้ปัญหาที่ใช้งานได้ดีกับฉัน:  http://ubuntuforums.org/showthread.php?t=2221452#6 สั้น ๆ : ด้วยสิทธิ์พิเศษของ root ให้สร้างไฟล์ /usr/share/X11/xorg.conf.d/20- nvidia.conf พร้อมเนื้อหาดังต่อไปนี้

ส่วน "อุปกรณ์" ตัวระบุ "อุปกรณ์ 0" ไดรเวอร์ "nvidia" VendorName "NVIDIA Corporation" ชื่อบอร์ด "GeForce 410M" ตัวเลือก "RegistryDwords" "EnableBrightnessControl = 1" EndSection

ออกจากระบบและกลับมาอีกครั้งเพื่อทดสอบ และมันก็ค่อยๆเพิ่ม: "หากมีสิ่งผิดปกติให้ลบไฟล์นั้นแล้วรีบูตเพื่อกู้คืนระบบ" แต่ฉันไม่ต้องการการเพิ่ม หลังจากออกจากระบบและเข้าสู่ระบบการควบคุมความสว่างเริ่มทำงานอีกครั้ง ฉันหวังว่ามันจะช่วยคุณ ...

หรืออันนี้หลังจากทำงานกับอูบุนตู 16.04 ภายใต้แล็ปท็อปของฉัน sony VPCEJ2C5E แต่กับ NVIDIA 378.13 ฉันไม่ได้ใช้ในขณะที่ไดรเวอร์ 390.25

ฉันสามารถใช้ปุ่มปรับความสว่างบน Lenovo W530 บน Ubuntu 12.04 ได้ ทุกวันนี้ X กำหนดค่าโดยอัตโนมัติดังนั้นการสร้างไฟล์ xorg.conf อาจทำให้ระบบของคุณไม่ยืดหยุ่น แต่คุณสามารถเพิ่มส่วนลงในไฟล์ใน /usr/share/X11/xorg.conf.d/ และ X จะรวมส่วนนั้นไว้ในการกำหนดค่าที่สร้างขึ้นโดยอัตโนมัติ ดังนั้นเพื่อให้ปุ่มความสว่างหน้าจอทำงานกับกราฟิกการ์ด Nvidia ของคุณให้สร้างไฟล์ในไดเรกทอรี xorg.conf.d เช่น: sudo gedit /usr/share/X11/xorg.conf.d/10-nvidia-brightness.conf วางสิ่งต่อไปนี้ลงในไฟล์:

ส่วน "อุปกรณ์" ตัวระบุ "อุปกรณ์ 0" ไดรเวอร์ "nvidia" VendorName "NVIDIA Corporation" ชื่อคณะกรรมการ "Quadro K1000M" ตัวเลือก "RegistryDwords" "EnableBrightnessControl = 1" EndSection

ออกจากระบบและกลับเข้าสู่ระบบหรือรีบูตและตอนนี้ปุ่มปรับความสว่างของคุณควรใช้งานได้แล้ว!

ป้อนคำอธิบายรูปภาพที่นี่


2

ตามคำขอของwineunuuchs2unixฉันจะโพสต์คำตอบของคำถามที่คล้ายกันใหม่ที่นี่

ลอง acpi_osi=

เมื่ออัพเกรดเป็นไบโอนิคเมื่อสองสามวันก่อนฉันพบปัญหาคล้ายกัน (ฉันมี NVIDIA GeForce GTX 1060 Mobile แต่สำหรับฉัน/sys/class/backlightแสดงว่าว่างเปล่า)

ในการทำงานผ่านโพรซีเดอร์การดีบักแบ็คไลท์ฉันค้นพบวิธีแก้ปัญหาผ่านพารามิเตอร์เคอร์เนล:

  • ใน "ซอฟต์แวร์ & การอัปเดต" → "ไดรเวอร์เพิ่มเติม" ตรวจสอบให้แน่ใจว่าคุณได้เลือกnvidia-driver-396(หรือ metapackage ใดเป็นปัจจุบัน 396 เป็นไฟล์ล่าสุด ณ เวลาที่เขียน)
  • แก้ไข/etc/default/grubโดยเรียกใช้คำสั่งsudo nano /etc/default/grub(เลือกแทนที่nanoด้วยโปรแกรมแก้ไขที่คุณชื่นชอบ)
  • ค้นหาบรรทัดที่ตั้งค่าGRUB_CMDLINE_LINUX_DEFAULTและเพิ่มacpi_osi=ที่ส่วนท้ายของเครื่องหมายคำพูด GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi="ในระบบส่วนใหญ่นี้จะทำให้คุณมีการอ่านบรรทัด
  • บันทึกและออกจากโปรแกรมแก้ไข
  • รันคำสั่งsudo update-grubและรีบูต

(หากขั้นตอนเหล่านี้ใช้ไม่ได้ผลให้เรียกคืนการตั้งค่าของคุณโดยทำซ้ำกระบวนการ แต่จะลบออกacpi_osi=เมื่อคุณแก้ไขการกำหนดค่า GRUB)

วิธีแก้ปัญหาอื่นถ้ามันเป็นตัวเลือกสำหรับคุณคือการเปลี่ยนไปใช้เคอร์เนลฉีด โดยเฉพาะฉันไม่เห็นปัญหาภายใต้เคอร์เนล mainline เวอร์ชัน 4.17

(รายงานข้อผิดพลาดที่นี่ )


1
น่าเสียดายที่มันไม่ช่วย :(
Max Tkachenko

1

โคลน repo นี้และวางสคริปต์เข้าbacklight.sh /binจากนั้นทำให้สามารถเรียกใช้งานได้และหลังจากนี้ให้เปิดรูทเทอร์มินัลและดำเนินการคำสั่งต่อไปนี้

sudo backlight.sh "brightness-level-number".

เพื่อโคลนที่เก็บ

git clone https://github.com/el-beth/backlight.sh.git


ขอบคุณ! น่าเสียดายที่มันใช้ "echo $ 1> / sys / class / backlight / 0 / สว่าง;" และมันก็เหมือนกันฉันเขียนไว้ด้านล่าง "6. การเปลี่ยน / sys / คลาส / แบ็คไลท์ / ความสว่าง"
Max Tkachenko

ไม่ใช่/sys/class/backlight/0/brightnessเส้นทางที่ถูกต้องคือ/sys/class/backlight/acpi_video0/brightness
endrias

หรือเส้นทางที่คล้ายกันอื่น ๆ สำหรับระบบที่มีฮาร์ดแวร์กราฟิกพิเศษ
endrias

ไม่ว่าในกรณีใดมันไม่ทำงาน :(
Max Tkachenko

1

คุณสามารถติดตั้งแพ็คเกจคำสั่ง xbacklight ในเทอร์มินัล:

sudo apt-get install - ติดตั้ง xbacklight อีกครั้ง

หลังจากการติดตั้งคุณสามารถใช้คำสั่ง xbacklight ดังนี้:

xbacklight -inc 20 # เพิ่มแบ็คไลท์ 20%

xbacklight -dec 30 # ลดลง 30%

xbacklight - ตั้ง 80 # ตั้งไว้ที่ 80% ของมูลค่าสูงสุด

xbacklight -get # รับระดับปัจจุบัน

คำสั่ง xbacklight ควรทำงานในลักษณะนี้


1
ขออภัย xbacklight ในรายการโซลูชันที่ได้รับการตรวจสอบแล้ว .. ไม่ทำงาน :(
Max Tkachenko

1

โปรแกรมหนึ่งในการแก้ปัญหาทั้งหมดนี้ !!!

ฉันมี GTX 1060 6Gb บนเดสก์ท็อป Ubuntu 16.04

ไม่จำเป็นต้องทำอะไรเลยเพียงแค่ติดตั้งตัวควบคุมความสว่างด้วย ppa:

https://launchpad.net/~apandada1/+archive/ubuntu/brightness-controller/

แก้ไขปัญหาให้ฉัน (ดูภาพหน้าจอ) แต่มันขัดแย้งกับ redshift ดังนั้นคุณต้องลบ redshift

คุณสามารถเพิ่มลงในการเริ่มต้นใช้งานได้สะดวก


1
ขอบคุณสำหรับคำตอบ. แต่ฉันคิดว่านี่ไม่ใช่สิ่งที่ถูกต้องข้อความมาจากไซต์: "มันเป็นซอฟต์แวร์ที่ใช้ตัวหรี่" มันไม่ได้ควบคุมพลังงานแสงด้านหลังของคุณมันเป็นเพียงโซลูชันซอฟต์แวร์ที่มีเส้นโค้ง RGB :( ฉันจะลองอีกหน่อยในภายหลัง
Max Tkachenko

ลองใช้งานได้จริง :)
Go MasterZero

ฉันได้ทำการทดสอบแล้ว อย่างที่ฉันบอกไปแล้วว่ามันเป็นโซลูชันซอฟต์แวร์มันไม่ได้ประหยัดแบตเตอรี่และทำให้สีของภาพเสียหาย xrandr - เอาท์พุท DP-0 - ความสว่าง $ VALUE --- ทำสิ่งเดียวกัน
Max Tkachenko

ขอบคุณสำหรับความคิดเห็นของคุณ GUI ยังคงเป็นสิ่งที่ดีที่จะมี
Go MasterZero

1

ในที่สุดฉันก็แก้ไขปัญหานี้และไม่มีวิธีแก้ไขปัญหาออนไลน์ที่ผู้ลงประกาศดั้งเดิมแสดงให้ฉัน สิ่งที่แก้ไขปัญหาได้คือ / etc / default / grub และในบรรทัด: GRUB_CMDLINE_LINUX_DEFAULT

การเพิ่ม:

"acpi_osi ="

แต่ยังไม่ใช้ "nomodeset" กับมัน Ppl เพิ่ม Nomodeset เพื่อแก้ไขปัญหาการเรนเดอร์ซอฟต์แวร์ แต่สิ่งนี้ทำให้ Linux ไม่รู้จักไดรเวอร์ของ Nvidia

สุดท้ายตรวจสอบให้แน่ใจว่าคุณไปที่ Linux Start Menu Driver Manager และอัปเดตไดรเวอร์ Nvidia ของคุณเป็น 430 หรือใหม่กว่า

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