Bug 220562

Summary: [patch] x11-servers/xorg-server: fix terminal initialization in absence of xf86-input-keyboard driver
Product: Ports & Packages Reporter: Vladimir Kondratyev <wulf>
Component: Individual Port(s)Assignee: freebsd-x11 (Nobody) <x11>
Status: Closed FIXED    
Severity: Affects Some People CC: o.hushchenkov, rezny, zeising
Priority: --- Keywords: patch
Version: LatestFlags: bugzilla: maintainer-feedback? (x11)
Hardware: Any   
OS: Any   
See Also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=196678
Bug Depends on:    
Bug Blocks: 196678    
Attachments:
Description Flags
x11-servers.xorg-server.patch none

Description Vladimir Kondratyev freebsd_committer freebsd_triage 2017-07-08 15:16:10 UTC
Created attachment 184182 [details]
x11-servers.xorg-server.patch

Xorg-server is the program that shares framebuffer with the kernel terminal emulator. To avoid interference it must disable terminal output on start and restore on finish.
Currently it is done partially by xorg-server itself, partially by and xf86-input-keyboard driver. Switching to xf86-input-evdev or xf86-input-libinput as keyboard events source disables xf86-input-keyboard and broke terminal handling.
Attached patch fixes terminal initialization with copy-pasting missing chunks of code from xf86-input-keyboard to xorg-server. Similar changes are already done in Linux-specific parts of xorg-server (See hw/xfree86/os-support/linux/lnx_init.c).

Attached patch:
1. Disables processing of special keys (CTRL-C, ALT-Fn) by switching terminal keyboard to K_RAW mode.
2. Turns off annoying bell on input queue overflow.
3. Disables terminal echoing.

It is believed that switching terminal to KD_GRAPHICS mode should do #3, but that is wrong at least on VT consoles.
Comment 1 Matthew Rezny freebsd_committer freebsd_triage 2017-07-31 04:48:02 UTC
I have integrated this, with improvements (using SYSCALL), into my 1.19 WIP.
Comment 2 Niclas Zeising freebsd_committer freebsd_triage 2020-02-21 08:45:18 UTC
This was merged as part of the big xorg-server update in r526589.