Archlinux维基翻译:内核模式设置,Kernel mode setting
内核 模式设置 (KMS) ,指的是, 一种在内核空间而不是用户空间中进行显示分辨率及位深设置的方法。
Linux内核中实现的KMS,允许在帧缓冲(framebuffer)中启用原生的分辨率,并且允许进行即时的终端(console (tty))切换。利用KMS,还能够启用较新的技术(例如DRI2),它们能够帮助减少瑕疵的出现,并且提升3D性能,甚至还能够实现内核空间的节能。
注意: 私有的 NVIDIA 和 catalyst 驱动也实现了内核模式设置,但是它们并不是利用了内核中内置的实现,所以,它们缺少一个能够实现高分辨率终端的fbdev 驱动。
之前,是由X 服务器来负责设置显卡。由于这个原因,就狠难在虚拟终端中显示出精致的内容。另外,每次进行从X到虚拟终端的切换(Ctrl+Alt+F1),服务器都需要将显卡的控制权转交给内核,这个过程狠慢,并且会导致闪烁。当控制权重新交还给X 服务器( Ctrl+Alt+F7 )时,又是同样一个“痛苦”的过程。
利用内核模式设置(KMS),内核就可以设置显卡的模式了。这样,就能够在启动过程中显示出精致的界面,虚拟终端与X之间也能够快速切换,还有其它好处。
首先,要注意,对于妳使用的 任何 一个方法, 都 应当禁用以下东西:
•.启动装载器中设置的任何 vga= 选项,因为,它们会与KMS 中启用的原生分辨率相冲突。
•.任何一个会启用帧缓冲的 video= 选项,它们也会与驱动冲突。
•.任何其它的帧缓冲驱动(例如uvesafb)。
Intel 、 Nouveau 和 ATI驱动都会自动针对它们支持的所有芯片启用KMS,所以,妳无需手动安装它。
私有的 NVIDIA 和 AMD Catalyst驱动,它们不使用开放的驱动栈。要想使用KMS,妳应当使用开源驱动来代替它们。
要想在启动过程中尽早地载入KMS,则,将模块 radeon (针对ATI/AMD显卡)、 i915(针对Intel集成显卡)或 nouveau(针对Nvidia显卡)添加到 /etc/mkinitcpio.conf 文件的 MODULES 行中。例如:
/etc/mkinitcpio.conf
MODULES="... i915 ..."
注意: Intel用户 ,可能需要 在 i915 前面加上 intel_agp , 以避免产生ACPI 相关的错误。
如果妳要使用一个自定义的EDID文件(对于内置的分辨率不起作用),那么,妳应当将它也嵌入到initramfs 中去:
/etc/mkinitcpio.conf
FILES="/lib/firmware/edid/your_edid.bin"
重新构建内核(参考mkinitcpio文档以了解更多信息):
# mkinitcpio -p <内核前缀名字;例如: linux>
参考字体#修改默认字体 ,以了解,如何将终端字体修改成一个大字体。Terminus字体(terminus-font)有多种尺寸可用,包括较大的尺寸。
妳可能会出于多种原因而想要禁用KMS,例如:屏幕完全空白;或者,在使用Catalyst 驱动时,显示器显示“无信号”("no signal");等等问题。要想禁用KMS,则,向内核参数中加入 nomodeset 。参考 内核参数 以了解更多信息。
除了 nomodeset 这个内核参数之外,对于Intel显卡,妳还需要加入 i915.modeset=0 参数, 而对于Nvidia 显卡,妳还需要加入 nouveau.modeset=0 参数。对于提供Nvidia Optimus技术的双显卡系统,妳需要将这三个内核参数都加上(也就是说, "nomodeset i915.modeset=0 nouveau.modeset=0")。
注意:某些Xorg驱动,在禁用 KMS 的情况下无法工作。参考妳所要用的驱动的维基页面,以了解细节。
Your opinionsHxLauncher: Launch Android applications by voice commands