Synetech 은 Fn키 에 대한 매우 읽기 쉬운 설명을 제공 합니다 .
기술적 세부 사항
키보드의 키를 누르면 키보드 컨트롤러 (키보드 내부 의 작은
IC 칩 )가 전기 회로를 감지하고이를 눌러 어떤 키를 눌렀는지 해독 한 다음 스캔 코드 를 마더 보드 로 보냅니다
. 운영 체제는 BIOS 에서 스캔 코드를 수신 한 다음 해당 키 누르기를 처리하기 위해 필요한 모든 조치를 수행합니다.
대부분의 키를 사용하면 간단합니다. A
키 를 누르면 키보드 컨트롤러가 스캔 코드를 마더 보드로 보낸 다음 스캔 코드를 OS 로 전달하여 일반적으로 'A'를 인쇄합니다. (OS에서 수정 자 키 중 하나가 현재 눌려 있음을 감지하면 다르게 작동 할 수 있습니다. 실제로 A수정자를 사용하거나 사용하지 않고 키를 누를 때 원하는대로 수행하도록 구성 할 수 있습니다 .)
이제 Fn열쇠는 특별하다. 자체적으로 누르면 키 가 독점적 으로 수정 자 키이며 일반적으로 자체적으로 아무것도하지 않기 때문에 아무 일도 일어나지 않습니다. 키보드 컨트롤러를 누른 상태에서 다른 키를 누르면 키보드 컨트롤러가이를 감지하고 내장 테이블을 통해 알려진 조합인지 확인합니다. 콤보가 테이블에 없으면 콤보를 무시하지만 콤보가 테이블에 있으면 연관된 스캔 코드를 찾아서 보냅니다.
OS는 무엇을 보게 되나요? 키의 스캔 코드와 다른 키의 스캔 코드 가 표시 되지 않습니다Fn . 대신 Fn- 콤보가 설정 한 기능과 관련된 단일 스캔 코드가 표시됩니다. 예를 들어 랩톱 제조업체가 볼륨을 줄이기 위해 Fn+ Down Arrow콤보를 설정
한 경우 OS는 Volume Down일부 키보드에 실제로있는 스캔 코드를 표시합니다 .
또한 Fn키 는 운영 체제와 독립적 으로 작동합니다.
또한 이 기사 는 올바른 방향을 알려주 는 데 도움 이 될 수 있습니다.
커널에는 자체 매핑 테이블이 있으므로 특정 스캔 코드를 키 코드 scancode
에
keycode
매핑합니다. /usr/include/linux/input.h에서 커널이 스캔 코드에서 키 코드로 매핑하는 데 사용하는 것을 확인할 수 있습니다
keymap
.
추신
Fn키가 전적으로 OS와 독립적 으로 작동 한다는 이전 주장에 대해 어느 정도 회복해야 할 수도 있습니다 . 더 자세한 기술 정보를 보지 않으면 OS가 키보드 Fn키 의 일부 또는 전부를 "지원"하지 않을 수 있습니다 .
scancode
"keycode 238"과 같은 OS 처리 부분을 찾고 싶습니다 .