# Xorg and PS/2 keyboard



## YuryG (May 11, 2020)

After some upgrade (from ports) I've got a not working PS/2 keyboard in Xorg (MATE version of using it). Totally. But mouse is working.
I am on FreeBSD-11 STABLE (11.4-PRERELEASE FreeBSD 11.4-PRERELEASE #1 r360618) and have no EVDEV in kernel options.
(More than that, after trying to rebuild ports I've got localisation in MATE which I do not want at all (and even do not know where to switch it)! - but that's not the point, after rebuilding xorg-server with UDEV wrong localisation disappeared.)
I've tried xorg-server with DEVD, and with UDEV without luck (but with different output in Xorg.0.log).
I even put `XKB_DEFAULT_RULES=xorg` in ~.xinitrc.
At first with DEVD xorg-server I get this in the log: 
	
	



```
X.Org X Server 1.20.8
X Protocol Version 11, Revision 0
[  2453.534] Build Operating System: FreeBSD 11.4-PRERELEASE amd64 
[  2453.534] Current Operating System: FreeBSD 94.180.119.80 11.4-PRERELEASE FreeBSD 11.4-PRERELEASE #1 r360618: Mon May  4 23:43:14 +07 2020     yury@94.180.119.80:/usr/obj/usr/src/sys/GJA822M amd64
[  2453.534] Build Date: 12 May 2020  04:01:07AM
[  2453.534]  
[  2453.534] Current version of pixman: 0.40.0
[  2453.534]     Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
[  2453.534] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  2453.535] (==) Log file: "/var/log/Xorg.0.log", Time: Tue May 12 04:13:22 2020
[  2453.535] (==) Using config directory: "/usr/local/etc/X11/xorg.conf.d"
[  2453.535] (==) Using system config directory "/usr/local/share/X11/xorg.conf.d"
[  2453.536] (==) No Layout section.  Using the first Screen section.
[  2453.536] (==) No screen section available. Using defaults.
[  2453.536] (**) |-->Screen "Default Screen Section" (0)
[  2453.536] (**) |   |-->Monitor "<default monitor>"
[  2453.536] (==) No monitor specified for screen "Default Screen Section".
    Using a default monitor configuration.
[  2453.536] (**) Option "StandbyTime" "800"
[  2453.536] (**) Option "SuspendTime" "1100"
[  2453.536] (**) Option "OffTime" "1800"
[  2453.536] (==) Automatically adding devices
[  2453.536] (==) Automatically enabling devices
[  2453.536] (==) Not automatically adding GPU devices
[  2453.536] (==) Max clients allowed: 256, resource mask: 0x1fffff
[  2453.538] (**) FontPath set to:
    /usr/local/lib/X11/fonts/asana,
    /usr/local/lib/X11/fonts/cronos,
...
[  2453.538] (**) ModulePath set to "/usr/local/lib/xorg/modules"
[  2453.538] (II) The server relies on devd to provide the list of input devices.
    If no devices become available, reconfigure devd or disable AutoAddDevices.
[  2453.538] (II) Loader magic: 0x828e30
[  2453.538] (II) Module ABI versions:
[  2453.538]     X.Org ANSI C Emulation: 0.4
[  2453.538]     X.Org Video Driver: 24.1
[  2453.538]     X.Org XInput driver : 24.1
[  2453.538]     X.Org Server Extension : 10.0
[  2453.538] (--) PCI:*(1@0:5:0) 1002:9616:1043:8388 rev 0, Mem @ 0xd0000000/268435456, 0xfe9f0000/65536, 0xfe800000/1048576, I/O @ 0x0000c000/256, BIOS @ 0x????????/65536
[  2453.538] (II) "glx" will be loaded by default.
[  2453.538] (II) LoadModule: "glx"
[  2453.539] (II) Loading /usr/local/lib/xorg/modules/extensions/libglx.so
[  2453.542] (II) Module glx: vendor="X.Org Foundation"
[  2453.542]     compiled for 1.20.8, module version = 1.0.0
[  2453.542]     ABI class: X.Org Server Extension, version 10.0
[  2453.542] (==) Matched ati as autoconfigured driver 0
[  2453.542] (==) Matched modesetting as autoconfigured driver 1
[  2453.542] (==) Matched scfb as autoconfigured driver 2
[  2453.542] (==) Matched vesa as autoconfigured driver 3
[  2453.542] (==) Assigned the driver to the xf86ConfigLayout
[  2453.542] (II) LoadModule: "ati"
[  2453.542] (II) Loading /usr/local/lib/xorg/modules/drivers/ati_drv.so
[  2453.542] (II) Module ati: vendor="X.Org Foundation"
[  2453.542]     compiled for 1.20.8, module version = 19.1.0
[  2453.542]     Module class: X.Org Video Driver
[  2453.543]     ABI class: X.Org Video Driver, version 24.1
[  2453.543] (II) LoadModule: "radeon"
[  2453.543] (II) Loading /usr/local/lib/xorg/modules/drivers/radeon_drv.so
[  2453.544] (II) Module radeon: vendor="X.Org Foundation"
[  2453.544]     compiled for 1.20.8, module version = 19.1.0
[  2453.544]     Module class: X.Org Video Driver
[  2453.544]     ABI class: X.Org Video Driver, version 24.1
[  2453.544] (II) LoadModule: "modesetting"
[  2453.544] (II) Loading /usr/local/lib/xorg/modules/drivers/modesetting_drv.so
[  2453.545] (II) Module modesetting: vendor="X.Org Foundation"
[  2453.545]     compiled for 1.20.8, module version = 1.20.8
[  2453.545]     Module class: X.Org Video Driver
[  2453.545]     ABI class: X.Org Video Driver, version 24.1
[  2453.545] (II) LoadModule: "scfb"
[  2453.545] (II) Loading /usr/local/lib/xorg/modules/drivers/scfb_drv.so
[  2453.545] (II) Module scfb: vendor="X.Org Foundation"
[  2453.545]     compiled for 1.20.7, module version = 0.0.5
[  2453.545]     ABI class: X.Org Video Driver, version 24.1
[  2453.545] (II) LoadModule: "vesa"
[  2453.545] (II) Loading /usr/local/lib/xorg/modules/drivers/vesa_drv.so
[  2453.545] (II) Module vesa: vendor="X.Org Foundation"
[  2453.545]     compiled for 1.20.7, module version = 2.4.0
[  2453.545]     Module class: X.Org Video Driver
[  2453.545]     ABI class: X.Org Video Driver, version 24.1
...
[  2453.550] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[  2453.550] (II) scfb: driver for wsdisplay framebuffer: scfb
[  2453.550] (II) VESA: driver for VESA chipsets: vesa
[  2453.550] (--) Using syscons driver with X support (version 2.0)
[  2453.550] (--) using VT number 9

[  2453.554] (II) [KMS] Kernel modesetting enabled.
[  2453.554] (WW) Falling back to old probe method for modesetting
[  2453.554] (WW) Falling back to old probe method for scfb
[  2453.554] scfb trace: probe start
[  2453.554] scfb trace: probe done
[  2453.554] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[  2453.554] (II) RADEON(0): Creating default Display subsection in Screen section
    "Default Screen Section" for depth/fbbpp 24/32
[  2453.554] (==) RADEON(0): Depth 24, (--) framebuffer bpp 32
[  2453.555] (II) RADEON(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
[  2453.555] (==) RADEON(0): Default visual is TrueColor
[  2453.555] (==) RADEON(0): RGB weight 888
[  2453.555] (II) RADEON(0): Using 8 bits per RGB (8 bit DAC)
[  2453.555] (--) RADEON(0): Chipset: "ATI Radeon 3000 Graphics" (ChipID = 0x9616)
[  2453.555] (II) Loading sub module "fb"
[  2453.555] (II) LoadModule: "fb"
[  2453.555] (II) Loading /usr/local/lib/xorg/modules/libfb.so
[  2453.556] (II) Module fb: vendor="X.Org Foundation"
[  2453.556]     compiled for 1.20.8, module version = 1.0.0
[  2453.556]     ABI class: X.Org ANSI C Emulation, version 0.4
[  2453.556] (II) Loading sub module "dri2"
[  2453.556] (II) LoadModule: "dri2"
[  2453.556] (II) Module "dri2" already built-in
[  2454.076] (II) Loading sub module "glamoregl"
[  2454.076] (II) LoadModule: "glamoregl"
[  2454.076] (II) Loading /usr/local/lib/xorg/modules/libglamoregl.so
[  2454.130] (II) Module glamoregl: vendor="X.Org Foundation"
[  2454.130]     compiled for 1.20.8, module version = 1.0.1
[  2454.130]     ABI class: X.Org ANSI C Emulation, version 0.4
[  2454.145] (II) RADEON(0): glamor X acceleration enabled on AMD RS780 (DRM 2.49.0 / 11.4-PRERELEASE, LLVM 8.0.1)
[  2454.145] (II) RADEON(0): glamor detected, initialising EGL layer.
[  2454.145] (II) RADEON(0): KMS Color Tiling: enabled
[  2454.145] (II) RADEON(0): KMS Color Tiling 2D: enabled
[  2454.145] (==) RADEON(0): TearFree property default: auto
[  2454.145] (II) RADEON(0): KMS Pageflipping: enabled
...
[  2454.853] (II) config/devd: probing input devices...
[  2454.853] (WW) config/devd: console keyboard is already added, ignoring /dev/atkbd0
[  2454.854] (II) config/devd: detected mouse: hwid=0000, model=0000, type=0000, iftype=0004, buttons=10
[  2454.854] (II) config/devd: adding input device /dev/sysmouse
[  2454.854] (II) LoadModule: "mouse"
[  2454.854] (II) Loading /usr/local/lib/xorg/modules/input/mouse_drv.so
[  2454.855] (II) Module mouse: vendor="X.Org Foundation"
[  2454.855]     compiled for 1.20.8, module version = 1.9.3
[  2454.855]     Module class: X.Org XInput Driver
[  2454.855]     ABI class: X.Org XInput driver, version 24.1
[  2454.855] (II) Using input driver 'mouse' for 'sysmouse'
[  2454.855] (**) sysmouse: always reports core events
[  2454.855] (**) Option "Device" "/dev/sysmouse"
[  2454.855] (==) sysmouse: Protocol: "Auto"
[  2454.855] (**) sysmouse: always reports core events
[  2454.855] (==) sysmouse: Emulate3Buttons, Emulate3Timeout: 50
[  2454.855] (**) sysmouse: ZAxisMapping: buttons 4 and 5
[  2454.855] (**) sysmouse: Buttons: 5
[  2454.855] (**) Option "config_info" "devd:/dev/sysmouse"
[  2454.855] (II) XINPUT: Adding extended input device "sysmouse" (type: MOUSE, id 6)
[  2454.855] (**) sysmouse: (accel) keeping acceleration scheme 1
[  2454.855] (**) sysmouse: (accel) acceleration profile 0
[  2454.855] (**) sysmouse: (accel) acceleration factor: 2.000
[  2454.855] (**) sysmouse: (accel) acceleration threshold: 4
[  2454.855] (II) sysmouse: SetupAuto: hw.iftype is 4, hw.model is 0
[  2454.855] (II) sysmouse: SetupAuto: protocol is SysMouse
[  2454.855] (WW) config/devd: device /dev/ums0 already opened
...
[  2524.833] (II) config/devd: terminating backend...
[  2524.837] (II) UnloadModule: "mouse"
[  2524.860] (II) Server terminated successfully (0). Closing log file.
```
And with UDEV I get: 
	
	



```
[  3854.834] 
X.Org X Server 1.20.8
X Protocol Version 11, Revision 0
[  3854.834] Build Operating System: FreeBSD 11.4-PRERELEASE amd64 
[  3854.834] Current Operating System: FreeBSD 94.180.119.80 11.4-PRERELEASE FreeBSD 11.4-PRERELEASE #1 r360618: Mon May  4 23:43:14 +07 2020     yury@94.180.119.80:/usr/obj/usr/src/sys/GJA822M amd64
[  3854.834] Build Date: 12 May 2020  04:34:22AM
[  3854.834]  
[  3854.834] Current version of pixman: 0.40.0
[  3854.835]     Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
[  3854.835] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  3854.835] (==) Log file: "/var/log/Xorg.0.log", Time: Tue May 12 04:36:43 2020
[  3854.835] (==) Using config directory: "/usr/local/etc/X11/xorg.conf.d"
[  3854.835] (==) Using system config directory "/usr/local/share/X11/xorg.conf.d"
[  3854.836] (==) No Layout section.  Using the first Screen section.
[  3854.836] (==) No screen section available. Using defaults.
[  3854.836] (**) |-->Screen "Default Screen Section" (0)
[  3854.836] (**) |   |-->Monitor "<default monitor>"
[  3854.837] (==) No monitor specified for screen "Default Screen Section".
    Using a default monitor configuration.
[  3854.837] (**) Option "StandbyTime" "800"
[  3854.837] (**) Option "SuspendTime" "1100"
[  3854.837] (**) Option "OffTime" "1800"
[  3854.837] (==) Automatically adding devices
[  3854.837] (==) Automatically enabling devices
[  3854.837] (==) Not automatically adding GPU devices
[  3854.837] (==) Max clients allowed: 256, resource mask: 0x1fffff
[  3854.839] (**) FontPath set to:
    /usr/local/lib/X11/fonts/asana,
...
[  3854.839] (**) ModulePath set to "/usr/local/lib/xorg/modules"
[  3854.839] (II) The server relies on udev to provide the list of input devices.
    If no devices become available, reconfigure udev or disable AutoAddDevices.
[  3854.839] (II) Loader magic: 0x827d30
[  3854.839] (II) Module ABI versions:
[  3854.839]     X.Org ANSI C Emulation: 0.4
[  3854.839]     X.Org Video Driver: 24.1
[  3854.839]     X.Org XInput driver : 24.1
[  3854.839]     X.Org Server Extension : 10.0
[  3854.839] (--) PCI:*(1@0:5:0) 1002:9616:1043:8388 rev 0, Mem @ 0xd0000000/268435456, 0xfe9f0000/65536, 0xfe800000/1048576, I/O @ 0x0000c000/256, BIOS @ 0x????????/65536
[  3854.839] (II) "glx" will be loaded by default.
[  3854.839] (II) LoadModule: "glx"
[  3854.839] (II) Loading /usr/local/lib/xorg/modules/extensions/libglx.so
[  3854.843] (II) Module glx: vendor="X.Org Foundation"
[  3854.843]     compiled for 1.20.8, module version = 1.0.0
[  3854.843]     ABI class: X.Org Server Extension, version 10.0
[  3854.843] (==) Matched ati as autoconfigured driver 0
[  3854.843] (==) Matched modesetting as autoconfigured driver 1
[  3854.843] (==) Matched scfb as autoconfigured driver 2
[  3854.843] (==) Matched vesa as autoconfigured driver 3
[  3854.843] (==) Assigned the driver to the xf86ConfigLayout
[  3854.843] (II) LoadModule: "ati"
[  3854.843] (II) Loading /usr/local/lib/xorg/modules/drivers/ati_drv.so
[  3854.843] (II) Module ati: vendor="X.Org Foundation"
[  3854.843]     compiled for 1.20.8, module version = 19.1.0
[  3854.843]     Module class: X.Org Video Driver
[  3854.843]     ABI class: X.Org Video Driver, version 24.1
[  3854.844] (II) LoadModule: "radeon"
[  3854.844] (II) Loading /usr/local/lib/xorg/modules/drivers/radeon_drv.so
[  3854.845] (II) Module radeon: vendor="X.Org Foundation"
[  3854.845]     compiled for 1.20.8, module version = 19.1.0
[  3854.845]     Module class: X.Org Video Driver
[  3854.845]     ABI class: X.Org Video Driver, version 24.1
[  3854.845] (II) LoadModule: "modesetting"
[  3854.845] (II) Loading /usr/local/lib/xorg/modules/drivers/modesetting_drv.so
[  3854.846] (II) Module modesetting: vendor="X.Org Foundation"
[  3854.846]     compiled for 1.20.8, module version = 1.20.8
[  3854.846]     Module class: X.Org Video Driver
[  3854.846]     ABI class: X.Org Video Driver, version 24.1
[  3854.846] (II) LoadModule: "scfb"
[  3854.846] (II) Loading /usr/local/lib/xorg/modules/drivers/scfb_drv.so
[  3854.846] (II) Module scfb: vendor="X.Org Foundation"
[  3854.846]     compiled for 1.20.7, module version = 0.0.5
[  3854.846]     ABI class: X.Org Video Driver, version 24.1
[  3854.846] (II) LoadModule: "vesa"
[  3854.846] (II) Loading /usr/local/lib/xorg/modules/drivers/vesa_drv.so
[  3854.846] (II) Module vesa: vendor="X.Org Foundation"
[  3854.846]     compiled for 1.20.7, module version = 2.4.0
[  3854.846]     Module class: X.Org Video Driver
[  3854.846]     ABI class: X.Org Video Driver, version 24.1
...
[  3854.851] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[  3854.851] (II) scfb: driver for wsdisplay framebuffer: scfb
[  3854.851] (II) VESA: driver for VESA chipsets: vesa
[  3854.851] (--) Using syscons driver with X support (version 2.0)
[  3854.851] (--) using VT number 9

[  3854.856] (II) [KMS] Kernel modesetting enabled.
[  3854.856] (WW) Falling back to old probe method for modesetting
[  3854.856] (WW) Falling back to old probe method for scfb
[  3854.856] scfb trace: probe start
[  3854.856] scfb trace: probe done
[  3854.856] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[  3854.856] (II) RADEON(0): Creating default Display subsection in Screen section
    "Default Screen Section" for depth/fbbpp 24/32
[  3854.856] (==) RADEON(0): Depth 24, (--) framebuffer bpp 32
[  3854.856] (II) RADEON(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
[  3854.856] (==) RADEON(0): Default visual is TrueColor
[  3854.856] (==) RADEON(0): RGB weight 888
[  3854.856] (II) RADEON(0): Using 8 bits per RGB (8 bit DAC)
[  3854.856] (--) RADEON(0): Chipset: "ATI Radeon 3000 Graphics" (ChipID = 0x9616)
[  3854.857] (II) Loading sub module "fb"
[  3854.857] (II) LoadModule: "fb"
[  3854.857] (II) Loading /usr/local/lib/xorg/modules/libfb.so
[  3854.858] (II) Module fb: vendor="X.Org Foundation"
[  3854.858]     compiled for 1.20.8, module version = 1.0.0
[  3854.858]     ABI class: X.Org ANSI C Emulation, version 0.4
[  3854.858] (II) Loading sub module "dri2"
[  3854.858] (II) LoadModule: "dri2"
[  3854.858] (II) Module "dri2" already built-in
[  3855.432] (II) Loading sub module "glamoregl"
[  3855.432] (II) LoadModule: "glamoregl"
[  3855.433] (II) Loading /usr/local/lib/xorg/modules/libglamoregl.so
[  3855.493] (II) Module glamoregl: vendor="X.Org Foundation"
[  3855.493]     compiled for 1.20.8, module version = 1.0.1
[  3855.493]     ABI class: X.Org ANSI C Emulation, version 0.4
[  3855.508] (II) RADEON(0): glamor X acceleration enabled on AMD RS780 (DRM 2.49.0 / 11.4-PRERELEASE, LLVM 8.0.1)
...
[  3855.689] (II) RADEON(0): Setting screen physical size to 270 x 203
[  3856.264] (II) config/udev: Adding input device AT Keyboard (/dev/atkbd0)
[  3856.264] (II) LoadModule: "kbd"
[  3856.265] (II) Loading /usr/local/lib/xorg/modules/input/kbd_drv.so
[  3856.265] (II) Module kbd: vendor="X.Org Foundation"
[  3856.265]     compiled for 1.20.8, module version = 1.9.0
[  3856.265]     Module class: X.Org XInput Driver
[  3856.265]     ABI class: X.Org XInput driver, version 24.1
[  3856.265] (II) Using input driver 'kbd' for 'AT Keyboard'
[  3856.265] (**) AT Keyboard: always reports core events
[  3856.265] (**) AT Keyboard: always reports core events
[  3856.265] (**) Option "Protocol" "standard"
[  3856.265] (**) Option "Device" "/dev/atkbd0"
[  3856.265] (EE) AT Keyboard: cannot open "/dev/atkbd0"
[  3856.265] (EE) PreInit returned 8 for "AT Keyboard"
[  3856.265] (II) UnloadModule: "kbd"
[  3856.265] (II) config/udev: Adding input device System mouse (/dev/sysmouse)
[  3856.265] (II) LoadModule: "mouse"
[  3856.265] (II) Loading /usr/local/lib/xorg/modules/input/mouse_drv.so
[  3856.266] (II) Module mouse: vendor="X.Org Foundation"
[  3856.266]     compiled for 1.20.8, module version = 1.9.3
[  3856.266]     Module class: X.Org XInput Driver
[  3856.266]     ABI class: X.Org XInput driver, version 24.1
[  3856.266] (II) Using input driver 'mouse' for 'System mouse'
[  3856.266] (**) System mouse: always reports core events
[  3856.266] (**) Option "Device" "/dev/sysmouse"
[  3856.266] (==) System mouse: Protocol: "Auto"
[  3856.266] (**) System mouse: always reports core events
[  3856.266] (==) System mouse: Emulate3Buttons, Emulate3Timeout: 50
[  3856.266] (**) System mouse: ZAxisMapping: buttons 4 and 5
[  3856.266] (**) System mouse: Buttons: 5
[  3856.266] (**) Option "config_info" "udev:/dev/sysmouse"
[  3856.266] (II) XINPUT: Adding extended input device "System mouse" (type: MOUSE, id 6)
[  3856.266] (**) System mouse: (accel) keeping acceleration scheme 1
[  3856.266] (**) System mouse: (accel) acceleration profile 0
[  3856.266] (**) System mouse: (accel) acceleration factor: 2.000
[  3856.266] (**) System mouse: (accel) acceleration threshold: 4
[  3856.266] (II) System mouse: SetupAuto: hw.iftype is 4, hw.model is 0
[  3856.266] (II) System mouse: SetupAuto: protocol is SysMouse
[  3856.266] (II) config/udev: Adding input device Logitech USB Optical Mouse (/dev/ums0)
[  3856.266] (II) Using input driver 'mouse' for 'Logitech USB Optical Mouse'
[  3856.266] (**) Logitech USB Optical Mouse: always reports core events
[  3856.266] (**) Option "Device" "/dev/ums0"
[  3856.266] (==) Logitech USB Optical Mouse: Protocol: "Auto"
[  3856.266] (**) Logitech USB Optical Mouse: always reports core events
[  3856.266] (EE) xf86OpenSerial: Cannot open device /dev/ums0
    Device busy.
[  3856.266] (EE) Logitech USB Optical Mouse: cannot open input device
[  3856.266] (EE) PreInit returned 2 for "Logitech USB Optical Mouse"
[  3856.266] (II) UnloadModule: "mouse"
...
[  3890.430] (II) UnloadModule: "mouse"
[  3890.451] (II) Server terminated successfully (0). Closing log file.
```
USB mouse works smoothly either way, but my keyboard is totally unworking, even NUM-lock led does not turn on.
I am devastated. Please, some help needed.


----------



## YuryG (May 12, 2020)

Well, I had inserted EVDEV_SUPPORT in kernel, now I've got keyboard in Xorg after rebuilding kernel and world. (I do not see rebuilding all with different kernel options to be a solution.)
But now I do not have 105-keys, but only 104-keys keyboard. "Menu" key became silent.
Why is that?


----------



## YuryG (May 12, 2020)

Now I have the problem with the 105th key. In my case it is a "MENU" key, it is not working (no reaction on pressing it). When I issue `setxkbmap -print` I get this: 
	
	



```
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)"    };
    xkb_types     { include "complete"    };
    xkb_compat    { include "complete"    };
    xkb_symbols   { include "pc+us+ru:2+inet(evdev)+group(lwin_toggle)+group(rwin_toggle)+level3(ralt_switch_multikey)"    };
    xkb_geometry  { include "pc(pc104)"    };
};
```
, and `setxkbmap -geometry "pc(pc105)"` doesn't change a thing. If I understand that I can issue it from a terminal window under MATE.
Also I've tried to add this Xorg.conf file: 
	
	



```
Section    "InputClass"
    Identifier    "All Keyboards"
#    Driver        "keyboard"
    MatchIsKeyboard    "yes"
    Option        "XkbLayout" "us, ru"
    Option        "XkbVariant" "nodeadkeys"
    Option        "XkbModel" "pc105"
    Option        "XkbGeometry" "pc(pc105)"
EndSection
```
 It is loaded in Xorg without error messages in Xogr.0.log, but also without luck.


----------



## YuryG (May 15, 2020)

Also probed 
	
	



```
#XKB_DEFAULT_RULES=xorg
#env XKB_DEFAULT_RULES=xorg
```
 in ~/.xinitrc, also without luck.


----------



## T-Daemon (May 15, 2020)

YuryG said:


> In my case it is a "MENU" key, it is not working (no reaction on pressing it).



What does `xev -event keyboard <press “MENU” key>` print? Please post output.


----------



## YuryG (May 15, 2020)

T-Daemon said:


> What does `xev -event keyboard <press “MENU” key>` print? Please post output.




```
> xev -event keyboard
Outer window is 0x3800001, inner window is 0x3800002

KeymapNotify event, serial 18, synthetic NO, window 0x0,
    keys:  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  

KeyPress event, serial 25, synthetic NO, window 0x3800001,
    root 0x6b1, subw 0x0, time 1364699, (502,306), root:(506,355),
    state 0x10, keycode 147 (keysym 0x1008ff65, XF86MenuKB), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x3800001,
    root 0x6b1, subw 0x0, time 1364775, (502,306), root:(506,355),
    state 0x10, keycode 147 (keysym 0x1008ff65, XF86MenuKB), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False
```

So, the key is definitely working by itself. )


