变更/使用KmsconVT控制台
摘要
Fedora 45计划默认将内核控制台fbcon替换为用户空间控制台kmscon,从而提供更强的可配置性、安全性以及滚动和更好的键盘支持等功能。
<p><a href="https://lobste.rs/s/8n2pnd/changes_usekmsconvtconsole">评论</a></p>
查看缓存全文
缓存时间: 2026/06/20 14:35
# UseKmsconVTConsole - Fedora 项目维基
来源:https://fedoraproject.org/wiki/Changes/UseKmsconVTConsole
## 使用 kmscon 作为默认 VT 控制台
## 摘要
此项更改旨在将内核控制台 **fbcon** 替换为用户空间控制台 **kmscon**,为 Fedora 用户提供增强且更安全的控制台体验。长期目标还包括弃用内核中的 fbcon/fbdev 模拟,而这是迈向该目标的第一步。
## 所有者
- 姓名: Jocelyn Falempe (https://fedoraproject.org/w/index.php?title=User:Jfalempe&action=edit&redlink=1)
- 邮箱:
## 当前状态
- 目标版本: Fedora Linux 45 (https://docs.fedoraproject.org/en-US/releases/f45/)
- 最后更新: 2026-04-24
- 已公告 (https://lists.fedoraproject.org/archives/list/[email protected]/message/MBGFWEQXZP3NFMDB5446ZD6ALUZCUNNI/)
- 讨论线程 (https://discussion.fedoraproject.org/t/172602)
- FESCo 议题: #3513 (https://pagure.io/fesco/issue/3513)
- 追踪 Bug: #2418795 (https://bugzilla.redhat.com/show_bug.cgi?id=2418795)
- 发布说明追踪:
## 详细描述
**fbcon** 是内核中的一个终端模拟器,维护状态不佳(几年前因 CVE 问题失去了滚动支持),并且需要内核中的 fbdev 模拟层,因为所有 GPU 驱动都已使用更新的 drm 接口。它仍然需要 getty 和 bash 等用户空间可执行文件才能发挥作用。
**kmscon** 是一个基于 Linux 内核模式设置 (KMS) 的简单终端模拟器。它可以替代 VT 控制台的 fbcon,提供更好的键盘支持和更高的安全性。
此更改将执行以下操作:
- 默认安装 kmscon,并更新符号链接 /usr/lib/systemd/system/[email protected] 指向 [email protected],以便在切换 VT 时默认启动 kmscon。
- kmscon 也应成为非图形化安装的默认选项,因为它不需要任何图形库(仅需 libdrm 访问帧缓冲)。
- 此更改不会影响安装或启动过程(如加密密码回退),因为 fbcon 仍将编译进内核。
- 用户仍然可以回退到 fbcon(如果他们希望这样做,或者 kmscon 在其设置上出现问题)。如果 kmscon 启动失败,将回退到 getty/fbcon。
目前 kmscon 依赖于 opengl/mesa,因为它有一个可选的 opengl 后端。但我们不希望它在非图形化服务器安装中出现。我将把包拆分为两个,例如 kmscon 和 kmscon-gl(用于可选的 GL 渲染器)。
## 反馈
## 对 Fedora 的益处
kmscon 比 fbcon 更可配置,功能也更丰富:
- 使用 xkbcommon 处理键盘布局,支持多种布局并可配置快捷键切换。
- 具有更好的 Unicode 支持。
- 可使用 pango 进行字体渲染,对双宽字符有更好的兼容性 (https://github.com/Aetf/kmscon/pull/135)。
- 支持滚动。
- 更好的安全性,因为它是用户空间程序,而 fbcon 运行在内核中。
- kmscon 崩溃时 systemd 服务会重新启动它;fbcon 崩溃则会导致内核恐慌。
到 Fedora 44 发布时,可能还会包含以下附加功能:
- 旋转支持(可通过键盘快捷键在运行时旋转) (https://github.com/Aetf/kmscon/pull/147)
- 基本的鼠标/触摸板支持,支持复制/粘贴 (https://github.com/Aetf/kmscon/pull/149)
## 范围
- 提案所有者:
- 将 kmscon 加入默认安装目标。
- 通过更改符号链接 /usr/lib/systemd/system/[email protected] 指向 [email protected],为所有 tty 启用 kmscon systemd 服务。
- 将 kmscon 包拆分为二,以避免直接依赖于 egl。
- 其他开发者:
- 发布工程: #13089 (https://pagure.io/releng/issue/13089)
- 政策和指南: 不适用(此更改不需要)
- 商标批准: 不适用(此更改不需要)
- 与 Fedora 策略的一致性:
## 升级/兼容性影响
## 早期测试(可选)
是否需要“QA 蓝图”支持? Y/N
## 如何测试
kmscon 在 Fedora 仓库中可用,但如果您想测试带有鼠标支持、旋转支持和 kmscon-launch-gui 的最新版本,请使用此 copr (https://copr.fedorainfracloud.org/coprs/jfalempe/kmscon/),它包含 F41 到 F44 rawhide 的构建:
`sudo dnf copr enable jfalempe/kmscon`
安装 kmscon:
`sudo dnf install kmscon kmscon-freetype`
如果您想测试 opengl 版本,也安装 gl 插件:
`sudo dnf install kmscon-gl`
然后将其设为默认 VT:
`sudo ln -s /usr/lib/systemd/system/[email protected] /etc/systemd/system/[email protected]`
您可以通过编辑 /etc/kmscon/kmscon.conf 文件来定制 kmscon。
然后重启服务:
`sudo systemctl restart kmsconvt@tty3`
按 Ctrl+Alt+F3 切换到 VT 控制台。登录后,使用 `ps aux | grep tty3` 检查是否正在运行 kmscon。您应该会看到一个 kmscon 进程,类似于:
`bash root 52095 0.0 0.0 115180 16868 ? Ssl 17:37 0:00 /usr/libexec/kmscon/kmscon --vt=tty3 --seats=seat0 --no-switchvt --login -- /sbin/agetty -o -p -- \\u --noclear -- -`
检查能否用 Page Up/Page Down 回滚。检查能否用 “Ctrl +” 增大字体,“Ctrl -” 减小字体。检查终端应用程序(如 `top`、`nano`、`vi` 等)是否正常工作。
## 用户体验
#### 改进
- VT 控制台的视觉效果将大为改善。
- 用户可以配置特殊字体,并使用更多 Unicode 字符。
- 用户将拥有与图形环境相同的键盘布局。(目前内核键盘布局不同。)
- 用户可以在控制台中滚动。
#### 注意事项
- 从控制台启动图形应用程序(如 “startx”)将无法工作,但您可以使用脚本 *kmscon-launch-gui startx* 来解决。
## 依赖关系
无依赖关系。
## 应急计划
- 应急机制:(做什么?谁来做?)不适用(非系统范围变更)
- 应急截止日期:不适用(非系统范围变更)
- 是否阻碍发布?不适用(非系统范围变更),是/否
回退应该很容易:只需不安装 kmscon,fbcon 和 getty 服务将成为默认。
## 文档
kmscon 与 fbcon 略有不同,因此某些应用程序无法在其上运行。
#### 键盘/字体
配置内核字体/键盘布局的工具(如 `setfont`、`loadkeys` 等)将无法工作。相反,您可以在 `/etc/kmscon/kmscon.conf` 中配置字体/键盘设置(默认情况下 kmscon 将使用 `localectl` 的键盘配置)。
#### 鼠标
覆盖 tty 以添加鼠标支持的工具(如 `gpm`、`consolation`)也将无法工作。鼠标支持现已内置于 kmscon 主 git 分支中。
#### 图形
从 kmscon 直接启动图形应用程序也无法工作,您需要使用 `kmscon-launch-gui` 脚本(例如用于 startx 或 startplasma)。
#### 配置
您可以通过编辑文件 `/etc/kmscon/kmscon.conf` 来按需配置 kmscon。执行 `man kmscon.conf` 查看所有可用选项。
## 发布说明
相似文章
KDE Linux 使用体验
作者 AksDev 分享了一年日常使用 KDE Linux 的体验,强调其原子设计在开发中的优势,但指出 Flatpak 问题,最终切换回 Fedora KDE。
KDE Linux 2026年8月动态
在2026年8月,KDE Linux 收到了多项更新,包括通过 Btrfs 快照改进数据安全性、默认支持 CJKV 输入、QA 系统增强、安全修复和文档更新。
使用 Fedora Silverblue 进行合成器开发
本指南介绍如何使用原子发行版 Fedora Silverblue 开发 niri Wayland 合成器,重点介绍了不可变系统在系统组件开发中的优势。
重新掌控终端
这篇文章解释了像`less`和`fzf`这样的交互式程序如何在输入被管道化时保持键盘访问,详细描述了使用文件描述符和/dev/tty进行直接终端通信的方法。
Linux 终端内存占用
作者调查了 Linux 上 `kitty` 终端的内存占用过高问题,通过基准测试比较了包括 `xterm`、`alacritty`、`gnome-terminal` 和 `konsole` 在内的多种终端的资源消耗。分析表明,与现代化的 GPU 加速替代品相比,`xterm` 和 `st` 等轻量级终端的内存占用显著更低。