1. 각 tty당 키보드 플래그가 존재한다. 각각의 VC에는 고유의 NumLock, CapsLock, ScrollLock이 존재한다. 디폴트 값으로 이 키보드 플래그는 LED에 표시된다. 이것의 설정을 바꾸는 통상적인 방법은 해당되는 키를 누르는 것이다. (첨언: 어플리케이션 키모드에 있을 때 NumLock 키를 누르면 NumLock 상태를 바꾸지 않고 이스케이프 시퀀스를 발생시킨다. 어떠한 경우에라도 이 키를 먹도록 하고 싶다면 NumLock을 Bare_Num_Lock에 연결시켜두면 된다.
2. 각 tty당 디폴트 키보드 플래그가 존재한다.
재설정 신호가 들어오면 키보드를 초기화한다.
따라서 항상 NumLock이 켜지도록 할 수도 있다.
`setleds -D
라고 하면 된다.
3. led가 키보드 플래그를 반영하지 않고 뭔가 다른 것을 나타낼 수도 있다.
3A. 뭔가 다른 것중 하나는 커널에 있는 세개의 비트로서, 사용자가
어떤 하드웨어나 소프트웨어 상태를 감시하기 위해 사용될 수 있다.
이러한 기능을 원한다면 커널 소스를 편집하여 register_leds()
를
호출하도록 해야 한다.
3B. 사용자 프로그램이 LED에 표시되도록 하는 것도 여기에 해당된다. 따라서 이러한 기능을 사용하면 쓸만한 프로그램을 만들 수 있다. 이렇게 하려면 KDSETLED ioctl을 사용해야 한다.
후자와 같은 사용은 tty별로 적용되는 것이 아니지만 전자와 후자간의 선택은 tty당 할 수 있다.
요약: 각각의 tty에는 플래그 kbd->ledmode
가 있다.
이것이 LED_SHOW_FLAGS 값을 가지면 해당 tty에 키보드 플래그(NumLock 등)가
표시된다. 이것이 LED_SHOW_MEM 값을 가지면 선택된 3개의 메모리 주소가
표시된다. 이것이 LED_SHOW_IOCTL 값을 가지면 led는 KDSETLED ioctl가
할당한 가장 최신의 값을 보여준다.
하나만 더 추가하면, X는 ioctl을 사용하여 LED를 설정한다. 하지만 종료가
될 때 X를 띄웠던 VT를 재설정하지 못한다. 따라서 X를 사용하고 나면
디폴트 LED_SHOW_FLAGS 상태로 있지 않은 VT가 생길 수도 있다. 이런 경우
`setleds -L
'을 그 VT에서 실행하면 문제가 해결된다.
setleds(1)를 참조하라.