----------



## T-Daemon (May 16, 2020)

Good, there is a response from the key ( just to make sure ). After you have set `Option        "XkbModel" "pc105"` have you checked the layout? Please post output of `setxkbmap -print -verbose 10`.

Which brand and model is the keyboard?

Have you had bind a keyboard shortcut to the _Menu_ key? If you had, check that also in MATE’s keyboard configuration.

`Option        "XkbVariant" "nodeadkeys"` has no effect here, there are no dead key variants for `us` and `ru` ( /usr/local/share/X11/xkb/rules/base.lst ../evdev.lst ../xorg.lst )


----------



## YuryG (May 16, 2020)

T-Daemon said:


> Good, there is a response from the key ( just to make sure ). After you have set `Option        "XkbModel" "pc105"` have you checked the layout? Please post output of `setxkbmap -print -verbose 10`.


Thank you for the answer.
Yes, after addition of `Option        "XkbModel" "pc105"` I even rebooted, not only restarted Xorg. (I changed locale again.)

```
$  setxkbmap -print -verbose 10.
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/local/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      geniuscomfy
layout:     us,ru
variant:    ,
options:    terminate:ctrl
_alt_bksp,grp:lwin_toggle,grp:rwin_toggle,lv3:ralt_switch_multikey
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+us+ru:2+inet(evdev)+group(lwin_toggle)+group(rwin_toggle)+level3(ralt_switch_multikey)
geometry:   pc(pc104)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)"    };
    xkb_types     { include "complete"    };
    xkb_compat    { include "complete"    };
    xkb_symbols   { include "pc+us+ru:2+inet(evdev)+group(lwin_toggle)+group(rwin_toggle)+level3(ralt_switch_multikey)"    };
    xkb_geometry  { include "pc(pc104)"    };
};
$ locale
LANG=en_GB.UTF-8
LC_CTYPE="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_ALL=
```



