I have a Thinkpad with a Brazilian keyboard (BR / ABNT2). With the standard FreeBSD map "br.kbd", almost everything works fine, however the "/" and "?" (shift+/) keys do not respond.
This is not the fault of the FreeBSD keyboard map, but rather the lack of standardization by the manufacturer Lenovo. In Windows, you also need to install a specific driver for these keys to start working.
The name of the driver for Windows is PortCode.exe
Solution:
Install kbdscan:
pkg install kbdscan
Run the program and press the desired key, you will see the key code. In my case, "90".
Copy the file "br.kbd" to "br_thinkpad.kbd" in /usr/share/vt/keymaps.
In the new file "br_thinkpad.kbd", change the line corresponding to the code issued by kbdscan, in my case the 90 which has the following content (this keyboard does not have the right-hand Ctrl, it should not interfere with the functioning of other keys):
090 rctrl rctrl rctrl rctrl rctrl rctrl rctrl rctrl O
Change to:
090 '/' '?' nop nop 0xb0 '?' nop nop O
In /etc/rc.conf, change keymap="br.kbd" to "br_thinkpad.kbd", reboot the system and the "/" and "?" should work normally.
This is not the fault of the FreeBSD keyboard map, but rather the lack of standardization by the manufacturer Lenovo. In Windows, you also need to install a specific driver for these keys to start working.
The name of the driver for Windows is PortCode.exe
Solution:
Install kbdscan:
pkg install kbdscan
Run the program and press the desired key, you will see the key code. In my case, "90".
Copy the file "br.kbd" to "br_thinkpad.kbd" in /usr/share/vt/keymaps.
In the new file "br_thinkpad.kbd", change the line corresponding to the code issued by kbdscan, in my case the 90 which has the following content (this keyboard does not have the right-hand Ctrl, it should not interfere with the functioning of other keys):
090 rctrl rctrl rctrl rctrl rctrl rctrl rctrl rctrl O
Change to:
090 '/' '?' nop nop 0xb0 '?' nop nop O
In /etc/rc.conf, change keymap="br.kbd" to "br_thinkpad.kbd", reboot the system and the "/" and "?" should work normally.