KMSCON (简体中文)

From ArchWiki
Jump to: navigation, search

相关文章

翻译状态: 本文是英文页面 KMSCON翻译,最后翻译时间:2017-04-26,点击这里可以查看翻译后英文页面的改动。

来自 project GitHub page 的介绍:

Kmscon 是基于 KMS 的简单终端模拟软件。它试图为 VT 终端的内核实现提供一种用户空间终端实现。

特性

KMSCON 能作为 Linux 内核内置终端的一个完整替代,它具有以下功能:

  • 完整的 vt220 to vt510 实现。
  • 完整的国际化支持:
    • Kmscon 支持打印全部 Unicode 字符,包括中日韩文字。
    • Kmscon 通过 libxkbcommon 对国际键盘布局提供支持,所以人们可以使用 X 支持的所有键盘布局。
  • 硬件加速渲染。
  • Multi-seat capability.
Note: 要允许 root 用户通过 kmscon 登录,你需要移除或注释 /etc/pam.d/login 中的 pam_securetty 来停用这个模块。

安装

虽然名字里带有 KMS,kmscon 并非硬性依赖 KMS。Kmscon 支持的视频后端如下:fbdev(Linux fbdev 视频后端),drm2d(Linux DRM 软解后端),drm3d(Linux DRM 硬解后端)。请确保你的系统中有其中之一。

你可以从官方仓库安装 kmscon 也可以从 AUR 安装 kmscon-gitAUR

出于保守的策略,你可以继续在 tty1 上使用传统的 getty 而只在其他虚拟终端上运行 kmscon ,或者你可以用 kmscon 替换 getty。

要在 tty1 上启用 kmscon:

# systemctl disable getty@tty1.service
# systemctl enable kmsconvt@tty1.service

重新启动即可生效。

要在所有的虚拟终端上启用 kmscon :

# ln -s /usr/lib/systemd/system/kmsconvt\@.service /etc/systemd/system/autovt\@.service

这使 systemd 在每个虚拟终端上启动 kmscon 而不是 agetty,同时使 systemd-logind 使用 kmsconvt@.service 而不是 getty@.service 打开新的虚拟终端。不过使用 getty@.service 的 systemd 单元不受影响。

如果 kmscon 无法启动,它会尝试启动 getty@.service ,此外没有虚拟终端可用时这个单元不会启动。

Warning: 如果你在所有的终端替换了 getty ,请在重新启动之前确认 kmscon 可用 !不然你只能用 Live CD 一类的介质恢复系统了。

中日韩文字支持

Kmscon 通过默认的字体引擎 pango 支持渲染中日韩文字。但是, 必须为 fontconfig 设置全局配置,来将等宽字体映射到合适的中日韩字体上。我们为中文用户提供如下配置模板。此模板可以满足中文字体渲染要求:

/etc/fonts/conf.d/99-kmscon.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match>
        <test name="family"><string>monospace</string></test>
        <edit name="family" mode="prepend" binding="strong">
                <string>DejaVu Sans Mono</string>
                <string>WenQuanYi Micro Hei Mono</string>
        </edit>
</match>
</fontconfig>

你需要安装 ttf-dejavuwqy-microhei,它们都可以在官方仓库中找到。

疑难解答

  • 如果你在切换 Xorg 和 kmscon 时遇到问题,试着吧 hwaccel 添加到 /etc/kmscon/kmscon.conf 中。

这个文件和目录不在包内,因此你需要手动创建它们,或者你可以 编辑 systemd 服务文件

 ExecStart=/usr/bin/kmscon "--vt=%I" --seats=seat0 --no-switchvt --font-name Terminus --font-size 12 --hwaccel --drm 
  • 在版本 7 中,如果你不能控制声音,把你的用户添加到 audio 中。不过要注意这么做的缺点。( shortcomings