> Which brand and model is the keyboard?


It is a basic Genius PS/2 model for the Russian market, on the back side of it "K627" is written. No additional "multimedia" etc. keys, only "power", "sleep" and "wake" that I do not use.



> Have you had bind a keyboard shortcut to the _Menu_ key? If you had, check that also in MATE’s keyboard configuration.


No, for the Layout change I use _Win_ (left or right), and for Compose I use standard _RightShift_+_RightAlt_. In MATE's ...->Keyboard...->Layouts->Show every key is shown highlighted when pressed but _Menu._ And the keyboard picture attached is quite right for my case.



> `Option        "XkbVariant" "nodeadkeys"` has no effect here, there are no dead key variants for `us` and `ru` ( /usr/local/share/X11/xkb/rules/base.lst ../evdev.lst ../xorg.lst )


Thank you, deleted this line.


----------



## tingo (May 16, 2020)

T-Daemon said:


> Good, there is a response from the key ( just to make sure ). After you have set `Option "XkbModel" "pc105"` have you checked the layout? Please post output of  setxkbmap -print -verbose 10.


That is useful - thanks!


----------



## T-Daemon (May 17, 2020)

tingo said:


> T-Daemon said:
> 
> 
> > Good, there is a response from the key ( just to make sure ). After you have set `Option "XkbModel" "pc105"` have you checked the layout? Please post output of  setxkbmap -print -verbose 10.
> ...


