máy tính xách tay Dell của tôi bị lỗi này với kernel 3.14. Như một cách giải quyết, tôi đã viết một kịch bản đơn giản
/ usr / bin / độ sáng-sửa lỗi:
#!/bin/bash
echo 0 > /sys/class/backlight/intel_backlight/brightnes
(và thực hiện được chmod +x /usr/bin/brightness-fix
:)
và một dịch vụ systemd gọi nó được thực thi khi khởi động:
/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
và được bật: systemctl enable /etc/systemd/system/brightness-fix.service
Điều đó hoạt động như một sự quyến rũ và tôi có thể kiểm soát độ sáng màn hình của mình như mong muốn. Vấn đề xảy ra khi máy tính xách tay hoạt động trở lại sau khi chuyển sang chế độ ngủ (ví dụ: khi đóng môi máy tính xách tay): điều khiển độ sáng không hoạt động nữa trừ khi tôi thực hiện thủ công tập lệnh fisrt của mình ở trên:/usr/bin/brightness-fix
Làm cách nào tôi có thể tạo một dịch vụ systemd khác như của tôi ở trên để được thực thi trong thời gian tiếp tục?
EDIT:
Theo ý kiến dưới đây, tôi đã sửa đổi brightness-fix.service
như thế này:
[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
Ngoài ra, tôi đã thêm vào echo "$1 $2" > /home/luca/br.log
tập lệnh của mình để kiểm tra xem nó có thực sự được thực thi hay không. Kịch bản mà nó thực sự được thực thi cũng tại sơ yếu lý lịch ( post suspend
) nhưng nó không có hiệu lực (đèn nền là 100% và không thể thay đổi). Tôi cũng đã thử đăng nhập $DISPLAY
và $USER
, tại thời điểm tiếp tục, chúng trống. Vì vậy, dự đoán của tôi là kịch bản được thực hiện quá sớm khi thức dậy khỏi giấc ngủ. Có gợi ý nào không?
/usr/local/bin
không phải /usr/bin
. thư mục đó chỉ dành riêng cho người quản lý gói.
sleep.target
sẽ chạy thiết bị khi máy tính ngủ, thay vì khi nó hoạt động trở lại. Xem câu trả lời của tôi dưới đây cho một tệp đơn vị làm việc cho tôi với một vấn đề tương tự.
WantedBy=sleep.target
...