Trong vỏ gnome, "Chế độ trên máy bay" sẽ tự động được kích hoạt khi khởi động cho nhiều máy tính xách tay HP, khi màn hình nghiêng sang một bên hoặc khi mở / đóng nắp. Sau đây là bản sửa lỗi cho máy tính xách tay HP chạy Linux và sử dụng trình bao gnome. Mã khóa 240 được định nghĩa là KEY_UNKNOWN (một loại khóa không op) trong /usr/include/linux/input-event-codes.h. Ngoài ra, nhật ký hệ thống của bạn sẽ không còn nhắc bạn xác định mã HP e057 và e058, điều này có thể gây khó chịu đáng kể.
Đầu tiên là sửa lỗi bằng cách sử dụng tập lệnh init SysV cổ điển, được đặt trong thư mục init.d và được liên kết tương ứng (Về cơ bản, chúng tôi muốn nó chạy bất kể runlevel trên bất cứ thứ gì ngoại trừ tạm dừng (0) hoặc khởi động lại (6)). Thứ hai là một dịch vụ systemd đáng tin cậy hơn nhiều và có lẽ có những thay đổi gần đây của systemd, điều này cũng xảy ra trên Fedora 28 và các nền tảng phân phối khác. Cụ thể trên Fedora, bạn sẽ tìm thấy sự vắng mặt gần như hoàn toàn của các tập lệnh trong thư mục /etc/init.d, cùng với một chút README mô tả chi tiết quá trình chuyển từ SysV sang systemd. Phương thức đầu tiên sẽ hoạt động, nhưng phương thức thứ hai "thân thiện trong tương lai" hơn nhiều, đặc biệt là xem xét nơi Ubuntu đang hướng tới, và cũng sẽ hoạt động theo cách hơi ... khó chịu. Các tập lệnh init của Systemd thực sự khá tiện dụng và được triển khai và sử dụng thường xuyên trong Ubuntu 18.04.
Phương pháp SysV cũ:
$ sudo sh -c 'printf "#! / bin / sh \ n / usr / bin / setkeycodes e057 240 e058 240 \ n"> /etc/init.d/hp-keycodes'
$ sudo chmod + x /etc/init.d/hp-keycodes
$ sudo ln -s /etc/init.d/hp-keycodes /etc/rc1.d/K01hp-keycodes
$ sudo ln -s /etc/init.d/hp-keycodes /etc/rc2.d/S01hp-keycodes
$ sudo ln -s /etc/init.d/hp-keycodes /etc/rc3.d/S01hp-keycodes
$ sudo ln -s /etc/init.d/hp-keycodes /etc/rc4.d/S01hp-keycodes
$ sudo ln -s /etc/init.d/hp-keycodes /etc/rc5.d/S01hp-keycodes
$ sudo khởi động lại
Phương pháp Systemd mới được đề xuất:
$ sudo nano /etc/systemd/system/hp-keycodes.service
Dán các dòng sau hoặc nhập chúng vào tệp:
[Đơn vị]
Mô tả = HP setkeycodes fix
[Dịch vụ]
Loại = oneshot
Khởi động lại = không
RemainAfterExit = không
ExecStart = / usr / bin / setkeycodes e057 240 e058 240
[Tải về]
WantedBy = cứu.target
WantedBy = multi-user.target
WantedBy = Graphics.target
Lưu và xác nhận tên tệp bằng ctrl-x, y.
$ sudo systemctl daemon-tải lại
$ sudo systemctl kích hoạt hp-keycodes.service
$ sudo khởi động lại
Và đó là nó, không có những thứ kỳ lạ khó chịu hơn khi bạn nghiêng màn hình hoặc đóng / mở nắp máy tính xách tay!