Got it from the archlinux wiki. Their documentations are quite comprehensive. I often search there for certain problems on FreeBSD ( none OS related ).


----------



## T-Daemon (May 17, 2020)

There are a few _Genius_ models listed in the xkeyboard-config(7) manual ( package responsible for auto-configuration and creating xkeyboard layouts ). You could try them, e.g.: `setxkbmap -model genius` ( or geniuscomfy2, geniuskb19e, geniusskkb2050hs ).  Every time after executing the command and pressing the _Menu_ key also check the layout with `setxkbmap -print -verbose 10`.   Apropos the _Genius K627_ is a 104 key keyboard:









						KEYBOARD K627 GENIUS  | eBay
					

Find many great new & used options and get the best deals for KEYBOARD K627 GENIUS at the best online prices at eBay! Free shipping for many products!



					www.ebay.com
				




Setting `Option        "XkbModel" "pc105"` won’t have a effect. Models with lesser keys ( pc102, pc101 ) should work.


----------



## YuryG (May 17, 2020)

T-Daemon said:


> There are a few _Genius_ models listed in the xkeyboard-config(7) manual ( package responsible for auto-configuration and creating xkeyboard layouts ). You could try them, e.g.: `setxkbmap -model genius` ( or geniuscomfy2, geniuskb19e, geniusskkb2050hs ).  Every time after executing the command and pressing the _Menu_ key also check the layout with `setxkbmap -print -verbose 10`.   Apropos the _Genius K627_ is a 104 key keyboard:
> 
> 
> 
> ...


