Este es un error de Debian de larga data. Parece estar relacionado con un error subyacente del kernel que se solucionó hace mucho tiempo. El problema parece haber sido que Caps_Lock no funcionó para caracteres no ASCII, por lo que la solución fue asignar Shift_Lock o CtrlL_Lock a la tecla de bloqueo de mayúsculas en su lugar.
En el lado de Debian, el problema lo crea ckbcomp que es utilizado por console-setup para crear el mapa de teclas de la consola a partir de la descripción del teclado XKB. Tenga en cuenta que el código original al que se hace referencia en el informe de error usando Shift_Lock parece haber sido reemplazado por un código diferente que cambia por CtrlL_Lock en cambio. Si está interesado, puede buscar usos del broken_caps variable en el ckbcomp Guión Perl.
No tengo idea de si el código sigue siendo necesario por algún motivo, tal vez valga la pena eliminar el informe de error. Sin embargo, la solución es colocar la siguiente línea en /etc/kbd/remap y debería arreglarse después de reiniciar:
s/CtrlL_Lock/Caps_Lock/
O para una solución temporal hasta el próximo reinicio, ejecute lo siguiente en un tty sesión:
dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | sudo loadkeys
Actualizar
Parece que /etc/kbd/remap solo se usa realmente si setupcon no está disponible. Una mejor solución es poner la siguiente línea en /etc/rc.local :
dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | loadkeys
Encontré soluciones para Debian 6 y Debian 7.
Debian 6
Pon lo siguiente al final del /etc/console-setup/remap.inc archivo:
keycode 58 = Caps_Lock
Luego ejecuta setupcon
Debian 7
Pon lo siguiente al final del /etc/default/keyboard guión:
dumpkeys | sed -e "s/keycode 58 = CtrlL_Lock/keycode 58 = Caps_Lock/" | \
loadkeys 2>&1 >/dev/null
Luego ejecuta setupcon
Tenga en cuenta que hay dos espacios entre el código clave y 58. La redirección a /dev/null simplemente suprime la molesta salida de la consola.