Wiki: https://fedoraproject.org/wiki/Changes/UseKmsconVTConsole
Discussion Thread: https://discussion.fedoraproject.org/t/172602
**This is a proposed Change for Fedora Linux.**
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.
== Summary ==
This change is to replace the kernel console '''fbcon''' with the userspace console '''kmscon''' in Fedora, to provide an enhanced and more secure console for Fedora users.
The long term goal is also to deprecate fbcon/fbdev emulation in the kernel, and this is the first step in this direction.
== Owner ==
* Name: [[User:jfalempe| Jocelyn Falempe]]
* Email: <jfalempe@redhat.com>
== Detailed Description ==
'''fbcon''' is a terminal emulator in the kernel, which is not well maintained (it lost scrolling support a few years ago due to a CVE), and requires a fbdev emulation layer in the kernel, as all GPU drivers are using the newer drm interface. It still requires userspace executable like getty and bash to be useful.
'''kmscon''' is a simple terminal emulator based on linux kernel mode setting (KMS). It can replace fbcon for VT console, and provide better keyboard support, and better security.
This change will do the following:
Install kmscon by default, and update the symbolic link /usr/lib/systemd/system/autovt@.service to point to kmsconvt@.service, to start kmscon by default when switching VT.
kmscon should be the default also on non-graphical installation, as it doesn't require any graphic library (only libdrm, to access the framebuffer).
This change won't affect the installation, the boot process (like encryption password fallback), as fbcon will still be compiled in the kernel.
User can still revert to fbcon if they want, or if kmscon has issue on their setup.
If kmscon fails to launch, it will fallback to getty/fbcon.
Currently kmscon depends on opengl/mesa, because it has an optional opengl backend. But we don't want that on non-graphical server installation. I will split the package in two, having something like kmscon and kmscon-gl for the optional gl renderer.
== Feedback ==
== Benefit to Fedora ==
kmscon is more configurable, and has more features than fbcon:
* Uses xkbcommon for keyboard layout, so it supports multiple layout, and switching between them with configurable shortcut.
* Has better unicode support.
* Can use pango for font rendering, and has better compatibility with double-width character https://github.com/Aetf/kmscon/pull/135.
* Scrolling.
* Better security, as it's a userspace program, compared to fbcon running in the kernel.
* A crash in kmscon will make the systemd service to restart it. A crash in fbcon triggers a kernel panic.
Before F44 it may also have these additional features:
* Rotation support (with keyboard shortcut to rotate it at runtime) https://github.com/Aetf/kmscon/pull/147
* Basic mouse/touchpad support, with copy/paste https://github.com/Aetf/kmscon/pull/149
== Scope ==
* Proposal owners:
** Add kmscon in default installation target.
** Enable kmscon systemd service, for all tty, by changing the symbolic link /usr/lib/systemd/system/autvt@.service, to point to kmsconvt@.service
** Split the kmscon package in 2, to avoid direct dependencies on egl.
* Trademark approval: N/A (not needed for this Change)
* Alignment with the Fedora Strategy:
== Upgrade/compatibility impact ==
== Early Testing (Optional) ==
== How To Test ==
Press Ctrl+alt+F3 to switch to the VT console.
Login and check if it's running kmscon with ''ps aux | grep tty3''
Check that you can scroll back with page up/page down.
Check that you can increase the font size with "ctrl +" and decrease with "ctrl -"
== User Experience ==
==== Improvements ====
* The look & feel of the VT console, will be much better.
* Users will be able to configure special fonts, and use more unicode characters.
* Users will have the same keyboard layout has what they have in graphical environment. (Currently the kernel keyboard layout are different).
* Users will be able to scroll in the console.
==== Caveats ====
* Starting graphical application from the console (like "startx") won't work, but you can work around it by using the script ''kmscon-launch-gui startx''
== Dependencies ==
== Contingency Plan ==
It should be easy to revert, just not install kmscon, and fbcon with getty service will be the default.
== Documentation ==
N/A (not a System Wide Change)
== Release Notes ==
Discussion Thread: https://discussion.fedoraproject.org/t/172602
**This is a proposed Change for Fedora Linux.**
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.
== Summary ==
This change is to replace the kernel console '''fbcon''' with the userspace console '''kmscon''' in Fedora, to provide an enhanced and more secure console for Fedora users.
The long term goal is also to deprecate fbcon/fbdev emulation in the kernel, and this is the first step in this direction.
== Owner ==
* Name: [[User:jfalempe| Jocelyn Falempe]]
* Email: <jfalempe@redhat.com>
== Detailed Description ==
'''fbcon''' is a terminal emulator in the kernel, which is not well maintained (it lost scrolling support a few years ago due to a CVE), and requires a fbdev emulation layer in the kernel, as all GPU drivers are using the newer drm interface. It still requires userspace executable like getty and bash to be useful.
'''kmscon''' is a simple terminal emulator based on linux kernel mode setting (KMS). It can replace fbcon for VT console, and provide better keyboard support, and better security.
This change will do the following:
Install kmscon by default, and update the symbolic link /usr/lib/systemd/system/autovt@.service to point to kmsconvt@.service, to start kmscon by default when switching VT.
kmscon should be the default also on non-graphical installation, as it doesn't require any graphic library (only libdrm, to access the framebuffer).
This change won't affect the installation, the boot process (like encryption password fallback), as fbcon will still be compiled in the kernel.
User can still revert to fbcon if they want, or if kmscon has issue on their setup.
If kmscon fails to launch, it will fallback to getty/fbcon.
Currently kmscon depends on opengl/mesa, because it has an optional opengl backend. But we don't want that on non-graphical server installation. I will split the package in two, having something like kmscon and kmscon-gl for the optional gl renderer.
== Feedback ==
== Benefit to Fedora ==
kmscon is more configurable, and has more features than fbcon:
* Uses xkbcommon for keyboard layout, so it supports multiple layout, and switching between them with configurable shortcut.
* Has better unicode support.
* Can use pango for font rendering, and has better compatibility with double-width character https://github.com/Aetf/kmscon/pull/135.
* Scrolling.
* Better security, as it's a userspace program, compared to fbcon running in the kernel.
* A crash in kmscon will make the systemd service to restart it. A crash in fbcon triggers a kernel panic.
Before F44 it may also have these additional features:
* Rotation support (with keyboard shortcut to rotate it at runtime) https://github.com/Aetf/kmscon/pull/147
* Basic mouse/touchpad support, with copy/paste https://github.com/Aetf/kmscon/pull/149
== Scope ==
* Proposal owners:
** Add kmscon in default installation target.
** Enable kmscon systemd service, for all tty, by changing the symbolic link /usr/lib/systemd/system/autvt@.service, to point to kmsconvt@.service
** Split the kmscon package in 2, to avoid direct dependencies on egl.
* Trademark approval: N/A (not needed for this Change)
* Alignment with the Fedora Strategy:
== Upgrade/compatibility impact ==
== Early Testing (Optional) ==
== How To Test ==
Press Ctrl+alt+F3 to switch to the VT console.
Login and check if it's running kmscon with ''ps aux | grep tty3''
Check that you can scroll back with page up/page down.
Check that you can increase the font size with "ctrl +" and decrease with "ctrl -"
== User Experience ==
==== Improvements ====
* The look & feel of the VT console, will be much better.
* Users will be able to configure special fonts, and use more unicode characters.
* Users will have the same keyboard layout has what they have in graphical environment. (Currently the kernel keyboard layout are different).
* Users will be able to scroll in the console.
==== Caveats ====
* Starting graphical application from the console (like "startx") won't work, but you can work around it by using the script ''kmscon-launch-gui startx''
== Dependencies ==
No dependencies.
== Contingency Plan ==
It should be easy to revert, just not install kmscon, and fbcon with getty service will be the default.
== Documentation ==
N/A (not a System Wide Change)
== Release Notes ==
No comments:
Post a Comment