Oh, really, haven't an idea to count keys. ) Just added the one I do have not working to written by `setxkbmap`. Occurs they are 104 in number. It's my keyboard model on Ebay, and the image is the same as on a previously attached by me picture from MATE.

No luck changing `-model` (among Geniuses at least). Just the same, but models change.

```
$ setxkbmap -model genius
$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/local/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      genius
layout:     us,ru
variant:    ,
options:    terminate:ctrl
_alt_bksp,grp:lwin_toggle,grp:rwin_toggle,lv3:ralt_switch_multikey
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+us+ru:2+inet(evdev)+group(lwin_toggle)+group(rwin_toggle)+level3(ralt_switch_multikey)
geometry:   pc(pc104)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)"    };
    xkb_types     { include "complete"    };
    xkb_compat    { include "complete"    };
    xkb_symbols   { include "pc+us+ru:2+inet(evdev)+group(lwin_toggle)+group(rwin_toggle)+level3(ralt_switch_multikey)"    };
    xkb_geometry  { include "pc(pc104)"    };
};
$ setxkbmap -model geniuscomfy2
$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/local/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      geniuscomfy2
layout:     us,ru
variant:    ,
options:    terminate:ctrl
_alt_bksp,grp:lwin_toggle,grp:rwin_toggle,lv3:ralt_switch_multikey
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+us+ru:2+inet(evdev)+group(lwin_toggle)+group(rwin_toggle)+level3(ralt_switch_multikey)
geometry:   pc(pc104)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)"    };
    xkb_types     { include "complete"    };
    xkb_compat    { include "complete"    };
    xkb_symbols   { include "pc+us+ru:2+inet(evdev)+group(lwin_toggle)+group(rwin_toggle)+level3(ralt_switch_multikey)"    };
    xkb_geometry  { include "pc(pc104)"    };
};
$ setxkbmap -model geniuskb19e
$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/local/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      geniuskb19e
layout:     us,ru
variant:    ,
options:    terminate:ctrl
_alt_bksp,grp:lwin_toggle,grp:rwin_toggle,lv3:ralt_switch_multikey
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+us+ru:2+inet(evdev)+group(lwin_toggle)+group(rwin_toggle)+level3(ralt_switch_multikey)
geometry:   pc(pc104)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)"    };
    xkb_types     { include "complete"    };
    xkb_compat    { include "complete"    };
    xkb_symbols   { include "pc+us+ru:2+inet(evdev)+group(lwin_toggle)+group(rwin_toggle)+level3(ralt_switch_multikey)"    };
    xkb_geometry  { include "pc(pc104)"    };
};
$ setxkbmap -model geniusskkb2050hs
$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/local/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      geniusskkb2050hs
layout:     us,ru
variant:    ,
options:    terminate:ctrl
_alt_bksp,grp:lwin_toggle,grp:rwin_toggle,lv3:ralt_switch_multikey
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+us+ru:2+inet(evdev)+group(lwin_toggle)+group(rwin_toggle)+level3(ralt_switch_multikey)
geometry:   pc(pc104)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)"    };
    xkb_types     { include "complete"    };
    xkb_compat    { include "complete"    };
    xkb_symbols   { include "pc+us+ru:2+inet(evdev)+group(lwin_toggle)+group(rwin_toggle)+level3(ralt_switch_multikey)"    };
    xkb_geometry  { include "pc(pc104)"    };
};
```

