ดังนั้นเว็บจึงเป็นสิ่งที่น่าอัศจรรย์อย่างแท้จริง! หลังจากการวิจัยและการดำน้ำไปยังลิงค์ของฟอรั่มมากมายฉันจัดการเพื่อทำความเข้าใจปัญหาได้ดียิ่งขึ้นเพื่อค้นหาว่าโปรแกรมใดรับผิดชอบต่อมันและในที่สุดเพื่อปิดใช้งานพฤติกรรมนี้ให้ดี ฉันคิดว่าฉันจะเขียนขั้นตอนของฉันในกรณีที่คนอื่นพบปัญหาเดียวกัน
ขั้นตอนที่ 1 ตรวจสอบระบบเพื่อทราบว่า / เมื่อไฟแบ็คไลท์ของคีย์บอร์ดถูกเปิดอยู่
/sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/brightness
สิ่งแรกคือการรู้ว่าสถานะปัจจุบันของแสงไฟแป้นพิมพ์สามารถตรวจสอบได้โดยการอ่านไฟล์ ดังนั้นเราต้องการรับการแจ้งเตือนถึงการเปลี่ยนแปลงใด ๆ กับไฟล์นี้และโดยพื้นฐานแล้วกระบวนการใดที่เรียกการเปลี่ยนแปลง
ซึ่งสามารถทำได้โดยใช้fanotify ฉันใช้โปรแกรมตัวอย่างที่ให้ไว้ในหน้า man และเพิ่มการแก้ไขเล็กน้อย * เพื่อให้ฉันสามารถตรวจสอบการเปลี่ยนแปลงในไฟล์ความสว่าง ปรากฎว่ากระบวนการที่รับผิดชอบในการปรับเปลี่ยนได้/usr/lib/upower/upowerd
ซึ่งเป็นกระบวนการภูตสำหรับUPower
ขั้นตอนที่ 2 ค้นหาสาเหตุที่ UPower เปิดไฟแบ็คไลท์ (ล้มเหลว)
นี่เป็นส่วนที่คลุมเครือที่สุดของการสืบสวนและฉันยังไม่สามารถบอกได้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น ฉันพบบุคคลที่มีปัญหาคล้ายกันมากแต่ไม่มีวิธีแก้ปัญหาดังนั้นฉันจึงเริ่มเห็นว่าฉันสามารถปิดใช้งาน UPower ได้อย่างสมบูรณ์ (และจะเกิดอะไรขึ้น) เมื่อฉันพบลิงค์นี้ ปรากฎว่า UPower มีไฟล์กำหนดค่า! มันดีกว่า.
ขั้นตอน 3. หยุด UPower จากการเปิดไฟแบ็คไลท์ของคีย์บอร์ด
สุดท้ายฉันแก้ไขไฟล์กำหนดค่าดังกล่าวข้างต้นอยู่ที่/etc/dbus-1/system.d/org.freedesktop.UPower.conf
และเปลี่ยน<allow>
เป็น<deny>
ในบรรทัดต่อไปนี้:
<allow send_destination="org.freedesktop.UPower"
send_interface="org.freedesktop.UPower.KbdBacklight"/>
จากนั้นฉันรีสตาร์ท dbus ด้วยsudo service dbus restart
(ใช้systemctl restart dbus.service
บน Ubuntu 16.04 และใหม่กว่า) และดำเนินการล็อกหน้าจอเพื่อทดสอบผลลัพธ์และ ... มันใช้งานได้ !! อืม หน้าจอเข้าสู่ระบบจะไม่ปรากฏขึ้นดังนั้นฉันจึงไม่สามารถเข้าสู่ระบบอีกครั้งและต้องบังคับให้รีสตาร์ท แต่ ทุกอย่างก็ใช้งานได้ดี!
และนั่นมัน! ฉันยังคงอยากรู้อยากเห็นสิ่งที่จะเป็นทางขวาวิธีที่จะทำเช่นนี้ ถ้าคุณรู้ว่าแสดงความคิดเห็นโปรด!
* ตัวอย่างโปรแกรมตัวอย่างถูกตั้งค่าให้มอนิเตอร์FAN_OPEN_PERM
และFAN_CLOSE_WRITE
กิจกรรมเท่านั้น แต่ในตัวอย่างนี้เป็นFAN_MODIFY
เหตุการณ์