esc key doesn't work, only fn + esc

Solution 1:

If you know that your keyboard has got the correct country identification and ISO/Ansi setting, you might try "xev" in Terminal app. After some moments it will open a small window left on top of your screen. Just press "esc" once, then any letter, next press "fn" and "esc". Last: Cmd-dot to stop the output. Depending on what your Terminal window tells you you might get some hint.

Another command in Terminal "xmodmap -pk" delivers a list of your keyboard's Keycodes and Keysym-values. Maybe there is s.th. unusual shown there. You might post relevant output here.