May be some wrong association happen to that key? But there's no notion of this in `options` output.


----------



## T-Daemon (May 18, 2020)

Please execute from a X terminal

`xkbcomp $DISPLAY keymap.xkb`

run

`cat keymap.xkb | grep -i menu`

The first of the printed lines should be `<MENU> = <key code number>` , does the key code correspond with the xev(1) output of 147.  If it doesn’t, change the line to `<MENU> = 147;`

For testing the modified keymap layout execute:

`xkbcomp keymap.xkb $DISPLAY`

Check _MENU_ key, report back.


----------



## YuryG (May 18, 2020)

T-Daemon said:


> Please execute from a X terminal
> 
> `xkbcomp $DISPLAY keymap.xkb`
> 
> ...




```
$ xkbcomp $DISPLAY keymap.xkb
$ cat keymap.xkb | grep -i menu
    alias <MENU> = <COMP>;
    key <COMP> {         [            Menu ] };
    key <I147> {         [      XF86MenuKB ] };
                { <MENU>, "SMOD",   1, color="grey20" },
```
I get this. Not sure, if I have to alter keymap.xkb.
And earlier in the file `<COMP> = 135`, `<I147> = 147`.


----------



## T-Daemon (May 18, 2020)

Change in keymap.xkb, line
`<I147> = 147;` to `<MENU> = 147;` 

