对于 modeset 来说 -1 是什么意思?modeset 还有哪些其他选项?

对于 modeset 来说 -1 是什么意思?modeset 还有哪些其他选项?

我大致知道 KMS 设置是什么样的:

Kernel mode-setting (KMS) shifts responsibility for selecting and setting up the
graphics mode from X.org to the kernel. When X.org is started, it then detects
and uses the mode without any further mode changes. This promises to make 
booting faster, more graphical, and less flickery.

并且我知道这nomodeset会关闭此功能(我没有选择此功能),大概是将责任转移回显卡模块?

当我得到时cat /sys/module/i915/parameters/modeset-1这到底意味着什么?

检查

 modinfo i915 | grep modeset
parm:           modeset:Use kernel modesetting [KMS] (0=DRM_I915_KMS from 
.config, 1=on, -1=force vga console preference [default]) (int)

所以看起来它的意思是“强制 vga 控制台偏好”,不管它是什么意思......

答案1

大多数模块参数的文档可以从以下modinfo位置访问(为方便阅读,已换行):

$ modinfo i915 | grep modeset
parm:           modeset:Use kernel modesetting [KMS] (0=DRM_I915_KMS from
                .config, 1=on, -1=force vga console preference [default]) (int)

通过阅读 Linux 源代码,似乎-1设置(“强制 vga 控制台首选项”)取决于选项nomodeset。也就是说,如果nomodeset存在选项,则其作用类似于i915.modeset=0。否则,如果nomodeset省略,则将其视为已i915.modeset=1设置。


代码路径:

  • drivers/gpu/drm/i915/i915_drv.c(如果强制使用文本控制台模式,则禁用模式集):

    if (vgacon_text_force() && i915_modeset == -1)
        driver.driver_features &= ~DRIVER_MODESET;
    
  • 视频/控制台/vgacon.c:

    static int vgacon_text_mode_force;
    
    bool vgacon_text_force(void)
    {
        return vgacon_text_mode_force ? true : false;
    }
    
  • (同一文件):

    static int __init text_mode(char *str)
    {
        vgacon_text_mode_force = 1;
        return 1;
    }
    
  • (相同的文件,通过内核命令行设置):

    /* force text mode - used by kernel modesetting */
    __setup("nomodeset", text_mode);
    

相关内容