Làm thế nào để phím Fn hoạt động?


26

Tôi muốn biết làm thế nào Fncác phím hoạt động trong máy tính xách tay của tôi. Tôi nghĩ rằng một mô-đun hạt nhân tồn tại mà bắt Fnkhóa và gọi một số tập lệnh để làm một cái gì đó. Trong máy tính xách tay của tôi, Fn+ F2chuyển đổi sức mạnh của không dây và răng xanh.

đây là đầu ra của acpi_listen, khi tôi nhấn Fn+F2

hotkey ATKD 0000005d 00000019
hotkey ATKD 0000007e 00000009

và, folloing là sản lượng xevcho Fn+F2

keycode 238 press
keycode 238 release
keycode 237 press
keycode 237 release

Tôi đoán bất cứ khi nào tôi nhấn Fn+ F2hai sự kiện được nhảy ra. Tôi đã cố gắng tìm những hành động được thực hiện cho các phím này. bất kỳ ý tưởng nào được đánh giá cao;)

Câu trả lời:


26

Synetech đưa ra một lời giải thích rất dễ đọc về các Fnphím ở đây

Chi tiết kỹ thuật

Khi bạn nhấn một phím trên bàn phím, bộ điều khiển bàn phím (một chip IC nhỏ bên trong bàn phím) sẽ phát hiện mạch điện và xử lý nó để giải mã phím nào được nhấn và sau đó gửi scancode đến bo mạch chủ . Hệ điều hành nhận scancode từ BIOS và sau đó thực hiện bất kỳ hành động nào cần thiết để xử lý phím nhấn đó.

Với hầu hết các phím, điều này là đủ đơn giản. Nếu bạn nhấn A phím, bộ điều khiển bàn phím của nó sẽ gửi scancode đến bo mạch chủ, sau đó chuyển nó tới HĐH , thường lần lượt in 'A'. (Nếu đặt phát hiện hệ điều hành mà một trong các phím modifier hiện đang giữ xuống, sau đó nó có thể làm điều gì đó khác nhau. Trong thực tế, bạn có thể cấu hình nó để làm bất cứ điều gì bạn muốn khi Aphím được nhấn có hoặc không bổ.)

Bây giờ Fnchìa khóa là đặc biệt. Khi bạn nhấn nó bằng cách riêng của mình, không có gì xảy ra bởi vì nó là độc quyền một phím modifier và không phải là (nói chung) có nghĩa là để làm gì cả ngày của riêng mình. Khi bạn giữ nó và nhấn một phím khác, bộ điều khiển bàn phím sẽ phát hiện ra và nhìn vào bảng tích hợp của nó để xem đó có phải là một sự kết hợp đã biết hay không. Nếu combo không có trong bảng, thì nó sẽ bỏ qua nó, nhưng nếu combo nằm trong bảng, thì nó sẽ tìm kiếm scancode liên quan và gửi nó.

Hệ điều hành cuối cùng nhìn thấy gì? Nó không thấy scancode cho Fnkhóa và scancode cho khóa kia. Thay vào đó, nó nhìn thấy một scancode duy nhất được liên kết với bất kỳ chức năng nào mà Fn-combo đã được đặt thành. Ví dụ: nếu nhà sản xuất máy tính xách tay đã đặt tổ hợp Fn+ Down Arrowđể giảm âm lượng, thì HĐH sẽ thấy scancode được liên kết với Volume Down, mà một số bàn phím thực sự có.

Cũng lưu ý rằng Fnkhóa hoạt động độc lập với hệ điều hành.

Hơn nữa, bài viết này có thể giúp chỉ cho bạn đi đúng hướng:

Các hạt nhân có riêng của mình scancodeđể keycodebảng vẽ bản đồ, vì vậy nó ánh xạ một scancode nhất định để một keycode. Bạn có thể xem xét /usr/include/linux/input.h để xem kernel của bạn sử dụng gì cho scancode để ánh xạ mã khóa - nó được gọi là a keymap.


Bản thảo

Tôi có thể cần phải từ bỏ một chút về tuyên bố trước đó rằng các Fnkhóa hoạt động hoàn toàn độc lập với HĐH; mà không đi sâu vào chi tiết kỹ thuật ở đây, ví dụ, upshot có vẻ là hệ điều hành của bạn có thể không "hỗ trợ" tất cả hoặc một số phím trên bàn phím của bạn Fn, ví dụ:


1
Cảm ơn, thông tin thú vị về các khóa Fn, Thật ra tôi muốn tìm phần nào của HĐH được scancodeliên kết với, ví dụ: "mã khóa 238".
soroosh

3
Có lẽ bài viết này có thể giúp chỉ cho bạn đi đúng hướng? "Các hạt nhân có riêng của mình scancodeđể keycodebảng vẽ bản đồ, vì vậy nó ánh xạ một scancode nhất định để một keycode Bạn có thể nhìn vào /usr/include/linux/input.h để xem những gì sử dụng kernel cho scancode để lập bản đồ keycode -. Nó được gọi là một keymap. "
hấp dẫn về natty 20/03/13

1
Bài viết đó rất hoàn hảo, Đây là những gì tôi đang tìm kiếm
soroosh 20/03/13
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.