`key <I147> {         [      XF86MenuKB ] };`
to
`key <MENU> {         [      XF86MenuKB ] };`

run
`xkbcomp keymap.xkb $DISPLAY`

test _MENU_ key.

If the key remains silent, post keymap.xkb as attachment.


----------



## YuryG (May 18, 2020)

T-Daemon said:


> Change in keymap.xkb, line
> `<I147> = 147;` to `<MENU> = 147;`
> 
> `key <I147> {         [      XF86MenuKB ] };`
> ...


Changed as you suggested.

```
$ xkbcomp keymap.xkb $DISPLAY
Warning:          Attempt to create alias with the name of a real key
                  Alias "<MENU> = <COMP>" ignored
Warning:          No symbols defined for <AB11> (keycode 97)
Warning:          No symbols defined for <JPCM> (keycode 103)
Warning:          No symbols defined for <I120> (keycode 120)
Warning:          No symbols defined for <AE13> (keycode 132)
Warning:          No symbols defined for <I149> (keycode 149)
Warning:          No symbols defined for <I154> (keycode 154)
Warning:          No symbols defined for <I168> (keycode 168)
Warning:          No symbols defined for <I178> (keycode 178)
Warning:          No symbols defined for <I183> (keycode 183)
Warning:          No symbols defined for <I184> (keycode 184)
Warning:          No symbols defined for <FK19> (keycode 197)
Warning:          No symbols defined for <FK24> (keycode 202)
Warning:          No symbols defined for <I217> (keycode 217)
Warning:          No symbols defined for <I219> (keycode 219)
Warning:          No symbols defined for <I222> (keycode 222)
Warning:          No symbols defined for <I230> (keycode 230)
Warning:          No symbols defined for <I247> (keycode 247)
Warning:          No symbols defined for <I248> (keycode 248)
Warning:          No symbols defined for <I249> (keycode 249)
Warning:          No symbols defined for <I250> (keycode 250)
Warning:          No symbols defined for <I252> (keycode 252)
Warning:          No symbols defined for <I253> (keycode 253)
$ xkbcomp $DISPLAY keymap_new.xkb
$ cat keymap_new.xkb | grep -i menu
    <MENU> = 147;
    key <COMP> {         [            Menu ] };
    key <MENU> {         [      XF86MenuKB ] };
                { <MENU>, "SMOD",   1, color="grey20" },
```
Still no luck.


