变更/使用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。
介绍 Kwi,一款全新的 KDE 终端模拟器
KDE 开发者 Eike Hein 宣布推出 Kwi,这是一款面向 KDE Plasma 和其他自由桌面环境的全新现代终端模拟器,基于 Ghostty 的 libghostty-vt 构建,采用 GPU 加速的 Qt Scene Graph 渲染器和 Kirigami 用户界面,号称性能比 Konsole 快 3 至 35 倍。
KDE Linux 2026年8月动态
在2026年8月,KDE Linux 收到了多项更新,包括通过 Btrfs 快照改进数据安全性、默认支持 CJKV 输入、QA 系统增强、安全修复和文档更新。
使用 Fedora Silverblue 进行合成器开发
本指南介绍如何使用原子发行版 Fedora Silverblue 开发 niri Wayland 合成器,重点介绍了不可变系统在系统组件开发中的优势。
重新掌控终端
这篇文章解释了像`less`和`fzf`这样的交互式程序如何在输入被管道化时保持键盘访问,详细描述了使用文件描述符和/dev/tty进行直接终端通信的方法。