Looking for an answer I came across this question. There's something like this:
The keycode X uses and the keycode the kernel uses are OFF BY 8 for "historical reasons". So take 97 - 8 = 89 and use 89 with the setkeycodes command (again as root):
Does anyone know what the historical reasons are and why the codes differ by 8?