----------



## YuryG (May 18, 2020)

But, if I swap [ Menu] and [ XF86MenuKB], the _Menu_ key start working. (And deleted one alias line).
Although, I'm not sure if it is a correct solution. Since, it is not shown pressed in MATE's System->Preferences->Hardware->Keyboard->Layouts->Show... (All other keys, except _PrtScr/SysRq_ are shown when pressed in other shade).


----------



## T-Daemon (May 19, 2020)

YuryG said:


> But, if I swap [ Menu] and [ XF86MenuKB], the _Menu_ key start working.


Great. I have no MENU keyed keyboard, couldn’t verify.



YuryG said:


> (And deleted one alias line).


You could try swapping _MENU_ and _COMP_: alias `<MENU> = <COMP>;` to `alias <COMP> = <MENU>;` .



YuryG said:


> Although, I'm not sure if it is a correct solution.


If it wasn’t correct it wouldn’t work. It might be a crude hack, but for a textbook solution one needs to dig into the documentations.



YuryG said:


> Since, it is not shown pressed in MATE's System->Preferences->Hardware->Keyboard->Layouts->Show... (All other keys, except _PrtScr/SysRq_ are shown when pressed in other shade).


It’s not essential for the key to work having MATE’s keyboard preferences not showing the key functionality visually. I wouldn’t be concerned about such a minor flaw, what important is, the key is working.


----------



## YuryG (May 21, 2020)

T-Daemon said:


> Great. I have no MENU keyed keyboard, couldn’t verify.
> 
> You could try swapping _MENU_ and _COMP_: alias `<MENU> = <COMP>;` to `alias <COMP> = <MENU>;` .
> ...


Thank you.
And how should I make the changes permanent during reboots (restarts of Xorg?)?


----------



## T-Daemon (May 21, 2020)

You can make it permanent as followed:

`mv keymap.xkb .Xkeymap`

 ~/.xinitrc

```
test -f ~/.Xkeymap && xkbcomp ~/.Xkeymap $DISPLAY

mate-session
```


----------



## YuryG (Jun 25, 2020)

T-Daemon said:


> You can make it permanent as followed:
> 
> `mv keymap.xkb .Xkeymap`
> 
> ...



For some reason this do not work and I have to execute the line manually every time. What could cause it? I even tried to put the line before and after MATE start command. Or may be I use ~/.xinitrc wrongly?

```
$ cat ~/.xinitrc
#!/bin/sh

#XKB_DEFAULT_RULES=xorg
#env XKB_DEFAULT_RULES=xorg

xset dpms 600 900 1800

test -f ~/.Xkeymap && xkbcomp ~/.Xkeymap $DISPLAY

exec /usr/local/bin/mate-session

xset dpms 600 900 1800

test -f ~/.Xkeymap && xkbcomp ~/.Xkeymap $DISPLAY
```


----------



## SirDice (Jun 25, 2020)

YuryG said:


> What could cause it?


Put your commands _before_  the  `exec`.  The `exec` passes control  to whatever is being executed, replacing the current  process.  In other words  everything _after_ the `exec`  is never executed.


----------



## YuryG (Jun 25, 2020)

SirDice said:


> Put your commands _before_  the  `exec`.  The `exec` passes control  to whatever is being executed, replacing the current  process.  In other words  everything _after_ the `exec`  is never executed.


Thank you, I thought so. But it did not work, so I tried to copy it after `exec` also.
Is there any $DISPLAY before Xorg server started, and how would `xkbmap` work then? So, I'm not sure that what I need could be accomplished via .xinirc, could it?


----------



## T-Daemon (Jun 25, 2020)

YuryG said:


> But it did not work, so I tried to copy it after `exec` also.



Try setting sleep(1):

```
sleep 5 && test -f ~/.Xkeymap && xkbcomp ~/.Xkeymap $DISPLAY &
```

Could you please check `sysctl kern.evdev.rcpt_mask`. If the value of the variable is not 12 try setting as root `sysctl kern.evdev.rcpt_mask=12` and try the MENU key again, without loading the keymap file.


----------



## YuryG (Jun 25, 2020)

T-Daemon said:


> Try setting sleep(1):
> 
> ```
> sleep 5 && test -f ~/.Xkeymap && xkbcomp ~/.Xkeymap $DISPLAY &
> ...


No, the value "12" do not help for that `sysctl`. So, I have to use the `sleep` trick with background processing then.


----------



## T-Daemon (Jun 27, 2020)

YuryG said:


> No, the value "12" do not help for that  sysctl.


Did you tried setting the value before starting xorg or after? It must be set before starting xorg.


----------



## YuryG (Jun 27, 2020)

T-Daemon said:


> Did you tried setting the value before starting xorg or after? It must be set before starting xorg.


Before surely.


----------

