मेरा डेल लैपटॉप कर्नेल 3.14 के साथ इस बग के अधीन है । वर्कअराउंड के रूप में मैंने एक साधारण स्क्रिप्ट लिखी
/ Usr / bin / चमक ठीक:
#!/bin/bash
echo 0 > /sys/class/backlight/intel_backlight/brightnes
(और निष्पादन योग्य बनाया: chmod +x /usr/bin/brightness-fix
)
और एक systemd सेवा इसे कॉल करती है जिसे स्टार्टअप पर निष्पादित किया जाता है:
/etc/systemd/system/brightness-fix.service
[Unit]
Description=Fixes intel backlight control with Kernel 3.14
[Service]
Type=forking
ExecStart=/usr/bin/brightness-fix
TimeoutSec=0
StandardOutput=syslog
#RemainAfterExit=yes
#SysVStartPriority=99
[Install]
WantedBy=multi-user.target
और सक्षम: systemctl enable /etc/systemd/system/brightness-fix.service
यह एक आकर्षण की तरह काम करता है और मैं अपनी डिस्प्ले ब्राइटनेस को नियंत्रित कर सकता हूं। समस्या तब आती है जब लैपटॉप स्लीप मोड में जाने के बाद फिर से शुरू होता है (जैसे लैपटॉप लेप को बंद करते समय): चमक नियंत्रण तब तक काम नहीं करता है जब तक कि मैं ऊपर दिए गए मेरे fisrt स्क्रिप्ट को मैन्युअल रूप से निष्पादित नहीं करता हूं:/usr/bin/brightness-fix
मैं फिर से शुरू समय पर निष्पादित करने के लिए ऊपर की तरह एक और systemd सेवा कैसे बना सकता हूं?
संपादित करें:
नीचे दी गई टिप्पणियों के अनुसार मैंने अपना संशोधन brightness-fix.service
इस तरह किया है:
[Unit]
Description=Fixes intel backlight control with Kernel 3.14
[Service]
Type=oneshot
ExecStart=/usr/local/bin/brightness-fix
TimeoutSec=0
StandardOutput=syslog
[Install]
WantedBy=multi-user.target sleep.target
यह echo "$1 $2" > /home/luca/br.log
जाँचने के लिए कि मैंने वास्तव में निष्पादित किया है या नहीं, मैंने अपनी स्क्रिप्ट में जोड़ा है। स्क्रिप्ट को वास्तव में फिर से शुरू ( post suspend
) पर भी निष्पादित किया जाता है लेकिन इसका कोई प्रभाव नहीं है (बैकलिट 100% है और इसे बदला नहीं जा सकता है)। मैं भी प्रवेश करने की कोशिश की $DISPLAY
और $USER
और, फिर से शुरू समय में, वे खाली हैं। इसलिए मेरा अनुमान है कि नींद से जागने पर स्क्रिप्ट को बहुत जल्दी निष्पादित किया जाता है। कोई संकेत?
/usr/local/bin
, नहीं /usr/bin
। वह निर्देशिका केवल संकुल प्रबंधक के लिए आरक्षित है।
sleep.target
जब कंप्यूटर फिर से शुरू होगा, तब इकाई के उपयोग से ही कंप्यूटर चलेगा। एक समान फ़ाइल के साथ काम करने वाली इकाई फ़ाइल के लिए नीचे मेरा उत्तर देखें।
WantedBy=sleep.target
...